packages feed

amazonka-nimble (empty) → 2.0

raw patch · 223 files changed

+24345/−0 lines, 223 filesdep +amazonka-coredep +amazonka-nimbledep +amazonka-test

Dependencies added: amazonka-core, amazonka-nimble, 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 NimbleStudio SDK++* [Version](#version)+* [Description](#description)+* [Contribute](#contribute)+* [Licence](#licence)+++## Version+ +`2.0` - Derived from API version @2020-08-01@ of the AWS service descriptions, licensed under Apache 2.0.++## Description++Documentation is available via [Hackage](http://hackage.haskell.org/package/amazonka-nimble)+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.Nimble](http://hackage.haskell.org/package/amazonka-nimble/docs/Amazonka-Nimble.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-nimble` 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-nimble.cabal view
@@ -0,0 +1,196 @@+cabal-version:      2.2+name:               amazonka-nimble+version:            2.0+synopsis:           Amazon NimbleStudio 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-08-01@ of the AWS service descriptions, licensed under Apache 2.0.+  .+  The types from this library are intended to be used with <http://hackage.haskell.org/package/amazonka amazonka>,+  which provides mechanisms for specifying AuthN/AuthZ information, sending requests, and receiving responses.+  .+  It is recommended to use generic lenses or optics from packages such as <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify optional fields and deconstruct responses.+  .+  Generated lenses can be found in "Amazonka.Nimble.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.Nimble" 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-nimble++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.Nimble+    Amazonka.Nimble.AcceptEulas+    Amazonka.Nimble.CreateLaunchProfile+    Amazonka.Nimble.CreateStreamingImage+    Amazonka.Nimble.CreateStreamingSession+    Amazonka.Nimble.CreateStreamingSessionStream+    Amazonka.Nimble.CreateStudio+    Amazonka.Nimble.CreateStudioComponent+    Amazonka.Nimble.DeleteLaunchProfile+    Amazonka.Nimble.DeleteLaunchProfileMember+    Amazonka.Nimble.DeleteStreamingImage+    Amazonka.Nimble.DeleteStreamingSession+    Amazonka.Nimble.DeleteStudio+    Amazonka.Nimble.DeleteStudioComponent+    Amazonka.Nimble.DeleteStudioMember+    Amazonka.Nimble.GetEula+    Amazonka.Nimble.GetLaunchProfile+    Amazonka.Nimble.GetLaunchProfileDetails+    Amazonka.Nimble.GetLaunchProfileInitialization+    Amazonka.Nimble.GetLaunchProfileMember+    Amazonka.Nimble.GetStreamingImage+    Amazonka.Nimble.GetStreamingSession+    Amazonka.Nimble.GetStreamingSessionBackup+    Amazonka.Nimble.GetStreamingSessionStream+    Amazonka.Nimble.GetStudio+    Amazonka.Nimble.GetStudioComponent+    Amazonka.Nimble.GetStudioMember+    Amazonka.Nimble.Lens+    Amazonka.Nimble.ListEulaAcceptances+    Amazonka.Nimble.ListEulas+    Amazonka.Nimble.ListLaunchProfileMembers+    Amazonka.Nimble.ListLaunchProfiles+    Amazonka.Nimble.ListStreamingImages+    Amazonka.Nimble.ListStreamingSessionBackups+    Amazonka.Nimble.ListStreamingSessions+    Amazonka.Nimble.ListStudioComponents+    Amazonka.Nimble.ListStudioMembers+    Amazonka.Nimble.ListStudios+    Amazonka.Nimble.ListTagsForResource+    Amazonka.Nimble.PutLaunchProfileMembers+    Amazonka.Nimble.PutStudioMembers+    Amazonka.Nimble.StartStreamingSession+    Amazonka.Nimble.StartStudioSSOConfigurationRepair+    Amazonka.Nimble.StopStreamingSession+    Amazonka.Nimble.TagResource+    Amazonka.Nimble.Types+    Amazonka.Nimble.Types.ActiveDirectoryComputerAttribute+    Amazonka.Nimble.Types.ActiveDirectoryConfiguration+    Amazonka.Nimble.Types.AutomaticTerminationMode+    Amazonka.Nimble.Types.ComputeFarmConfiguration+    Amazonka.Nimble.Types.Eula+    Amazonka.Nimble.Types.EulaAcceptance+    Amazonka.Nimble.Types.LaunchProfile+    Amazonka.Nimble.Types.LaunchProfileInitialization+    Amazonka.Nimble.Types.LaunchProfileInitializationActiveDirectory+    Amazonka.Nimble.Types.LaunchProfileInitializationScript+    Amazonka.Nimble.Types.LaunchProfileMembership+    Amazonka.Nimble.Types.LaunchProfilePersona+    Amazonka.Nimble.Types.LaunchProfilePlatform+    Amazonka.Nimble.Types.LaunchProfileState+    Amazonka.Nimble.Types.LaunchProfileStatusCode+    Amazonka.Nimble.Types.LaunchProfileValidationState+    Amazonka.Nimble.Types.LaunchProfileValidationStatusCode+    Amazonka.Nimble.Types.LaunchProfileValidationType+    Amazonka.Nimble.Types.LicenseServiceConfiguration+    Amazonka.Nimble.Types.NewLaunchProfileMember+    Amazonka.Nimble.Types.NewStudioMember+    Amazonka.Nimble.Types.ScriptParameterKeyValue+    Amazonka.Nimble.Types.SessionBackupMode+    Amazonka.Nimble.Types.SessionPersistenceMode+    Amazonka.Nimble.Types.SharedFileSystemConfiguration+    Amazonka.Nimble.Types.StreamConfiguration+    Amazonka.Nimble.Types.StreamConfigurationCreate+    Amazonka.Nimble.Types.StreamConfigurationSessionBackup+    Amazonka.Nimble.Types.StreamConfigurationSessionStorage+    Amazonka.Nimble.Types.StreamingClipboardMode+    Amazonka.Nimble.Types.StreamingImage+    Amazonka.Nimble.Types.StreamingImageEncryptionConfiguration+    Amazonka.Nimble.Types.StreamingImageEncryptionConfigurationKeyType+    Amazonka.Nimble.Types.StreamingImageState+    Amazonka.Nimble.Types.StreamingImageStatusCode+    Amazonka.Nimble.Types.StreamingInstanceType+    Amazonka.Nimble.Types.StreamingSession+    Amazonka.Nimble.Types.StreamingSessionBackup+    Amazonka.Nimble.Types.StreamingSessionState+    Amazonka.Nimble.Types.StreamingSessionStatusCode+    Amazonka.Nimble.Types.StreamingSessionStorageMode+    Amazonka.Nimble.Types.StreamingSessionStorageRoot+    Amazonka.Nimble.Types.StreamingSessionStream+    Amazonka.Nimble.Types.StreamingSessionStreamState+    Amazonka.Nimble.Types.StreamingSessionStreamStatusCode+    Amazonka.Nimble.Types.Studio+    Amazonka.Nimble.Types.StudioComponent+    Amazonka.Nimble.Types.StudioComponentConfiguration+    Amazonka.Nimble.Types.StudioComponentInitializationScript+    Amazonka.Nimble.Types.StudioComponentInitializationScriptRunContext+    Amazonka.Nimble.Types.StudioComponentState+    Amazonka.Nimble.Types.StudioComponentStatusCode+    Amazonka.Nimble.Types.StudioComponentSubtype+    Amazonka.Nimble.Types.StudioComponentSummary+    Amazonka.Nimble.Types.StudioComponentType+    Amazonka.Nimble.Types.StudioEncryptionConfiguration+    Amazonka.Nimble.Types.StudioEncryptionConfigurationKeyType+    Amazonka.Nimble.Types.StudioMembership+    Amazonka.Nimble.Types.StudioPersona+    Amazonka.Nimble.Types.StudioState+    Amazonka.Nimble.Types.StudioStatusCode+    Amazonka.Nimble.Types.ValidationResult+    Amazonka.Nimble.Types.VolumeConfiguration+    Amazonka.Nimble.Types.VolumeRetentionMode+    Amazonka.Nimble.UntagResource+    Amazonka.Nimble.UpdateLaunchProfile+    Amazonka.Nimble.UpdateLaunchProfileMember+    Amazonka.Nimble.UpdateStreamingImage+    Amazonka.Nimble.UpdateStudio+    Amazonka.Nimble.UpdateStudioComponent+    Amazonka.Nimble.Waiters++  build-depends:+    , amazonka-core  >=2.0  && <2.1+    , base           >=4.12 && <5++test-suite amazonka-nimble-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.Nimble+    Test.Amazonka.Nimble+    Test.Amazonka.Nimble.Internal++  build-depends:+    , amazonka-core         >=2.0 && <2.1+    , amazonka-nimble+    , amazonka-test         >=2.0 && <2.1+    , base+    , bytestring+    , case-insensitive+    , tasty+    , tasty-hunit+    , text+    , time+    , unordered-containers
+ fixture/AcceptEulas.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/nimble/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  nimble.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/AcceptEulasResponse.proto view
+ fixture/CreateLaunchProfile.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/nimble/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  nimble.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/CreateLaunchProfileResponse.proto view
+ fixture/CreateStreamingImage.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/nimble/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  nimble.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/CreateStreamingImageResponse.proto view
+ fixture/CreateStreamingSession.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/nimble/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  nimble.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/CreateStreamingSessionResponse.proto view
+ fixture/CreateStreamingSessionStream.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/nimble/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  nimble.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/CreateStreamingSessionStreamResponse.proto view
+ fixture/CreateStudio.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/nimble/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  nimble.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/CreateStudioComponent.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/nimble/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  nimble.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/CreateStudioComponentResponse.proto view
+ fixture/CreateStudioResponse.proto view
+ fixture/DeleteLaunchProfile.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/nimble/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  nimble.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/DeleteLaunchProfileMember.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/nimble/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  nimble.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/DeleteLaunchProfileMemberResponse.proto view
+ fixture/DeleteLaunchProfileResponse.proto view
+ fixture/DeleteStreamingImage.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/nimble/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  nimble.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/DeleteStreamingImageResponse.proto view
+ fixture/DeleteStreamingSession.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/nimble/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  nimble.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/DeleteStreamingSessionResponse.proto view
+ fixture/DeleteStudio.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/nimble/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  nimble.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/DeleteStudioComponent.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/nimble/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  nimble.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/DeleteStudioComponentResponse.proto view
+ fixture/DeleteStudioMember.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/nimble/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  nimble.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/DeleteStudioMemberResponse.proto view
+ fixture/DeleteStudioResponse.proto view
+ fixture/GetEula.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/nimble/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  nimble.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/GetEulaResponse.proto view
+ fixture/GetLaunchProfile.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/nimble/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  nimble.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/GetLaunchProfileDetails.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/nimble/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  nimble.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/GetLaunchProfileDetailsResponse.proto view
+ fixture/GetLaunchProfileInitialization.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/nimble/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  nimble.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/GetLaunchProfileInitializationResponse.proto view
+ fixture/GetLaunchProfileMember.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/nimble/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  nimble.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/GetLaunchProfileMemberResponse.proto view
+ fixture/GetLaunchProfileResponse.proto view
+ fixture/GetStreamingImage.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/nimble/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  nimble.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/GetStreamingImageResponse.proto view
+ fixture/GetStreamingSession.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/nimble/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  nimble.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/GetStreamingSessionBackup.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/nimble/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  nimble.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/GetStreamingSessionBackupResponse.proto view
+ fixture/GetStreamingSessionResponse.proto view
+ fixture/GetStreamingSessionStream.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/nimble/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  nimble.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/GetStreamingSessionStreamResponse.proto view
+ fixture/GetStudio.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/nimble/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  nimble.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/GetStudioComponent.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/nimble/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  nimble.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/GetStudioComponentResponse.proto view
+ fixture/GetStudioMember.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/nimble/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  nimble.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/GetStudioMemberResponse.proto view
+ fixture/GetStudioResponse.proto view
+ fixture/ListEulaAcceptances.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/nimble/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  nimble.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/ListEulaAcceptancesResponse.proto view
+ fixture/ListEulas.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/nimble/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  nimble.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/ListEulasResponse.proto view
+ fixture/ListLaunchProfileMembers.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/nimble/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  nimble.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/ListLaunchProfileMembersResponse.proto view
+ fixture/ListLaunchProfiles.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/nimble/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  nimble.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/ListLaunchProfilesResponse.proto view
+ fixture/ListStreamingImages.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/nimble/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  nimble.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/ListStreamingImagesResponse.proto view
+ fixture/ListStreamingSessionBackups.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/nimble/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  nimble.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/ListStreamingSessionBackupsResponse.proto view
+ fixture/ListStreamingSessions.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/nimble/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  nimble.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/ListStreamingSessionsResponse.proto view
+ fixture/ListStudioComponents.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/nimble/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  nimble.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/ListStudioComponentsResponse.proto view
+ fixture/ListStudioMembers.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/nimble/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  nimble.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/ListStudioMembersResponse.proto view
+ fixture/ListStudios.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/nimble/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  nimble.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/ListStudiosResponse.proto view
+ fixture/ListTagsForResource.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/nimble/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  nimble.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/PutLaunchProfileMembers.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/nimble/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  nimble.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/PutLaunchProfileMembersResponse.proto view
+ fixture/PutStudioMembers.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/nimble/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  nimble.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/PutStudioMembersResponse.proto view
+ fixture/StartStreamingSession.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/nimble/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  nimble.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/StartStreamingSessionResponse.proto view
+ fixture/StartStudioSSOConfigurationRepair.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/nimble/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  nimble.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/StartStudioSSOConfigurationRepairResponse.proto view
+ fixture/StopStreamingSession.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/nimble/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  nimble.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/StopStreamingSessionResponse.proto view
+ fixture/TagResource.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/nimble/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  nimble.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/TagResourceResponse.proto view
+ fixture/UntagResource.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/nimble/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  nimble.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/UpdateLaunchProfile.yaml view
@@ -0,0 +1,10 @@+---+method: PATCH+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/nimble/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  nimble.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/UpdateLaunchProfileMember.yaml view
@@ -0,0 +1,10 @@+---+method: PATCH+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/nimble/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  nimble.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/UpdateLaunchProfileMemberResponse.proto view
+ fixture/UpdateLaunchProfileResponse.proto view
+ fixture/UpdateStreamingImage.yaml view
@@ -0,0 +1,10 @@+---+method: PATCH+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/nimble/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  nimble.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/UpdateStreamingImageResponse.proto view
+ fixture/UpdateStudio.yaml view
@@ -0,0 +1,10 @@+---+method: PATCH+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/nimble/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  nimble.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/UpdateStudioComponent.yaml view
@@ -0,0 +1,10 @@+---+method: PATCH+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/nimble/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  nimble.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/UpdateStudioComponentResponse.proto view
+ fixture/UpdateStudioResponse.proto view
+ gen/Amazonka/Nimble.hs view
@@ -0,0 +1,692 @@+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module      : Amazonka.Nimble+-- 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-08-01@ of the AWS service descriptions, licensed under Apache 2.0.+--+-- Amazon Nimble Studio empowers creative studios to produce visual+-- effects, animation, and interactive content entirely in the cloud, from+-- storyboard sketch to final deliverable. Rapidly onboard and collaborate+-- with artists globally and create content faster with access to virtual+-- workstations, high-speed storage, and scalable rendering across AWS’s+-- global infrastructure.+module Amazonka.Nimble+  ( -- * Service Configuration+    defaultService,++    -- * Errors+    -- $errors++    -- ** AccessDeniedException+    _AccessDeniedException,++    -- ** ConflictException+    _ConflictException,++    -- ** InternalServerErrorException+    _InternalServerErrorException,++    -- ** ResourceNotFoundException+    _ResourceNotFoundException,++    -- ** ServiceQuotaExceededException+    _ServiceQuotaExceededException,++    -- ** ThrottlingException+    _ThrottlingException,++    -- ** ValidationException+    _ValidationException,++    -- * Waiters+    -- $waiters++    -- ** LaunchProfileDeleted+    newLaunchProfileDeleted,++    -- ** LaunchProfileReady+    newLaunchProfileReady,++    -- ** StreamingImageDeleted+    newStreamingImageDeleted,++    -- ** StreamingImageReady+    newStreamingImageReady,++    -- ** StreamingSessionDeleted+    newStreamingSessionDeleted,++    -- ** StreamingSessionReady+    newStreamingSessionReady,++    -- ** StreamingSessionStopped+    newStreamingSessionStopped,++    -- ** StreamingSessionStreamReady+    newStreamingSessionStreamReady,++    -- ** StudioComponentDeleted+    newStudioComponentDeleted,++    -- ** StudioComponentReady+    newStudioComponentReady,++    -- ** StudioDeleted+    newStudioDeleted,++    -- ** StudioReady+    newStudioReady,++    -- * Operations+    -- $operations++    -- ** AcceptEulas+    AcceptEulas (AcceptEulas'),+    newAcceptEulas,+    AcceptEulasResponse (AcceptEulasResponse'),+    newAcceptEulasResponse,++    -- ** CreateLaunchProfile+    CreateLaunchProfile (CreateLaunchProfile'),+    newCreateLaunchProfile,+    CreateLaunchProfileResponse (CreateLaunchProfileResponse'),+    newCreateLaunchProfileResponse,++    -- ** CreateStreamingImage+    CreateStreamingImage (CreateStreamingImage'),+    newCreateStreamingImage,+    CreateStreamingImageResponse (CreateStreamingImageResponse'),+    newCreateStreamingImageResponse,++    -- ** CreateStreamingSession+    CreateStreamingSession (CreateStreamingSession'),+    newCreateStreamingSession,+    CreateStreamingSessionResponse (CreateStreamingSessionResponse'),+    newCreateStreamingSessionResponse,++    -- ** CreateStreamingSessionStream+    CreateStreamingSessionStream (CreateStreamingSessionStream'),+    newCreateStreamingSessionStream,+    CreateStreamingSessionStreamResponse (CreateStreamingSessionStreamResponse'),+    newCreateStreamingSessionStreamResponse,++    -- ** CreateStudio+    CreateStudio (CreateStudio'),+    newCreateStudio,+    CreateStudioResponse (CreateStudioResponse'),+    newCreateStudioResponse,++    -- ** CreateStudioComponent+    CreateStudioComponent (CreateStudioComponent'),+    newCreateStudioComponent,+    CreateStudioComponentResponse (CreateStudioComponentResponse'),+    newCreateStudioComponentResponse,++    -- ** DeleteLaunchProfile+    DeleteLaunchProfile (DeleteLaunchProfile'),+    newDeleteLaunchProfile,+    DeleteLaunchProfileResponse (DeleteLaunchProfileResponse'),+    newDeleteLaunchProfileResponse,++    -- ** DeleteLaunchProfileMember+    DeleteLaunchProfileMember (DeleteLaunchProfileMember'),+    newDeleteLaunchProfileMember,+    DeleteLaunchProfileMemberResponse (DeleteLaunchProfileMemberResponse'),+    newDeleteLaunchProfileMemberResponse,++    -- ** DeleteStreamingImage+    DeleteStreamingImage (DeleteStreamingImage'),+    newDeleteStreamingImage,+    DeleteStreamingImageResponse (DeleteStreamingImageResponse'),+    newDeleteStreamingImageResponse,++    -- ** DeleteStreamingSession+    DeleteStreamingSession (DeleteStreamingSession'),+    newDeleteStreamingSession,+    DeleteStreamingSessionResponse (DeleteStreamingSessionResponse'),+    newDeleteStreamingSessionResponse,++    -- ** DeleteStudio+    DeleteStudio (DeleteStudio'),+    newDeleteStudio,+    DeleteStudioResponse (DeleteStudioResponse'),+    newDeleteStudioResponse,++    -- ** DeleteStudioComponent+    DeleteStudioComponent (DeleteStudioComponent'),+    newDeleteStudioComponent,+    DeleteStudioComponentResponse (DeleteStudioComponentResponse'),+    newDeleteStudioComponentResponse,++    -- ** DeleteStudioMember+    DeleteStudioMember (DeleteStudioMember'),+    newDeleteStudioMember,+    DeleteStudioMemberResponse (DeleteStudioMemberResponse'),+    newDeleteStudioMemberResponse,++    -- ** GetEula+    GetEula (GetEula'),+    newGetEula,+    GetEulaResponse (GetEulaResponse'),+    newGetEulaResponse,++    -- ** GetLaunchProfile+    GetLaunchProfile (GetLaunchProfile'),+    newGetLaunchProfile,+    GetLaunchProfileResponse (GetLaunchProfileResponse'),+    newGetLaunchProfileResponse,++    -- ** GetLaunchProfileDetails+    GetLaunchProfileDetails (GetLaunchProfileDetails'),+    newGetLaunchProfileDetails,+    GetLaunchProfileDetailsResponse (GetLaunchProfileDetailsResponse'),+    newGetLaunchProfileDetailsResponse,++    -- ** GetLaunchProfileInitialization+    GetLaunchProfileInitialization (GetLaunchProfileInitialization'),+    newGetLaunchProfileInitialization,+    GetLaunchProfileInitializationResponse (GetLaunchProfileInitializationResponse'),+    newGetLaunchProfileInitializationResponse,++    -- ** GetLaunchProfileMember+    GetLaunchProfileMember (GetLaunchProfileMember'),+    newGetLaunchProfileMember,+    GetLaunchProfileMemberResponse (GetLaunchProfileMemberResponse'),+    newGetLaunchProfileMemberResponse,++    -- ** GetStreamingImage+    GetStreamingImage (GetStreamingImage'),+    newGetStreamingImage,+    GetStreamingImageResponse (GetStreamingImageResponse'),+    newGetStreamingImageResponse,++    -- ** GetStreamingSession+    GetStreamingSession (GetStreamingSession'),+    newGetStreamingSession,+    GetStreamingSessionResponse (GetStreamingSessionResponse'),+    newGetStreamingSessionResponse,++    -- ** GetStreamingSessionBackup+    GetStreamingSessionBackup (GetStreamingSessionBackup'),+    newGetStreamingSessionBackup,+    GetStreamingSessionBackupResponse (GetStreamingSessionBackupResponse'),+    newGetStreamingSessionBackupResponse,++    -- ** GetStreamingSessionStream+    GetStreamingSessionStream (GetStreamingSessionStream'),+    newGetStreamingSessionStream,+    GetStreamingSessionStreamResponse (GetStreamingSessionStreamResponse'),+    newGetStreamingSessionStreamResponse,++    -- ** GetStudio+    GetStudio (GetStudio'),+    newGetStudio,+    GetStudioResponse (GetStudioResponse'),+    newGetStudioResponse,++    -- ** GetStudioComponent+    GetStudioComponent (GetStudioComponent'),+    newGetStudioComponent,+    GetStudioComponentResponse (GetStudioComponentResponse'),+    newGetStudioComponentResponse,++    -- ** GetStudioMember+    GetStudioMember (GetStudioMember'),+    newGetStudioMember,+    GetStudioMemberResponse (GetStudioMemberResponse'),+    newGetStudioMemberResponse,++    -- ** ListEulaAcceptances (Paginated)+    ListEulaAcceptances (ListEulaAcceptances'),+    newListEulaAcceptances,+    ListEulaAcceptancesResponse (ListEulaAcceptancesResponse'),+    newListEulaAcceptancesResponse,++    -- ** ListEulas (Paginated)+    ListEulas (ListEulas'),+    newListEulas,+    ListEulasResponse (ListEulasResponse'),+    newListEulasResponse,++    -- ** ListLaunchProfileMembers (Paginated)+    ListLaunchProfileMembers (ListLaunchProfileMembers'),+    newListLaunchProfileMembers,+    ListLaunchProfileMembersResponse (ListLaunchProfileMembersResponse'),+    newListLaunchProfileMembersResponse,++    -- ** ListLaunchProfiles (Paginated)+    ListLaunchProfiles (ListLaunchProfiles'),+    newListLaunchProfiles,+    ListLaunchProfilesResponse (ListLaunchProfilesResponse'),+    newListLaunchProfilesResponse,++    -- ** ListStreamingImages (Paginated)+    ListStreamingImages (ListStreamingImages'),+    newListStreamingImages,+    ListStreamingImagesResponse (ListStreamingImagesResponse'),+    newListStreamingImagesResponse,++    -- ** ListStreamingSessionBackups (Paginated)+    ListStreamingSessionBackups (ListStreamingSessionBackups'),+    newListStreamingSessionBackups,+    ListStreamingSessionBackupsResponse (ListStreamingSessionBackupsResponse'),+    newListStreamingSessionBackupsResponse,++    -- ** ListStreamingSessions (Paginated)+    ListStreamingSessions (ListStreamingSessions'),+    newListStreamingSessions,+    ListStreamingSessionsResponse (ListStreamingSessionsResponse'),+    newListStreamingSessionsResponse,++    -- ** ListStudioComponents (Paginated)+    ListStudioComponents (ListStudioComponents'),+    newListStudioComponents,+    ListStudioComponentsResponse (ListStudioComponentsResponse'),+    newListStudioComponentsResponse,++    -- ** ListStudioMembers (Paginated)+    ListStudioMembers (ListStudioMembers'),+    newListStudioMembers,+    ListStudioMembersResponse (ListStudioMembersResponse'),+    newListStudioMembersResponse,++    -- ** ListStudios (Paginated)+    ListStudios (ListStudios'),+    newListStudios,+    ListStudiosResponse (ListStudiosResponse'),+    newListStudiosResponse,++    -- ** ListTagsForResource+    ListTagsForResource (ListTagsForResource'),+    newListTagsForResource,+    ListTagsForResourceResponse (ListTagsForResourceResponse'),+    newListTagsForResourceResponse,++    -- ** PutLaunchProfileMembers+    PutLaunchProfileMembers (PutLaunchProfileMembers'),+    newPutLaunchProfileMembers,+    PutLaunchProfileMembersResponse (PutLaunchProfileMembersResponse'),+    newPutLaunchProfileMembersResponse,++    -- ** PutStudioMembers+    PutStudioMembers (PutStudioMembers'),+    newPutStudioMembers,+    PutStudioMembersResponse (PutStudioMembersResponse'),+    newPutStudioMembersResponse,++    -- ** StartStreamingSession+    StartStreamingSession (StartStreamingSession'),+    newStartStreamingSession,+    StartStreamingSessionResponse (StartStreamingSessionResponse'),+    newStartStreamingSessionResponse,++    -- ** StartStudioSSOConfigurationRepair+    StartStudioSSOConfigurationRepair (StartStudioSSOConfigurationRepair'),+    newStartStudioSSOConfigurationRepair,+    StartStudioSSOConfigurationRepairResponse (StartStudioSSOConfigurationRepairResponse'),+    newStartStudioSSOConfigurationRepairResponse,++    -- ** StopStreamingSession+    StopStreamingSession (StopStreamingSession'),+    newStopStreamingSession,+    StopStreamingSessionResponse (StopStreamingSessionResponse'),+    newStopStreamingSessionResponse,++    -- ** TagResource+    TagResource (TagResource'),+    newTagResource,+    TagResourceResponse (TagResourceResponse'),+    newTagResourceResponse,++    -- ** UntagResource+    UntagResource (UntagResource'),+    newUntagResource,+    UntagResourceResponse (UntagResourceResponse'),+    newUntagResourceResponse,++    -- ** UpdateLaunchProfile+    UpdateLaunchProfile (UpdateLaunchProfile'),+    newUpdateLaunchProfile,+    UpdateLaunchProfileResponse (UpdateLaunchProfileResponse'),+    newUpdateLaunchProfileResponse,++    -- ** UpdateLaunchProfileMember+    UpdateLaunchProfileMember (UpdateLaunchProfileMember'),+    newUpdateLaunchProfileMember,+    UpdateLaunchProfileMemberResponse (UpdateLaunchProfileMemberResponse'),+    newUpdateLaunchProfileMemberResponse,++    -- ** UpdateStreamingImage+    UpdateStreamingImage (UpdateStreamingImage'),+    newUpdateStreamingImage,+    UpdateStreamingImageResponse (UpdateStreamingImageResponse'),+    newUpdateStreamingImageResponse,++    -- ** UpdateStudio+    UpdateStudio (UpdateStudio'),+    newUpdateStudio,+    UpdateStudioResponse (UpdateStudioResponse'),+    newUpdateStudioResponse,++    -- ** UpdateStudioComponent+    UpdateStudioComponent (UpdateStudioComponent'),+    newUpdateStudioComponent,+    UpdateStudioComponentResponse (UpdateStudioComponentResponse'),+    newUpdateStudioComponentResponse,++    -- * Types++    -- ** AutomaticTerminationMode+    AutomaticTerminationMode (..),++    -- ** LaunchProfilePersona+    LaunchProfilePersona (..),++    -- ** LaunchProfilePlatform+    LaunchProfilePlatform (..),++    -- ** LaunchProfileState+    LaunchProfileState (..),++    -- ** LaunchProfileStatusCode+    LaunchProfileStatusCode (..),++    -- ** LaunchProfileValidationState+    LaunchProfileValidationState (..),++    -- ** LaunchProfileValidationStatusCode+    LaunchProfileValidationStatusCode (..),++    -- ** LaunchProfileValidationType+    LaunchProfileValidationType (..),++    -- ** SessionBackupMode+    SessionBackupMode (..),++    -- ** SessionPersistenceMode+    SessionPersistenceMode (..),++    -- ** StreamingClipboardMode+    StreamingClipboardMode (..),++    -- ** StreamingImageEncryptionConfigurationKeyType+    StreamingImageEncryptionConfigurationKeyType (..),++    -- ** StreamingImageState+    StreamingImageState (..),++    -- ** StreamingImageStatusCode+    StreamingImageStatusCode (..),++    -- ** StreamingInstanceType+    StreamingInstanceType (..),++    -- ** StreamingSessionState+    StreamingSessionState (..),++    -- ** StreamingSessionStatusCode+    StreamingSessionStatusCode (..),++    -- ** StreamingSessionStorageMode+    StreamingSessionStorageMode (..),++    -- ** StreamingSessionStreamState+    StreamingSessionStreamState (..),++    -- ** StreamingSessionStreamStatusCode+    StreamingSessionStreamStatusCode (..),++    -- ** StudioComponentInitializationScriptRunContext+    StudioComponentInitializationScriptRunContext (..),++    -- ** StudioComponentState+    StudioComponentState (..),++    -- ** StudioComponentStatusCode+    StudioComponentStatusCode (..),++    -- ** StudioComponentSubtype+    StudioComponentSubtype (..),++    -- ** StudioComponentType+    StudioComponentType (..),++    -- ** StudioEncryptionConfigurationKeyType+    StudioEncryptionConfigurationKeyType (..),++    -- ** StudioPersona+    StudioPersona (..),++    -- ** StudioState+    StudioState (..),++    -- ** StudioStatusCode+    StudioStatusCode (..),++    -- ** VolumeRetentionMode+    VolumeRetentionMode (..),++    -- ** ActiveDirectoryComputerAttribute+    ActiveDirectoryComputerAttribute (ActiveDirectoryComputerAttribute'),+    newActiveDirectoryComputerAttribute,++    -- ** ActiveDirectoryConfiguration+    ActiveDirectoryConfiguration (ActiveDirectoryConfiguration'),+    newActiveDirectoryConfiguration,++    -- ** ComputeFarmConfiguration+    ComputeFarmConfiguration (ComputeFarmConfiguration'),+    newComputeFarmConfiguration,++    -- ** Eula+    Eula (Eula'),+    newEula,++    -- ** EulaAcceptance+    EulaAcceptance (EulaAcceptance'),+    newEulaAcceptance,++    -- ** LaunchProfile+    LaunchProfile (LaunchProfile'),+    newLaunchProfile,++    -- ** LaunchProfileInitialization+    LaunchProfileInitialization (LaunchProfileInitialization'),+    newLaunchProfileInitialization,++    -- ** LaunchProfileInitializationActiveDirectory+    LaunchProfileInitializationActiveDirectory (LaunchProfileInitializationActiveDirectory'),+    newLaunchProfileInitializationActiveDirectory,++    -- ** LaunchProfileInitializationScript+    LaunchProfileInitializationScript (LaunchProfileInitializationScript'),+    newLaunchProfileInitializationScript,++    -- ** LaunchProfileMembership+    LaunchProfileMembership (LaunchProfileMembership'),+    newLaunchProfileMembership,++    -- ** LicenseServiceConfiguration+    LicenseServiceConfiguration (LicenseServiceConfiguration'),+    newLicenseServiceConfiguration,++    -- ** NewLaunchProfileMember+    NewLaunchProfileMember (NewLaunchProfileMember'),+    newNewLaunchProfileMember,++    -- ** NewStudioMember+    NewStudioMember (NewStudioMember'),+    newNewStudioMember,++    -- ** ScriptParameterKeyValue+    ScriptParameterKeyValue (ScriptParameterKeyValue'),+    newScriptParameterKeyValue,++    -- ** SharedFileSystemConfiguration+    SharedFileSystemConfiguration (SharedFileSystemConfiguration'),+    newSharedFileSystemConfiguration,++    -- ** StreamConfiguration+    StreamConfiguration (StreamConfiguration'),+    newStreamConfiguration,++    -- ** StreamConfigurationCreate+    StreamConfigurationCreate (StreamConfigurationCreate'),+    newStreamConfigurationCreate,++    -- ** StreamConfigurationSessionBackup+    StreamConfigurationSessionBackup (StreamConfigurationSessionBackup'),+    newStreamConfigurationSessionBackup,++    -- ** StreamConfigurationSessionStorage+    StreamConfigurationSessionStorage (StreamConfigurationSessionStorage'),+    newStreamConfigurationSessionStorage,++    -- ** StreamingImage+    StreamingImage (StreamingImage'),+    newStreamingImage,++    -- ** StreamingImageEncryptionConfiguration+    StreamingImageEncryptionConfiguration (StreamingImageEncryptionConfiguration'),+    newStreamingImageEncryptionConfiguration,++    -- ** StreamingSession+    StreamingSession (StreamingSession'),+    newStreamingSession,++    -- ** StreamingSessionBackup+    StreamingSessionBackup (StreamingSessionBackup'),+    newStreamingSessionBackup,++    -- ** StreamingSessionStorageRoot+    StreamingSessionStorageRoot (StreamingSessionStorageRoot'),+    newStreamingSessionStorageRoot,++    -- ** StreamingSessionStream+    StreamingSessionStream (StreamingSessionStream'),+    newStreamingSessionStream,++    -- ** Studio+    Studio (Studio'),+    newStudio,++    -- ** StudioComponent+    StudioComponent (StudioComponent'),+    newStudioComponent,++    -- ** StudioComponentConfiguration+    StudioComponentConfiguration (StudioComponentConfiguration'),+    newStudioComponentConfiguration,++    -- ** StudioComponentInitializationScript+    StudioComponentInitializationScript (StudioComponentInitializationScript'),+    newStudioComponentInitializationScript,++    -- ** StudioComponentSummary+    StudioComponentSummary (StudioComponentSummary'),+    newStudioComponentSummary,++    -- ** StudioEncryptionConfiguration+    StudioEncryptionConfiguration (StudioEncryptionConfiguration'),+    newStudioEncryptionConfiguration,++    -- ** StudioMembership+    StudioMembership (StudioMembership'),+    newStudioMembership,++    -- ** ValidationResult+    ValidationResult (ValidationResult'),+    newValidationResult,++    -- ** VolumeConfiguration+    VolumeConfiguration (VolumeConfiguration'),+    newVolumeConfiguration,+  )+where++import Amazonka.Nimble.AcceptEulas+import Amazonka.Nimble.CreateLaunchProfile+import Amazonka.Nimble.CreateStreamingImage+import Amazonka.Nimble.CreateStreamingSession+import Amazonka.Nimble.CreateStreamingSessionStream+import Amazonka.Nimble.CreateStudio+import Amazonka.Nimble.CreateStudioComponent+import Amazonka.Nimble.DeleteLaunchProfile+import Amazonka.Nimble.DeleteLaunchProfileMember+import Amazonka.Nimble.DeleteStreamingImage+import Amazonka.Nimble.DeleteStreamingSession+import Amazonka.Nimble.DeleteStudio+import Amazonka.Nimble.DeleteStudioComponent+import Amazonka.Nimble.DeleteStudioMember+import Amazonka.Nimble.GetEula+import Amazonka.Nimble.GetLaunchProfile+import Amazonka.Nimble.GetLaunchProfileDetails+import Amazonka.Nimble.GetLaunchProfileInitialization+import Amazonka.Nimble.GetLaunchProfileMember+import Amazonka.Nimble.GetStreamingImage+import Amazonka.Nimble.GetStreamingSession+import Amazonka.Nimble.GetStreamingSessionBackup+import Amazonka.Nimble.GetStreamingSessionStream+import Amazonka.Nimble.GetStudio+import Amazonka.Nimble.GetStudioComponent+import Amazonka.Nimble.GetStudioMember+import Amazonka.Nimble.Lens+import Amazonka.Nimble.ListEulaAcceptances+import Amazonka.Nimble.ListEulas+import Amazonka.Nimble.ListLaunchProfileMembers+import Amazonka.Nimble.ListLaunchProfiles+import Amazonka.Nimble.ListStreamingImages+import Amazonka.Nimble.ListStreamingSessionBackups+import Amazonka.Nimble.ListStreamingSessions+import Amazonka.Nimble.ListStudioComponents+import Amazonka.Nimble.ListStudioMembers+import Amazonka.Nimble.ListStudios+import Amazonka.Nimble.ListTagsForResource+import Amazonka.Nimble.PutLaunchProfileMembers+import Amazonka.Nimble.PutStudioMembers+import Amazonka.Nimble.StartStreamingSession+import Amazonka.Nimble.StartStudioSSOConfigurationRepair+import Amazonka.Nimble.StopStreamingSession+import Amazonka.Nimble.TagResource+import Amazonka.Nimble.Types+import Amazonka.Nimble.UntagResource+import Amazonka.Nimble.UpdateLaunchProfile+import Amazonka.Nimble.UpdateLaunchProfileMember+import Amazonka.Nimble.UpdateStreamingImage+import Amazonka.Nimble.UpdateStudio+import Amazonka.Nimble.UpdateStudioComponent+import Amazonka.Nimble.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 'Nimble'.++-- $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/Nimble/AcceptEulas.hs view
@@ -0,0 +1,204 @@+{-# 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.Nimble.AcceptEulas+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Accept EULAs.+module Amazonka.Nimble.AcceptEulas+  ( -- * Creating a Request+    AcceptEulas (..),+    newAcceptEulas,++    -- * Request Lenses+    acceptEulas_clientToken,+    acceptEulas_eulaIds,+    acceptEulas_studioId,++    -- * Destructuring the Response+    AcceptEulasResponse (..),+    newAcceptEulasResponse,++    -- * Response Lenses+    acceptEulasResponse_eulaAcceptances,+    acceptEulasResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Nimble.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newAcceptEulas' smart constructor.+data AcceptEulas = AcceptEulas'+  { -- | Unique, case-sensitive identifier that you provide to ensure the+    -- idempotency of the request. If you don’t specify a client token, the+    -- Amazon Web Services SDK automatically generates a client token and uses+    -- it for the request to ensure idempotency.+    clientToken :: Prelude.Maybe Prelude.Text,+    -- | The EULA ID.+    eulaIds :: Prelude.Maybe [Prelude.Text],+    -- | The studio ID.+    studioId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AcceptEulas' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientToken', 'acceptEulas_clientToken' - Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request. If you don’t specify a client token, the+-- Amazon Web Services SDK automatically generates a client token and uses+-- it for the request to ensure idempotency.+--+-- 'eulaIds', 'acceptEulas_eulaIds' - The EULA ID.+--+-- 'studioId', 'acceptEulas_studioId' - The studio ID.+newAcceptEulas ::+  -- | 'studioId'+  Prelude.Text ->+  AcceptEulas+newAcceptEulas pStudioId_ =+  AcceptEulas'+    { clientToken = Prelude.Nothing,+      eulaIds = Prelude.Nothing,+      studioId = pStudioId_+    }++-- | Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request. If you don’t specify a client token, the+-- Amazon Web Services SDK automatically generates a client token and uses+-- it for the request to ensure idempotency.+acceptEulas_clientToken :: Lens.Lens' AcceptEulas (Prelude.Maybe Prelude.Text)+acceptEulas_clientToken = Lens.lens (\AcceptEulas' {clientToken} -> clientToken) (\s@AcceptEulas' {} a -> s {clientToken = a} :: AcceptEulas)++-- | The EULA ID.+acceptEulas_eulaIds :: Lens.Lens' AcceptEulas (Prelude.Maybe [Prelude.Text])+acceptEulas_eulaIds = Lens.lens (\AcceptEulas' {eulaIds} -> eulaIds) (\s@AcceptEulas' {} a -> s {eulaIds = a} :: AcceptEulas) Prelude.. Lens.mapping Lens.coerced++-- | The studio ID.+acceptEulas_studioId :: Lens.Lens' AcceptEulas Prelude.Text+acceptEulas_studioId = Lens.lens (\AcceptEulas' {studioId} -> studioId) (\s@AcceptEulas' {} a -> s {studioId = a} :: AcceptEulas)++instance Core.AWSRequest AcceptEulas where+  type AWSResponse AcceptEulas = AcceptEulasResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          AcceptEulasResponse'+            Prelude.<$> ( x+                            Data..?> "eulaAcceptances"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable AcceptEulas where+  hashWithSalt _salt AcceptEulas' {..} =+    _salt+      `Prelude.hashWithSalt` clientToken+      `Prelude.hashWithSalt` eulaIds+      `Prelude.hashWithSalt` studioId++instance Prelude.NFData AcceptEulas where+  rnf AcceptEulas' {..} =+    Prelude.rnf clientToken+      `Prelude.seq` Prelude.rnf eulaIds+      `Prelude.seq` Prelude.rnf studioId++instance Data.ToHeaders AcceptEulas where+  toHeaders AcceptEulas' {..} =+    Prelude.mconcat+      [ "X-Amz-Client-Token" Data.=# clientToken,+        "Content-Type"+          Data.=# ("application/x-amz-json-1.1" :: Prelude.ByteString)+      ]++instance Data.ToJSON AcceptEulas where+  toJSON AcceptEulas' {..} =+    Data.object+      ( Prelude.catMaybes+          [("eulaIds" Data..=) Prelude.<$> eulaIds]+      )++instance Data.ToPath AcceptEulas where+  toPath AcceptEulas' {..} =+    Prelude.mconcat+      [ "/2020-08-01/studios/",+        Data.toBS studioId,+        "/eula-acceptances"+      ]++instance Data.ToQuery AcceptEulas where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newAcceptEulasResponse' smart constructor.+data AcceptEulasResponse = AcceptEulasResponse'+  { -- | A collection of EULA acceptances.+    eulaAcceptances :: Prelude.Maybe [EulaAcceptance],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AcceptEulasResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'eulaAcceptances', 'acceptEulasResponse_eulaAcceptances' - A collection of EULA acceptances.+--+-- 'httpStatus', 'acceptEulasResponse_httpStatus' - The response's http status code.+newAcceptEulasResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  AcceptEulasResponse+newAcceptEulasResponse pHttpStatus_ =+  AcceptEulasResponse'+    { eulaAcceptances =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | A collection of EULA acceptances.+acceptEulasResponse_eulaAcceptances :: Lens.Lens' AcceptEulasResponse (Prelude.Maybe [EulaAcceptance])+acceptEulasResponse_eulaAcceptances = Lens.lens (\AcceptEulasResponse' {eulaAcceptances} -> eulaAcceptances) (\s@AcceptEulasResponse' {} a -> s {eulaAcceptances = a} :: AcceptEulasResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+acceptEulasResponse_httpStatus :: Lens.Lens' AcceptEulasResponse Prelude.Int+acceptEulasResponse_httpStatus = Lens.lens (\AcceptEulasResponse' {httpStatus} -> httpStatus) (\s@AcceptEulasResponse' {} a -> s {httpStatus = a} :: AcceptEulasResponse)++instance Prelude.NFData AcceptEulasResponse where+  rnf AcceptEulasResponse' {..} =+    Prelude.rnf eulaAcceptances+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Nimble/CreateLaunchProfile.hs view
@@ -0,0 +1,313 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Nimble.CreateLaunchProfile+-- 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 a launch profile.+module Amazonka.Nimble.CreateLaunchProfile+  ( -- * Creating a Request+    CreateLaunchProfile (..),+    newCreateLaunchProfile,++    -- * Request Lenses+    createLaunchProfile_clientToken,+    createLaunchProfile_description,+    createLaunchProfile_tags,+    createLaunchProfile_ec2SubnetIds,+    createLaunchProfile_launchProfileProtocolVersions,+    createLaunchProfile_name,+    createLaunchProfile_streamConfiguration,+    createLaunchProfile_studioComponentIds,+    createLaunchProfile_studioId,++    -- * Destructuring the Response+    CreateLaunchProfileResponse (..),+    newCreateLaunchProfileResponse,++    -- * Response Lenses+    createLaunchProfileResponse_launchProfile,+    createLaunchProfileResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Nimble.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateLaunchProfile' smart constructor.+data CreateLaunchProfile = CreateLaunchProfile'+  { -- | Unique, case-sensitive identifier that you provide to ensure the+    -- idempotency of the request. If you don’t specify a client token, the+    -- Amazon Web Services SDK automatically generates a client token and uses+    -- it for the request to ensure idempotency.+    clientToken :: Prelude.Maybe Prelude.Text,+    -- | The description.+    description :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | A collection of labels, in the form of key-value pairs, that apply to+    -- this resource.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | Specifies the IDs of the EC2 subnets where streaming sessions will be+    -- accessible from. These subnets must support the specified instance+    -- types.+    ec2SubnetIds :: [Prelude.Text],+    -- | The version number of the protocol that is used by the launch profile.+    -- The only valid version is \"2021-03-31\".+    launchProfileProtocolVersions :: [Prelude.Text],+    -- | The name for the launch profile.+    name :: Data.Sensitive Prelude.Text,+    -- | A configuration for a streaming session.+    streamConfiguration :: StreamConfigurationCreate,+    -- | Unique identifiers for a collection of studio components that can be+    -- used with this launch profile.+    studioComponentIds :: Prelude.NonEmpty Prelude.Text,+    -- | The studio ID.+    studioId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateLaunchProfile' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientToken', 'createLaunchProfile_clientToken' - Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request. If you don’t specify a client token, the+-- Amazon Web Services SDK automatically generates a client token and uses+-- it for the request to ensure idempotency.+--+-- 'description', 'createLaunchProfile_description' - The description.+--+-- 'tags', 'createLaunchProfile_tags' - A collection of labels, in the form of key-value pairs, that apply to+-- this resource.+--+-- 'ec2SubnetIds', 'createLaunchProfile_ec2SubnetIds' - Specifies the IDs of the EC2 subnets where streaming sessions will be+-- accessible from. These subnets must support the specified instance+-- types.+--+-- 'launchProfileProtocolVersions', 'createLaunchProfile_launchProfileProtocolVersions' - The version number of the protocol that is used by the launch profile.+-- The only valid version is \"2021-03-31\".+--+-- 'name', 'createLaunchProfile_name' - The name for the launch profile.+--+-- 'streamConfiguration', 'createLaunchProfile_streamConfiguration' - A configuration for a streaming session.+--+-- 'studioComponentIds', 'createLaunchProfile_studioComponentIds' - Unique identifiers for a collection of studio components that can be+-- used with this launch profile.+--+-- 'studioId', 'createLaunchProfile_studioId' - The studio ID.+newCreateLaunchProfile ::+  -- | 'name'+  Prelude.Text ->+  -- | 'streamConfiguration'+  StreamConfigurationCreate ->+  -- | 'studioComponentIds'+  Prelude.NonEmpty Prelude.Text ->+  -- | 'studioId'+  Prelude.Text ->+  CreateLaunchProfile+newCreateLaunchProfile+  pName_+  pStreamConfiguration_+  pStudioComponentIds_+  pStudioId_ =+    CreateLaunchProfile'+      { clientToken = Prelude.Nothing,+        description = Prelude.Nothing,+        tags = Prelude.Nothing,+        ec2SubnetIds = Prelude.mempty,+        launchProfileProtocolVersions = Prelude.mempty,+        name = Data._Sensitive Lens.# pName_,+        streamConfiguration = pStreamConfiguration_,+        studioComponentIds =+          Lens.coerced Lens.# pStudioComponentIds_,+        studioId = pStudioId_+      }++-- | Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request. If you don’t specify a client token, the+-- Amazon Web Services SDK automatically generates a client token and uses+-- it for the request to ensure idempotency.+createLaunchProfile_clientToken :: Lens.Lens' CreateLaunchProfile (Prelude.Maybe Prelude.Text)+createLaunchProfile_clientToken = Lens.lens (\CreateLaunchProfile' {clientToken} -> clientToken) (\s@CreateLaunchProfile' {} a -> s {clientToken = a} :: CreateLaunchProfile)++-- | The description.+createLaunchProfile_description :: Lens.Lens' CreateLaunchProfile (Prelude.Maybe Prelude.Text)+createLaunchProfile_description = Lens.lens (\CreateLaunchProfile' {description} -> description) (\s@CreateLaunchProfile' {} a -> s {description = a} :: CreateLaunchProfile) Prelude.. Lens.mapping Data._Sensitive++-- | A collection of labels, in the form of key-value pairs, that apply to+-- this resource.+createLaunchProfile_tags :: Lens.Lens' CreateLaunchProfile (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createLaunchProfile_tags = Lens.lens (\CreateLaunchProfile' {tags} -> tags) (\s@CreateLaunchProfile' {} a -> s {tags = a} :: CreateLaunchProfile) Prelude.. Lens.mapping Lens.coerced++-- | Specifies the IDs of the EC2 subnets where streaming sessions will be+-- accessible from. These subnets must support the specified instance+-- types.+createLaunchProfile_ec2SubnetIds :: Lens.Lens' CreateLaunchProfile [Prelude.Text]+createLaunchProfile_ec2SubnetIds = Lens.lens (\CreateLaunchProfile' {ec2SubnetIds} -> ec2SubnetIds) (\s@CreateLaunchProfile' {} a -> s {ec2SubnetIds = a} :: CreateLaunchProfile) Prelude.. Lens.coerced++-- | The version number of the protocol that is used by the launch profile.+-- The only valid version is \"2021-03-31\".+createLaunchProfile_launchProfileProtocolVersions :: Lens.Lens' CreateLaunchProfile [Prelude.Text]+createLaunchProfile_launchProfileProtocolVersions = Lens.lens (\CreateLaunchProfile' {launchProfileProtocolVersions} -> launchProfileProtocolVersions) (\s@CreateLaunchProfile' {} a -> s {launchProfileProtocolVersions = a} :: CreateLaunchProfile) Prelude.. Lens.coerced++-- | The name for the launch profile.+createLaunchProfile_name :: Lens.Lens' CreateLaunchProfile Prelude.Text+createLaunchProfile_name = Lens.lens (\CreateLaunchProfile' {name} -> name) (\s@CreateLaunchProfile' {} a -> s {name = a} :: CreateLaunchProfile) Prelude.. Data._Sensitive++-- | A configuration for a streaming session.+createLaunchProfile_streamConfiguration :: Lens.Lens' CreateLaunchProfile StreamConfigurationCreate+createLaunchProfile_streamConfiguration = Lens.lens (\CreateLaunchProfile' {streamConfiguration} -> streamConfiguration) (\s@CreateLaunchProfile' {} a -> s {streamConfiguration = a} :: CreateLaunchProfile)++-- | Unique identifiers for a collection of studio components that can be+-- used with this launch profile.+createLaunchProfile_studioComponentIds :: Lens.Lens' CreateLaunchProfile (Prelude.NonEmpty Prelude.Text)+createLaunchProfile_studioComponentIds = Lens.lens (\CreateLaunchProfile' {studioComponentIds} -> studioComponentIds) (\s@CreateLaunchProfile' {} a -> s {studioComponentIds = a} :: CreateLaunchProfile) Prelude.. Lens.coerced++-- | The studio ID.+createLaunchProfile_studioId :: Lens.Lens' CreateLaunchProfile Prelude.Text+createLaunchProfile_studioId = Lens.lens (\CreateLaunchProfile' {studioId} -> studioId) (\s@CreateLaunchProfile' {} a -> s {studioId = a} :: CreateLaunchProfile)++instance Core.AWSRequest CreateLaunchProfile where+  type+    AWSResponse CreateLaunchProfile =+      CreateLaunchProfileResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateLaunchProfileResponse'+            Prelude.<$> (x Data..?> "launchProfile")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateLaunchProfile where+  hashWithSalt _salt CreateLaunchProfile' {..} =+    _salt+      `Prelude.hashWithSalt` clientToken+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` ec2SubnetIds+      `Prelude.hashWithSalt` launchProfileProtocolVersions+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` streamConfiguration+      `Prelude.hashWithSalt` studioComponentIds+      `Prelude.hashWithSalt` studioId++instance Prelude.NFData CreateLaunchProfile where+  rnf CreateLaunchProfile' {..} =+    Prelude.rnf clientToken+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf ec2SubnetIds+      `Prelude.seq` Prelude.rnf launchProfileProtocolVersions+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf streamConfiguration+      `Prelude.seq` Prelude.rnf studioComponentIds+      `Prelude.seq` Prelude.rnf studioId++instance Data.ToHeaders CreateLaunchProfile where+  toHeaders CreateLaunchProfile' {..} =+    Prelude.mconcat+      [ "X-Amz-Client-Token" Data.=# clientToken,+        "Content-Type"+          Data.=# ("application/x-amz-json-1.1" :: Prelude.ByteString)+      ]++instance Data.ToJSON CreateLaunchProfile where+  toJSON CreateLaunchProfile' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("description" Data..=) Prelude.<$> description,+            ("tags" Data..=) Prelude.<$> tags,+            Prelude.Just ("ec2SubnetIds" Data..= ec2SubnetIds),+            Prelude.Just+              ( "launchProfileProtocolVersions"+                  Data..= launchProfileProtocolVersions+              ),+            Prelude.Just ("name" Data..= name),+            Prelude.Just+              ("streamConfiguration" Data..= streamConfiguration),+            Prelude.Just+              ("studioComponentIds" Data..= studioComponentIds)+          ]+      )++instance Data.ToPath CreateLaunchProfile where+  toPath CreateLaunchProfile' {..} =+    Prelude.mconcat+      [ "/2020-08-01/studios/",+        Data.toBS studioId,+        "/launch-profiles"+      ]++instance Data.ToQuery CreateLaunchProfile where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateLaunchProfileResponse' smart constructor.+data CreateLaunchProfileResponse = CreateLaunchProfileResponse'+  { -- | The launch profile.+    launchProfile :: Prelude.Maybe LaunchProfile,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateLaunchProfileResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'launchProfile', 'createLaunchProfileResponse_launchProfile' - The launch profile.+--+-- 'httpStatus', 'createLaunchProfileResponse_httpStatus' - The response's http status code.+newCreateLaunchProfileResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateLaunchProfileResponse+newCreateLaunchProfileResponse pHttpStatus_ =+  CreateLaunchProfileResponse'+    { launchProfile =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The launch profile.+createLaunchProfileResponse_launchProfile :: Lens.Lens' CreateLaunchProfileResponse (Prelude.Maybe LaunchProfile)+createLaunchProfileResponse_launchProfile = Lens.lens (\CreateLaunchProfileResponse' {launchProfile} -> launchProfile) (\s@CreateLaunchProfileResponse' {} a -> s {launchProfile = a} :: CreateLaunchProfileResponse)++-- | The response's http status code.+createLaunchProfileResponse_httpStatus :: Lens.Lens' CreateLaunchProfileResponse Prelude.Int+createLaunchProfileResponse_httpStatus = Lens.lens (\CreateLaunchProfileResponse' {httpStatus} -> httpStatus) (\s@CreateLaunchProfileResponse' {} a -> s {httpStatus = a} :: CreateLaunchProfileResponse)++instance Prelude.NFData CreateLaunchProfileResponse where+  rnf CreateLaunchProfileResponse' {..} =+    Prelude.rnf launchProfile+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Nimble/CreateStreamingImage.hs view
@@ -0,0 +1,257 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Nimble.CreateStreamingImage+-- 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 streaming image resource in a studio.+module Amazonka.Nimble.CreateStreamingImage+  ( -- * Creating a Request+    CreateStreamingImage (..),+    newCreateStreamingImage,++    -- * Request Lenses+    createStreamingImage_clientToken,+    createStreamingImage_description,+    createStreamingImage_tags,+    createStreamingImage_ec2ImageId,+    createStreamingImage_name,+    createStreamingImage_studioId,++    -- * Destructuring the Response+    CreateStreamingImageResponse (..),+    newCreateStreamingImageResponse,++    -- * Response Lenses+    createStreamingImageResponse_streamingImage,+    createStreamingImageResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Nimble.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateStreamingImage' smart constructor.+data CreateStreamingImage = CreateStreamingImage'+  { -- | Unique, case-sensitive identifier that you provide to ensure the+    -- idempotency of the request. If you don’t specify a client token, the+    -- Amazon Web Services SDK automatically generates a client token and uses+    -- it for the request to ensure idempotency.+    clientToken :: Prelude.Maybe Prelude.Text,+    -- | A human-readable description of the streaming image.+    description :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | A collection of labels, in the form of key-value pairs, that apply to+    -- this resource.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The ID of an EC2 machine image with which to create this streaming+    -- image.+    ec2ImageId :: Prelude.Text,+    -- | A friendly name for a streaming image resource.+    name :: Data.Sensitive Prelude.Text,+    -- | The studio ID.+    studioId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateStreamingImage' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientToken', 'createStreamingImage_clientToken' - Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request. If you don’t specify a client token, the+-- Amazon Web Services SDK automatically generates a client token and uses+-- it for the request to ensure idempotency.+--+-- 'description', 'createStreamingImage_description' - A human-readable description of the streaming image.+--+-- 'tags', 'createStreamingImage_tags' - A collection of labels, in the form of key-value pairs, that apply to+-- this resource.+--+-- 'ec2ImageId', 'createStreamingImage_ec2ImageId' - The ID of an EC2 machine image with which to create this streaming+-- image.+--+-- 'name', 'createStreamingImage_name' - A friendly name for a streaming image resource.+--+-- 'studioId', 'createStreamingImage_studioId' - The studio ID.+newCreateStreamingImage ::+  -- | 'ec2ImageId'+  Prelude.Text ->+  -- | 'name'+  Prelude.Text ->+  -- | 'studioId'+  Prelude.Text ->+  CreateStreamingImage+newCreateStreamingImage+  pEc2ImageId_+  pName_+  pStudioId_ =+    CreateStreamingImage'+      { clientToken =+          Prelude.Nothing,+        description = Prelude.Nothing,+        tags = Prelude.Nothing,+        ec2ImageId = pEc2ImageId_,+        name = Data._Sensitive Lens.# pName_,+        studioId = pStudioId_+      }++-- | Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request. If you don’t specify a client token, the+-- Amazon Web Services SDK automatically generates a client token and uses+-- it for the request to ensure idempotency.+createStreamingImage_clientToken :: Lens.Lens' CreateStreamingImage (Prelude.Maybe Prelude.Text)+createStreamingImage_clientToken = Lens.lens (\CreateStreamingImage' {clientToken} -> clientToken) (\s@CreateStreamingImage' {} a -> s {clientToken = a} :: CreateStreamingImage)++-- | A human-readable description of the streaming image.+createStreamingImage_description :: Lens.Lens' CreateStreamingImage (Prelude.Maybe Prelude.Text)+createStreamingImage_description = Lens.lens (\CreateStreamingImage' {description} -> description) (\s@CreateStreamingImage' {} a -> s {description = a} :: CreateStreamingImage) Prelude.. Lens.mapping Data._Sensitive++-- | A collection of labels, in the form of key-value pairs, that apply to+-- this resource.+createStreamingImage_tags :: Lens.Lens' CreateStreamingImage (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createStreamingImage_tags = Lens.lens (\CreateStreamingImage' {tags} -> tags) (\s@CreateStreamingImage' {} a -> s {tags = a} :: CreateStreamingImage) Prelude.. Lens.mapping Lens.coerced++-- | The ID of an EC2 machine image with which to create this streaming+-- image.+createStreamingImage_ec2ImageId :: Lens.Lens' CreateStreamingImage Prelude.Text+createStreamingImage_ec2ImageId = Lens.lens (\CreateStreamingImage' {ec2ImageId} -> ec2ImageId) (\s@CreateStreamingImage' {} a -> s {ec2ImageId = a} :: CreateStreamingImage)++-- | A friendly name for a streaming image resource.+createStreamingImage_name :: Lens.Lens' CreateStreamingImage Prelude.Text+createStreamingImage_name = Lens.lens (\CreateStreamingImage' {name} -> name) (\s@CreateStreamingImage' {} a -> s {name = a} :: CreateStreamingImage) Prelude.. Data._Sensitive++-- | The studio ID.+createStreamingImage_studioId :: Lens.Lens' CreateStreamingImage Prelude.Text+createStreamingImage_studioId = Lens.lens (\CreateStreamingImage' {studioId} -> studioId) (\s@CreateStreamingImage' {} a -> s {studioId = a} :: CreateStreamingImage)++instance Core.AWSRequest CreateStreamingImage where+  type+    AWSResponse CreateStreamingImage =+      CreateStreamingImageResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateStreamingImageResponse'+            Prelude.<$> (x Data..?> "streamingImage")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateStreamingImage where+  hashWithSalt _salt CreateStreamingImage' {..} =+    _salt+      `Prelude.hashWithSalt` clientToken+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` ec2ImageId+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` studioId++instance Prelude.NFData CreateStreamingImage where+  rnf CreateStreamingImage' {..} =+    Prelude.rnf clientToken+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf ec2ImageId+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf studioId++instance Data.ToHeaders CreateStreamingImage where+  toHeaders CreateStreamingImage' {..} =+    Prelude.mconcat+      [ "X-Amz-Client-Token" Data.=# clientToken,+        "Content-Type"+          Data.=# ("application/x-amz-json-1.1" :: Prelude.ByteString)+      ]++instance Data.ToJSON CreateStreamingImage where+  toJSON CreateStreamingImage' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("description" Data..=) Prelude.<$> description,+            ("tags" Data..=) Prelude.<$> tags,+            Prelude.Just ("ec2ImageId" Data..= ec2ImageId),+            Prelude.Just ("name" Data..= name)+          ]+      )++instance Data.ToPath CreateStreamingImage where+  toPath CreateStreamingImage' {..} =+    Prelude.mconcat+      [ "/2020-08-01/studios/",+        Data.toBS studioId,+        "/streaming-images"+      ]++instance Data.ToQuery CreateStreamingImage where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateStreamingImageResponse' smart constructor.+data CreateStreamingImageResponse = CreateStreamingImageResponse'+  { -- | The streaming image.+    streamingImage :: Prelude.Maybe StreamingImage,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateStreamingImageResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'streamingImage', 'createStreamingImageResponse_streamingImage' - The streaming image.+--+-- 'httpStatus', 'createStreamingImageResponse_httpStatus' - The response's http status code.+newCreateStreamingImageResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateStreamingImageResponse+newCreateStreamingImageResponse pHttpStatus_ =+  CreateStreamingImageResponse'+    { streamingImage =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The streaming image.+createStreamingImageResponse_streamingImage :: Lens.Lens' CreateStreamingImageResponse (Prelude.Maybe StreamingImage)+createStreamingImageResponse_streamingImage = Lens.lens (\CreateStreamingImageResponse' {streamingImage} -> streamingImage) (\s@CreateStreamingImageResponse' {} a -> s {streamingImage = a} :: CreateStreamingImageResponse)++-- | The response's http status code.+createStreamingImageResponse_httpStatus :: Lens.Lens' CreateStreamingImageResponse Prelude.Int+createStreamingImageResponse_httpStatus = Lens.lens (\CreateStreamingImageResponse' {httpStatus} -> httpStatus) (\s@CreateStreamingImageResponse' {} a -> s {httpStatus = a} :: CreateStreamingImageResponse)++instance Prelude.NFData CreateStreamingImageResponse where+  rnf CreateStreamingImageResponse' {..} =+    Prelude.rnf streamingImage+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Nimble/CreateStreamingSession.hs view
@@ -0,0 +1,282 @@+{-# 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.Nimble.CreateStreamingSession+-- 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 streaming session in a studio.+--+-- After invoking this operation, you must poll GetStreamingSession until+-- the streaming session is in the @READY@ state.+module Amazonka.Nimble.CreateStreamingSession+  ( -- * Creating a Request+    CreateStreamingSession (..),+    newCreateStreamingSession,++    -- * Request Lenses+    createStreamingSession_clientToken,+    createStreamingSession_ec2InstanceType,+    createStreamingSession_ownedBy,+    createStreamingSession_streamingImageId,+    createStreamingSession_tags,+    createStreamingSession_launchProfileId,+    createStreamingSession_studioId,++    -- * Destructuring the Response+    CreateStreamingSessionResponse (..),+    newCreateStreamingSessionResponse,++    -- * Response Lenses+    createStreamingSessionResponse_session,+    createStreamingSessionResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Nimble.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateStreamingSession' smart constructor.+data CreateStreamingSession = CreateStreamingSession'+  { -- | Unique, case-sensitive identifier that you provide to ensure the+    -- idempotency of the request. If you don’t specify a client token, the+    -- Amazon Web Services SDK automatically generates a client token and uses+    -- it for the request to ensure idempotency.+    clientToken :: Prelude.Maybe Prelude.Text,+    -- | The EC2 Instance type used for the streaming session.+    ec2InstanceType :: Prelude.Maybe StreamingInstanceType,+    -- | The user ID of the user that owns the streaming session. The user that+    -- owns the session will be logging into the session and interacting with+    -- the virtual workstation.+    ownedBy :: Prelude.Maybe Prelude.Text,+    -- | The ID of the streaming image.+    streamingImageId :: Prelude.Maybe Prelude.Text,+    -- | A collection of labels, in the form of key-value pairs, that apply to+    -- this resource.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The ID of the launch profile used to control access from the streaming+    -- session.+    launchProfileId :: Prelude.Text,+    -- | The studio ID.+    studioId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateStreamingSession' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientToken', 'createStreamingSession_clientToken' - Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request. If you don’t specify a client token, the+-- Amazon Web Services SDK automatically generates a client token and uses+-- it for the request to ensure idempotency.+--+-- 'ec2InstanceType', 'createStreamingSession_ec2InstanceType' - The EC2 Instance type used for the streaming session.+--+-- 'ownedBy', 'createStreamingSession_ownedBy' - The user ID of the user that owns the streaming session. The user that+-- owns the session will be logging into the session and interacting with+-- the virtual workstation.+--+-- 'streamingImageId', 'createStreamingSession_streamingImageId' - The ID of the streaming image.+--+-- 'tags', 'createStreamingSession_tags' - A collection of labels, in the form of key-value pairs, that apply to+-- this resource.+--+-- 'launchProfileId', 'createStreamingSession_launchProfileId' - The ID of the launch profile used to control access from the streaming+-- session.+--+-- 'studioId', 'createStreamingSession_studioId' - The studio ID.+newCreateStreamingSession ::+  -- | 'launchProfileId'+  Prelude.Text ->+  -- | 'studioId'+  Prelude.Text ->+  CreateStreamingSession+newCreateStreamingSession+  pLaunchProfileId_+  pStudioId_ =+    CreateStreamingSession'+      { clientToken =+          Prelude.Nothing,+        ec2InstanceType = Prelude.Nothing,+        ownedBy = Prelude.Nothing,+        streamingImageId = Prelude.Nothing,+        tags = Prelude.Nothing,+        launchProfileId = pLaunchProfileId_,+        studioId = pStudioId_+      }++-- | Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request. If you don’t specify a client token, the+-- Amazon Web Services SDK automatically generates a client token and uses+-- it for the request to ensure idempotency.+createStreamingSession_clientToken :: Lens.Lens' CreateStreamingSession (Prelude.Maybe Prelude.Text)+createStreamingSession_clientToken = Lens.lens (\CreateStreamingSession' {clientToken} -> clientToken) (\s@CreateStreamingSession' {} a -> s {clientToken = a} :: CreateStreamingSession)++-- | The EC2 Instance type used for the streaming session.+createStreamingSession_ec2InstanceType :: Lens.Lens' CreateStreamingSession (Prelude.Maybe StreamingInstanceType)+createStreamingSession_ec2InstanceType = Lens.lens (\CreateStreamingSession' {ec2InstanceType} -> ec2InstanceType) (\s@CreateStreamingSession' {} a -> s {ec2InstanceType = a} :: CreateStreamingSession)++-- | The user ID of the user that owns the streaming session. The user that+-- owns the session will be logging into the session and interacting with+-- the virtual workstation.+createStreamingSession_ownedBy :: Lens.Lens' CreateStreamingSession (Prelude.Maybe Prelude.Text)+createStreamingSession_ownedBy = Lens.lens (\CreateStreamingSession' {ownedBy} -> ownedBy) (\s@CreateStreamingSession' {} a -> s {ownedBy = a} :: CreateStreamingSession)++-- | The ID of the streaming image.+createStreamingSession_streamingImageId :: Lens.Lens' CreateStreamingSession (Prelude.Maybe Prelude.Text)+createStreamingSession_streamingImageId = Lens.lens (\CreateStreamingSession' {streamingImageId} -> streamingImageId) (\s@CreateStreamingSession' {} a -> s {streamingImageId = a} :: CreateStreamingSession)++-- | A collection of labels, in the form of key-value pairs, that apply to+-- this resource.+createStreamingSession_tags :: Lens.Lens' CreateStreamingSession (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createStreamingSession_tags = Lens.lens (\CreateStreamingSession' {tags} -> tags) (\s@CreateStreamingSession' {} a -> s {tags = a} :: CreateStreamingSession) Prelude.. Lens.mapping Lens.coerced++-- | The ID of the launch profile used to control access from the streaming+-- session.+createStreamingSession_launchProfileId :: Lens.Lens' CreateStreamingSession Prelude.Text+createStreamingSession_launchProfileId = Lens.lens (\CreateStreamingSession' {launchProfileId} -> launchProfileId) (\s@CreateStreamingSession' {} a -> s {launchProfileId = a} :: CreateStreamingSession)++-- | The studio ID.+createStreamingSession_studioId :: Lens.Lens' CreateStreamingSession Prelude.Text+createStreamingSession_studioId = Lens.lens (\CreateStreamingSession' {studioId} -> studioId) (\s@CreateStreamingSession' {} a -> s {studioId = a} :: CreateStreamingSession)++instance Core.AWSRequest CreateStreamingSession where+  type+    AWSResponse CreateStreamingSession =+      CreateStreamingSessionResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateStreamingSessionResponse'+            Prelude.<$> (x Data..?> "session")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateStreamingSession where+  hashWithSalt _salt CreateStreamingSession' {..} =+    _salt+      `Prelude.hashWithSalt` clientToken+      `Prelude.hashWithSalt` ec2InstanceType+      `Prelude.hashWithSalt` ownedBy+      `Prelude.hashWithSalt` streamingImageId+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` launchProfileId+      `Prelude.hashWithSalt` studioId++instance Prelude.NFData CreateStreamingSession where+  rnf CreateStreamingSession' {..} =+    Prelude.rnf clientToken+      `Prelude.seq` Prelude.rnf ec2InstanceType+      `Prelude.seq` Prelude.rnf ownedBy+      `Prelude.seq` Prelude.rnf streamingImageId+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf launchProfileId+      `Prelude.seq` Prelude.rnf studioId++instance Data.ToHeaders CreateStreamingSession where+  toHeaders CreateStreamingSession' {..} =+    Prelude.mconcat+      [ "X-Amz-Client-Token" Data.=# clientToken,+        "Content-Type"+          Data.=# ("application/x-amz-json-1.1" :: Prelude.ByteString)+      ]++instance Data.ToJSON CreateStreamingSession where+  toJSON CreateStreamingSession' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("ec2InstanceType" Data..=)+              Prelude.<$> ec2InstanceType,+            ("ownedBy" Data..=) Prelude.<$> ownedBy,+            ("streamingImageId" Data..=)+              Prelude.<$> streamingImageId,+            ("tags" Data..=) Prelude.<$> tags,+            Prelude.Just+              ("launchProfileId" Data..= launchProfileId)+          ]+      )++instance Data.ToPath CreateStreamingSession where+  toPath CreateStreamingSession' {..} =+    Prelude.mconcat+      [ "/2020-08-01/studios/",+        Data.toBS studioId,+        "/streaming-sessions"+      ]++instance Data.ToQuery CreateStreamingSession where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateStreamingSessionResponse' smart constructor.+data CreateStreamingSessionResponse = CreateStreamingSessionResponse'+  { -- | The session.+    session :: Prelude.Maybe StreamingSession,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateStreamingSessionResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'session', 'createStreamingSessionResponse_session' - The session.+--+-- 'httpStatus', 'createStreamingSessionResponse_httpStatus' - The response's http status code.+newCreateStreamingSessionResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateStreamingSessionResponse+newCreateStreamingSessionResponse pHttpStatus_ =+  CreateStreamingSessionResponse'+    { session =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The session.+createStreamingSessionResponse_session :: Lens.Lens' CreateStreamingSessionResponse (Prelude.Maybe StreamingSession)+createStreamingSessionResponse_session = Lens.lens (\CreateStreamingSessionResponse' {session} -> session) (\s@CreateStreamingSessionResponse' {} a -> s {session = a} :: CreateStreamingSessionResponse)++-- | The response's http status code.+createStreamingSessionResponse_httpStatus :: Lens.Lens' CreateStreamingSessionResponse Prelude.Int+createStreamingSessionResponse_httpStatus = Lens.lens (\CreateStreamingSessionResponse' {httpStatus} -> httpStatus) (\s@CreateStreamingSessionResponse' {} a -> s {httpStatus = a} :: CreateStreamingSessionResponse)++instance+  Prelude.NFData+    CreateStreamingSessionResponse+  where+  rnf CreateStreamingSessionResponse' {..} =+    Prelude.rnf session+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Nimble/CreateStreamingSessionStream.hs view
@@ -0,0 +1,233 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Nimble.CreateStreamingSessionStream+-- 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 streaming session stream for a streaming session.+--+-- After invoking this API, invoke GetStreamingSessionStream with the+-- returned streamId to poll the resource until it is in the @READY@ state.+module Amazonka.Nimble.CreateStreamingSessionStream+  ( -- * Creating a Request+    CreateStreamingSessionStream (..),+    newCreateStreamingSessionStream,++    -- * Request Lenses+    createStreamingSessionStream_clientToken,+    createStreamingSessionStream_expirationInSeconds,+    createStreamingSessionStream_sessionId,+    createStreamingSessionStream_studioId,++    -- * Destructuring the Response+    CreateStreamingSessionStreamResponse (..),+    newCreateStreamingSessionStreamResponse,++    -- * Response Lenses+    createStreamingSessionStreamResponse_stream,+    createStreamingSessionStreamResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Nimble.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateStreamingSessionStream' smart constructor.+data CreateStreamingSessionStream = CreateStreamingSessionStream'+  { -- | Unique, case-sensitive identifier that you provide to ensure the+    -- idempotency of the request. If you don’t specify a client token, the+    -- Amazon Web Services SDK automatically generates a client token and uses+    -- it for the request to ensure idempotency.+    clientToken :: Prelude.Maybe Prelude.Text,+    -- | The expiration time in seconds.+    expirationInSeconds :: Prelude.Maybe Prelude.Natural,+    -- | The streaming session ID.+    sessionId :: Prelude.Text,+    -- | The studio ID.+    studioId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateStreamingSessionStream' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientToken', 'createStreamingSessionStream_clientToken' - Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request. If you don’t specify a client token, the+-- Amazon Web Services SDK automatically generates a client token and uses+-- it for the request to ensure idempotency.+--+-- 'expirationInSeconds', 'createStreamingSessionStream_expirationInSeconds' - The expiration time in seconds.+--+-- 'sessionId', 'createStreamingSessionStream_sessionId' - The streaming session ID.+--+-- 'studioId', 'createStreamingSessionStream_studioId' - The studio ID.+newCreateStreamingSessionStream ::+  -- | 'sessionId'+  Prelude.Text ->+  -- | 'studioId'+  Prelude.Text ->+  CreateStreamingSessionStream+newCreateStreamingSessionStream+  pSessionId_+  pStudioId_ =+    CreateStreamingSessionStream'+      { clientToken =+          Prelude.Nothing,+        expirationInSeconds = Prelude.Nothing,+        sessionId = pSessionId_,+        studioId = pStudioId_+      }++-- | Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request. If you don’t specify a client token, the+-- Amazon Web Services SDK automatically generates a client token and uses+-- it for the request to ensure idempotency.+createStreamingSessionStream_clientToken :: Lens.Lens' CreateStreamingSessionStream (Prelude.Maybe Prelude.Text)+createStreamingSessionStream_clientToken = Lens.lens (\CreateStreamingSessionStream' {clientToken} -> clientToken) (\s@CreateStreamingSessionStream' {} a -> s {clientToken = a} :: CreateStreamingSessionStream)++-- | The expiration time in seconds.+createStreamingSessionStream_expirationInSeconds :: Lens.Lens' CreateStreamingSessionStream (Prelude.Maybe Prelude.Natural)+createStreamingSessionStream_expirationInSeconds = Lens.lens (\CreateStreamingSessionStream' {expirationInSeconds} -> expirationInSeconds) (\s@CreateStreamingSessionStream' {} a -> s {expirationInSeconds = a} :: CreateStreamingSessionStream)++-- | The streaming session ID.+createStreamingSessionStream_sessionId :: Lens.Lens' CreateStreamingSessionStream Prelude.Text+createStreamingSessionStream_sessionId = Lens.lens (\CreateStreamingSessionStream' {sessionId} -> sessionId) (\s@CreateStreamingSessionStream' {} a -> s {sessionId = a} :: CreateStreamingSessionStream)++-- | The studio ID.+createStreamingSessionStream_studioId :: Lens.Lens' CreateStreamingSessionStream Prelude.Text+createStreamingSessionStream_studioId = Lens.lens (\CreateStreamingSessionStream' {studioId} -> studioId) (\s@CreateStreamingSessionStream' {} a -> s {studioId = a} :: CreateStreamingSessionStream)++instance Core.AWSRequest CreateStreamingSessionStream where+  type+    AWSResponse CreateStreamingSessionStream =+      CreateStreamingSessionStreamResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateStreamingSessionStreamResponse'+            Prelude.<$> (x Data..?> "stream")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance+  Prelude.Hashable+    CreateStreamingSessionStream+  where+  hashWithSalt _salt CreateStreamingSessionStream' {..} =+    _salt+      `Prelude.hashWithSalt` clientToken+      `Prelude.hashWithSalt` expirationInSeconds+      `Prelude.hashWithSalt` sessionId+      `Prelude.hashWithSalt` studioId++instance Prelude.NFData CreateStreamingSessionStream where+  rnf CreateStreamingSessionStream' {..} =+    Prelude.rnf clientToken+      `Prelude.seq` Prelude.rnf expirationInSeconds+      `Prelude.seq` Prelude.rnf sessionId+      `Prelude.seq` Prelude.rnf studioId++instance Data.ToHeaders CreateStreamingSessionStream where+  toHeaders CreateStreamingSessionStream' {..} =+    Prelude.mconcat+      [ "X-Amz-Client-Token" Data.=# clientToken,+        "Content-Type"+          Data.=# ("application/x-amz-json-1.1" :: Prelude.ByteString)+      ]++instance Data.ToJSON CreateStreamingSessionStream where+  toJSON CreateStreamingSessionStream' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("expirationInSeconds" Data..=)+              Prelude.<$> expirationInSeconds+          ]+      )++instance Data.ToPath CreateStreamingSessionStream where+  toPath CreateStreamingSessionStream' {..} =+    Prelude.mconcat+      [ "/2020-08-01/studios/",+        Data.toBS studioId,+        "/streaming-sessions/",+        Data.toBS sessionId,+        "/streams"+      ]++instance Data.ToQuery CreateStreamingSessionStream where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateStreamingSessionStreamResponse' smart constructor.+data CreateStreamingSessionStreamResponse = CreateStreamingSessionStreamResponse'+  { -- | The stream.+    stream :: Prelude.Maybe StreamingSessionStream,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateStreamingSessionStreamResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'stream', 'createStreamingSessionStreamResponse_stream' - The stream.+--+-- 'httpStatus', 'createStreamingSessionStreamResponse_httpStatus' - The response's http status code.+newCreateStreamingSessionStreamResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateStreamingSessionStreamResponse+newCreateStreamingSessionStreamResponse pHttpStatus_ =+  CreateStreamingSessionStreamResponse'+    { stream =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The stream.+createStreamingSessionStreamResponse_stream :: Lens.Lens' CreateStreamingSessionStreamResponse (Prelude.Maybe StreamingSessionStream)+createStreamingSessionStreamResponse_stream = Lens.lens (\CreateStreamingSessionStreamResponse' {stream} -> stream) (\s@CreateStreamingSessionStreamResponse' {} a -> s {stream = a} :: CreateStreamingSessionStreamResponse)++-- | The response's http status code.+createStreamingSessionStreamResponse_httpStatus :: Lens.Lens' CreateStreamingSessionStreamResponse Prelude.Int+createStreamingSessionStreamResponse_httpStatus = Lens.lens (\CreateStreamingSessionStreamResponse' {httpStatus} -> httpStatus) (\s@CreateStreamingSessionStreamResponse' {} a -> s {httpStatus = a} :: CreateStreamingSessionStreamResponse)++instance+  Prelude.NFData+    CreateStreamingSessionStreamResponse+  where+  rnf CreateStreamingSessionStreamResponse' {..} =+    Prelude.rnf stream+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Nimble/CreateStudio.hs view
@@ -0,0 +1,301 @@+{-# 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.Nimble.CreateStudio+-- 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 a new studio.+--+-- When creating a studio, two IAM roles must be provided: the admin role+-- and the user role. These roles are assumed by your users when they log+-- in to the Nimble Studio portal.+--+-- The user role must have the @AmazonNimbleStudio-StudioUser@ managed+-- policy attached for the portal to function properly.+--+-- The admin role must have the @AmazonNimbleStudio-StudioAdmin@ managed+-- policy attached for the portal to function properly.+--+-- You may optionally specify a KMS key in the+-- @StudioEncryptionConfiguration@.+--+-- In Nimble Studio, resource names, descriptions, initialization scripts,+-- and other data you provide are always encrypted at rest using an KMS+-- key. By default, this key is owned by Amazon Web Services and managed on+-- your behalf. You may provide your own KMS key when calling+-- @CreateStudio@ to encrypt this data using a key you own and manage.+--+-- When providing an KMS key during studio creation, Nimble Studio creates+-- KMS grants in your account to provide your studio user and admin roles+-- access to these KMS keys.+--+-- If you delete this grant, the studio will no longer be accessible to+-- your portal users.+--+-- If you delete the studio KMS key, your studio will no longer be+-- accessible.+module Amazonka.Nimble.CreateStudio+  ( -- * Creating a Request+    CreateStudio (..),+    newCreateStudio,++    -- * Request Lenses+    createStudio_clientToken,+    createStudio_studioEncryptionConfiguration,+    createStudio_tags,+    createStudio_adminRoleArn,+    createStudio_displayName,+    createStudio_studioName,+    createStudio_userRoleArn,++    -- * Destructuring the Response+    CreateStudioResponse (..),+    newCreateStudioResponse,++    -- * Response Lenses+    createStudioResponse_studio,+    createStudioResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Nimble.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateStudio' smart constructor.+data CreateStudio = CreateStudio'+  { -- | Unique, case-sensitive identifier that you provide to ensure the+    -- idempotency of the request. If you don’t specify a client token, the+    -- Amazon Web Services SDK automatically generates a client token and uses+    -- it for the request to ensure idempotency.+    clientToken :: Prelude.Maybe Prelude.Text,+    -- | The studio encryption configuration.+    studioEncryptionConfiguration :: Prelude.Maybe StudioEncryptionConfiguration,+    -- | A collection of labels, in the form of key-value pairs, that apply to+    -- this resource.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The IAM role that studio admins will assume when logging in to the+    -- Nimble Studio portal.+    adminRoleArn :: Prelude.Text,+    -- | A friendly name for the studio.+    displayName :: Data.Sensitive Prelude.Text,+    -- | The studio name that is used in the URL of the Nimble Studio portal when+    -- accessed by Nimble Studio users.+    studioName :: Prelude.Text,+    -- | The IAM role that studio users will assume when logging in to the Nimble+    -- Studio portal.+    userRoleArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateStudio' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientToken', 'createStudio_clientToken' - Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request. If you don’t specify a client token, the+-- Amazon Web Services SDK automatically generates a client token and uses+-- it for the request to ensure idempotency.+--+-- 'studioEncryptionConfiguration', 'createStudio_studioEncryptionConfiguration' - The studio encryption configuration.+--+-- 'tags', 'createStudio_tags' - A collection of labels, in the form of key-value pairs, that apply to+-- this resource.+--+-- 'adminRoleArn', 'createStudio_adminRoleArn' - The IAM role that studio admins will assume when logging in to the+-- Nimble Studio portal.+--+-- 'displayName', 'createStudio_displayName' - A friendly name for the studio.+--+-- 'studioName', 'createStudio_studioName' - The studio name that is used in the URL of the Nimble Studio portal when+-- accessed by Nimble Studio users.+--+-- 'userRoleArn', 'createStudio_userRoleArn' - The IAM role that studio users will assume when logging in to the Nimble+-- Studio portal.+newCreateStudio ::+  -- | 'adminRoleArn'+  Prelude.Text ->+  -- | 'displayName'+  Prelude.Text ->+  -- | 'studioName'+  Prelude.Text ->+  -- | 'userRoleArn'+  Prelude.Text ->+  CreateStudio+newCreateStudio+  pAdminRoleArn_+  pDisplayName_+  pStudioName_+  pUserRoleArn_ =+    CreateStudio'+      { clientToken = Prelude.Nothing,+        studioEncryptionConfiguration = Prelude.Nothing,+        tags = Prelude.Nothing,+        adminRoleArn = pAdminRoleArn_,+        displayName = Data._Sensitive Lens.# pDisplayName_,+        studioName = pStudioName_,+        userRoleArn = pUserRoleArn_+      }++-- | Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request. If you don’t specify a client token, the+-- Amazon Web Services SDK automatically generates a client token and uses+-- it for the request to ensure idempotency.+createStudio_clientToken :: Lens.Lens' CreateStudio (Prelude.Maybe Prelude.Text)+createStudio_clientToken = Lens.lens (\CreateStudio' {clientToken} -> clientToken) (\s@CreateStudio' {} a -> s {clientToken = a} :: CreateStudio)++-- | The studio encryption configuration.+createStudio_studioEncryptionConfiguration :: Lens.Lens' CreateStudio (Prelude.Maybe StudioEncryptionConfiguration)+createStudio_studioEncryptionConfiguration = Lens.lens (\CreateStudio' {studioEncryptionConfiguration} -> studioEncryptionConfiguration) (\s@CreateStudio' {} a -> s {studioEncryptionConfiguration = a} :: CreateStudio)++-- | A collection of labels, in the form of key-value pairs, that apply to+-- this resource.+createStudio_tags :: Lens.Lens' CreateStudio (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createStudio_tags = Lens.lens (\CreateStudio' {tags} -> tags) (\s@CreateStudio' {} a -> s {tags = a} :: CreateStudio) Prelude.. Lens.mapping Lens.coerced++-- | The IAM role that studio admins will assume when logging in to the+-- Nimble Studio portal.+createStudio_adminRoleArn :: Lens.Lens' CreateStudio Prelude.Text+createStudio_adminRoleArn = Lens.lens (\CreateStudio' {adminRoleArn} -> adminRoleArn) (\s@CreateStudio' {} a -> s {adminRoleArn = a} :: CreateStudio)++-- | A friendly name for the studio.+createStudio_displayName :: Lens.Lens' CreateStudio Prelude.Text+createStudio_displayName = Lens.lens (\CreateStudio' {displayName} -> displayName) (\s@CreateStudio' {} a -> s {displayName = a} :: CreateStudio) Prelude.. Data._Sensitive++-- | The studio name that is used in the URL of the Nimble Studio portal when+-- accessed by Nimble Studio users.+createStudio_studioName :: Lens.Lens' CreateStudio Prelude.Text+createStudio_studioName = Lens.lens (\CreateStudio' {studioName} -> studioName) (\s@CreateStudio' {} a -> s {studioName = a} :: CreateStudio)++-- | The IAM role that studio users will assume when logging in to the Nimble+-- Studio portal.+createStudio_userRoleArn :: Lens.Lens' CreateStudio Prelude.Text+createStudio_userRoleArn = Lens.lens (\CreateStudio' {userRoleArn} -> userRoleArn) (\s@CreateStudio' {} a -> s {userRoleArn = a} :: CreateStudio)++instance Core.AWSRequest CreateStudio where+  type AWSResponse CreateStudio = CreateStudioResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateStudioResponse'+            Prelude.<$> (x Data..?> "studio")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateStudio where+  hashWithSalt _salt CreateStudio' {..} =+    _salt+      `Prelude.hashWithSalt` clientToken+      `Prelude.hashWithSalt` studioEncryptionConfiguration+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` adminRoleArn+      `Prelude.hashWithSalt` displayName+      `Prelude.hashWithSalt` studioName+      `Prelude.hashWithSalt` userRoleArn++instance Prelude.NFData CreateStudio where+  rnf CreateStudio' {..} =+    Prelude.rnf clientToken+      `Prelude.seq` Prelude.rnf studioEncryptionConfiguration+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf adminRoleArn+      `Prelude.seq` Prelude.rnf displayName+      `Prelude.seq` Prelude.rnf studioName+      `Prelude.seq` Prelude.rnf userRoleArn++instance Data.ToHeaders CreateStudio where+  toHeaders CreateStudio' {..} =+    Prelude.mconcat+      [ "X-Amz-Client-Token" Data.=# clientToken,+        "Content-Type"+          Data.=# ("application/x-amz-json-1.1" :: Prelude.ByteString)+      ]++instance Data.ToJSON CreateStudio where+  toJSON CreateStudio' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("studioEncryptionConfiguration" Data..=)+              Prelude.<$> studioEncryptionConfiguration,+            ("tags" Data..=) Prelude.<$> tags,+            Prelude.Just ("adminRoleArn" Data..= adminRoleArn),+            Prelude.Just ("displayName" Data..= displayName),+            Prelude.Just ("studioName" Data..= studioName),+            Prelude.Just ("userRoleArn" Data..= userRoleArn)+          ]+      )++instance Data.ToPath CreateStudio where+  toPath = Prelude.const "/2020-08-01/studios"++instance Data.ToQuery CreateStudio where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateStudioResponse' smart constructor.+data CreateStudioResponse = CreateStudioResponse'+  { -- | Information about a studio.+    studio :: Prelude.Maybe Studio,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateStudioResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'studio', 'createStudioResponse_studio' - Information about a studio.+--+-- 'httpStatus', 'createStudioResponse_httpStatus' - The response's http status code.+newCreateStudioResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateStudioResponse+newCreateStudioResponse pHttpStatus_ =+  CreateStudioResponse'+    { studio = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Information about a studio.+createStudioResponse_studio :: Lens.Lens' CreateStudioResponse (Prelude.Maybe Studio)+createStudioResponse_studio = Lens.lens (\CreateStudioResponse' {studio} -> studio) (\s@CreateStudioResponse' {} a -> s {studio = a} :: CreateStudioResponse)++-- | The response's http status code.+createStudioResponse_httpStatus :: Lens.Lens' CreateStudioResponse Prelude.Int+createStudioResponse_httpStatus = Lens.lens (\CreateStudioResponse' {httpStatus} -> httpStatus) (\s@CreateStudioResponse' {} a -> s {httpStatus = a} :: CreateStudioResponse)++instance Prelude.NFData CreateStudioResponse where+  rnf CreateStudioResponse' {..} =+    Prelude.rnf studio+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Nimble/CreateStudioComponent.hs view
@@ -0,0 +1,359 @@+{-# 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.Nimble.CreateStudioComponent+-- 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 studio component resource.+module Amazonka.Nimble.CreateStudioComponent+  ( -- * Creating a Request+    CreateStudioComponent (..),+    newCreateStudioComponent,++    -- * Request Lenses+    createStudioComponent_clientToken,+    createStudioComponent_configuration,+    createStudioComponent_description,+    createStudioComponent_ec2SecurityGroupIds,+    createStudioComponent_initializationScripts,+    createStudioComponent_runtimeRoleArn,+    createStudioComponent_scriptParameters,+    createStudioComponent_secureInitializationRoleArn,+    createStudioComponent_subtype,+    createStudioComponent_tags,+    createStudioComponent_name,+    createStudioComponent_studioId,+    createStudioComponent_type,++    -- * Destructuring the Response+    CreateStudioComponentResponse (..),+    newCreateStudioComponentResponse,++    -- * Response Lenses+    createStudioComponentResponse_studioComponent,+    createStudioComponentResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Nimble.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateStudioComponent' smart constructor.+data CreateStudioComponent = CreateStudioComponent'+  { -- | Unique, case-sensitive identifier that you provide to ensure the+    -- idempotency of the request. If you don’t specify a client token, the+    -- Amazon Web Services SDK automatically generates a client token and uses+    -- it for the request to ensure idempotency.+    clientToken :: Prelude.Maybe Prelude.Text,+    -- | The configuration of the studio component, based on component type.+    configuration :: Prelude.Maybe StudioComponentConfiguration,+    -- | The description.+    description :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The EC2 security groups that control access to the studio component.+    ec2SecurityGroupIds :: Prelude.Maybe [Prelude.Text],+    -- | Initialization scripts for studio components.+    initializationScripts :: Prelude.Maybe [StudioComponentInitializationScript],+    -- | An IAM role attached to a Studio Component that gives the studio+    -- component access to Amazon Web Services resources at anytime while the+    -- instance is running.+    runtimeRoleArn :: Prelude.Maybe Prelude.Text,+    -- | Parameters for the studio component scripts.+    scriptParameters :: Prelude.Maybe (Data.Sensitive [ScriptParameterKeyValue]),+    -- | An IAM role attached to Studio Component when the system initialization+    -- script runs which give the studio component access to Amazon Web+    -- Services resources when the system initialization script runs.+    secureInitializationRoleArn :: Prelude.Maybe Prelude.Text,+    -- | The specific subtype of a studio component.+    subtype :: Prelude.Maybe StudioComponentSubtype,+    -- | A collection of labels, in the form of key-value pairs, that apply to+    -- this resource.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The name for the studio component.+    name :: Data.Sensitive Prelude.Text,+    -- | The studio ID.+    studioId :: Prelude.Text,+    -- | The type of the studio component.+    type' :: StudioComponentType+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateStudioComponent' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientToken', 'createStudioComponent_clientToken' - Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request. If you don’t specify a client token, the+-- Amazon Web Services SDK automatically generates a client token and uses+-- it for the request to ensure idempotency.+--+-- 'configuration', 'createStudioComponent_configuration' - The configuration of the studio component, based on component type.+--+-- 'description', 'createStudioComponent_description' - The description.+--+-- 'ec2SecurityGroupIds', 'createStudioComponent_ec2SecurityGroupIds' - The EC2 security groups that control access to the studio component.+--+-- 'initializationScripts', 'createStudioComponent_initializationScripts' - Initialization scripts for studio components.+--+-- 'runtimeRoleArn', 'createStudioComponent_runtimeRoleArn' - An IAM role attached to a Studio Component that gives the studio+-- component access to Amazon Web Services resources at anytime while the+-- instance is running.+--+-- 'scriptParameters', 'createStudioComponent_scriptParameters' - Parameters for the studio component scripts.+--+-- 'secureInitializationRoleArn', 'createStudioComponent_secureInitializationRoleArn' - An IAM role attached to Studio Component when the system initialization+-- script runs which give the studio component access to Amazon Web+-- Services resources when the system initialization script runs.+--+-- 'subtype', 'createStudioComponent_subtype' - The specific subtype of a studio component.+--+-- 'tags', 'createStudioComponent_tags' - A collection of labels, in the form of key-value pairs, that apply to+-- this resource.+--+-- 'name', 'createStudioComponent_name' - The name for the studio component.+--+-- 'studioId', 'createStudioComponent_studioId' - The studio ID.+--+-- 'type'', 'createStudioComponent_type' - The type of the studio component.+newCreateStudioComponent ::+  -- | 'name'+  Prelude.Text ->+  -- | 'studioId'+  Prelude.Text ->+  -- | 'type''+  StudioComponentType ->+  CreateStudioComponent+newCreateStudioComponent pName_ pStudioId_ pType_ =+  CreateStudioComponent'+    { clientToken =+        Prelude.Nothing,+      configuration = Prelude.Nothing,+      description = Prelude.Nothing,+      ec2SecurityGroupIds = Prelude.Nothing,+      initializationScripts = Prelude.Nothing,+      runtimeRoleArn = Prelude.Nothing,+      scriptParameters = Prelude.Nothing,+      secureInitializationRoleArn = Prelude.Nothing,+      subtype = Prelude.Nothing,+      tags = Prelude.Nothing,+      name = Data._Sensitive Lens.# pName_,+      studioId = pStudioId_,+      type' = pType_+    }++-- | Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request. If you don’t specify a client token, the+-- Amazon Web Services SDK automatically generates a client token and uses+-- it for the request to ensure idempotency.+createStudioComponent_clientToken :: Lens.Lens' CreateStudioComponent (Prelude.Maybe Prelude.Text)+createStudioComponent_clientToken = Lens.lens (\CreateStudioComponent' {clientToken} -> clientToken) (\s@CreateStudioComponent' {} a -> s {clientToken = a} :: CreateStudioComponent)++-- | The configuration of the studio component, based on component type.+createStudioComponent_configuration :: Lens.Lens' CreateStudioComponent (Prelude.Maybe StudioComponentConfiguration)+createStudioComponent_configuration = Lens.lens (\CreateStudioComponent' {configuration} -> configuration) (\s@CreateStudioComponent' {} a -> s {configuration = a} :: CreateStudioComponent)++-- | The description.+createStudioComponent_description :: Lens.Lens' CreateStudioComponent (Prelude.Maybe Prelude.Text)+createStudioComponent_description = Lens.lens (\CreateStudioComponent' {description} -> description) (\s@CreateStudioComponent' {} a -> s {description = a} :: CreateStudioComponent) Prelude.. Lens.mapping Data._Sensitive++-- | The EC2 security groups that control access to the studio component.+createStudioComponent_ec2SecurityGroupIds :: Lens.Lens' CreateStudioComponent (Prelude.Maybe [Prelude.Text])+createStudioComponent_ec2SecurityGroupIds = Lens.lens (\CreateStudioComponent' {ec2SecurityGroupIds} -> ec2SecurityGroupIds) (\s@CreateStudioComponent' {} a -> s {ec2SecurityGroupIds = a} :: CreateStudioComponent) Prelude.. Lens.mapping Lens.coerced++-- | Initialization scripts for studio components.+createStudioComponent_initializationScripts :: Lens.Lens' CreateStudioComponent (Prelude.Maybe [StudioComponentInitializationScript])+createStudioComponent_initializationScripts = Lens.lens (\CreateStudioComponent' {initializationScripts} -> initializationScripts) (\s@CreateStudioComponent' {} a -> s {initializationScripts = a} :: CreateStudioComponent) Prelude.. Lens.mapping Lens.coerced++-- | An IAM role attached to a Studio Component that gives the studio+-- component access to Amazon Web Services resources at anytime while the+-- instance is running.+createStudioComponent_runtimeRoleArn :: Lens.Lens' CreateStudioComponent (Prelude.Maybe Prelude.Text)+createStudioComponent_runtimeRoleArn = Lens.lens (\CreateStudioComponent' {runtimeRoleArn} -> runtimeRoleArn) (\s@CreateStudioComponent' {} a -> s {runtimeRoleArn = a} :: CreateStudioComponent)++-- | Parameters for the studio component scripts.+createStudioComponent_scriptParameters :: Lens.Lens' CreateStudioComponent (Prelude.Maybe [ScriptParameterKeyValue])+createStudioComponent_scriptParameters = Lens.lens (\CreateStudioComponent' {scriptParameters} -> scriptParameters) (\s@CreateStudioComponent' {} a -> s {scriptParameters = a} :: CreateStudioComponent) Prelude.. Lens.mapping (Data._Sensitive Prelude.. Lens.coerced)++-- | An IAM role attached to Studio Component when the system initialization+-- script runs which give the studio component access to Amazon Web+-- Services resources when the system initialization script runs.+createStudioComponent_secureInitializationRoleArn :: Lens.Lens' CreateStudioComponent (Prelude.Maybe Prelude.Text)+createStudioComponent_secureInitializationRoleArn = Lens.lens (\CreateStudioComponent' {secureInitializationRoleArn} -> secureInitializationRoleArn) (\s@CreateStudioComponent' {} a -> s {secureInitializationRoleArn = a} :: CreateStudioComponent)++-- | The specific subtype of a studio component.+createStudioComponent_subtype :: Lens.Lens' CreateStudioComponent (Prelude.Maybe StudioComponentSubtype)+createStudioComponent_subtype = Lens.lens (\CreateStudioComponent' {subtype} -> subtype) (\s@CreateStudioComponent' {} a -> s {subtype = a} :: CreateStudioComponent)++-- | A collection of labels, in the form of key-value pairs, that apply to+-- this resource.+createStudioComponent_tags :: Lens.Lens' CreateStudioComponent (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createStudioComponent_tags = Lens.lens (\CreateStudioComponent' {tags} -> tags) (\s@CreateStudioComponent' {} a -> s {tags = a} :: CreateStudioComponent) Prelude.. Lens.mapping Lens.coerced++-- | The name for the studio component.+createStudioComponent_name :: Lens.Lens' CreateStudioComponent Prelude.Text+createStudioComponent_name = Lens.lens (\CreateStudioComponent' {name} -> name) (\s@CreateStudioComponent' {} a -> s {name = a} :: CreateStudioComponent) Prelude.. Data._Sensitive++-- | The studio ID.+createStudioComponent_studioId :: Lens.Lens' CreateStudioComponent Prelude.Text+createStudioComponent_studioId = Lens.lens (\CreateStudioComponent' {studioId} -> studioId) (\s@CreateStudioComponent' {} a -> s {studioId = a} :: CreateStudioComponent)++-- | The type of the studio component.+createStudioComponent_type :: Lens.Lens' CreateStudioComponent StudioComponentType+createStudioComponent_type = Lens.lens (\CreateStudioComponent' {type'} -> type') (\s@CreateStudioComponent' {} a -> s {type' = a} :: CreateStudioComponent)++instance Core.AWSRequest CreateStudioComponent where+  type+    AWSResponse CreateStudioComponent =+      CreateStudioComponentResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateStudioComponentResponse'+            Prelude.<$> (x Data..?> "studioComponent")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateStudioComponent where+  hashWithSalt _salt CreateStudioComponent' {..} =+    _salt+      `Prelude.hashWithSalt` clientToken+      `Prelude.hashWithSalt` configuration+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` ec2SecurityGroupIds+      `Prelude.hashWithSalt` initializationScripts+      `Prelude.hashWithSalt` runtimeRoleArn+      `Prelude.hashWithSalt` scriptParameters+      `Prelude.hashWithSalt` secureInitializationRoleArn+      `Prelude.hashWithSalt` subtype+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` studioId+      `Prelude.hashWithSalt` type'++instance Prelude.NFData CreateStudioComponent where+  rnf CreateStudioComponent' {..} =+    Prelude.rnf clientToken+      `Prelude.seq` Prelude.rnf configuration+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf ec2SecurityGroupIds+      `Prelude.seq` Prelude.rnf initializationScripts+      `Prelude.seq` Prelude.rnf runtimeRoleArn+      `Prelude.seq` Prelude.rnf scriptParameters+      `Prelude.seq` Prelude.rnf secureInitializationRoleArn+      `Prelude.seq` Prelude.rnf subtype+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf studioId+      `Prelude.seq` Prelude.rnf type'++instance Data.ToHeaders CreateStudioComponent where+  toHeaders CreateStudioComponent' {..} =+    Prelude.mconcat+      [ "X-Amz-Client-Token" Data.=# clientToken,+        "Content-Type"+          Data.=# ("application/x-amz-json-1.1" :: Prelude.ByteString)+      ]++instance Data.ToJSON CreateStudioComponent where+  toJSON CreateStudioComponent' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("configuration" Data..=) Prelude.<$> configuration,+            ("description" Data..=) Prelude.<$> description,+            ("ec2SecurityGroupIds" Data..=)+              Prelude.<$> ec2SecurityGroupIds,+            ("initializationScripts" Data..=)+              Prelude.<$> initializationScripts,+            ("runtimeRoleArn" Data..=)+              Prelude.<$> runtimeRoleArn,+            ("scriptParameters" Data..=)+              Prelude.<$> scriptParameters,+            ("secureInitializationRoleArn" Data..=)+              Prelude.<$> secureInitializationRoleArn,+            ("subtype" Data..=) Prelude.<$> subtype,+            ("tags" Data..=) Prelude.<$> tags,+            Prelude.Just ("name" Data..= name),+            Prelude.Just ("type" Data..= type')+          ]+      )++instance Data.ToPath CreateStudioComponent where+  toPath CreateStudioComponent' {..} =+    Prelude.mconcat+      [ "/2020-08-01/studios/",+        Data.toBS studioId,+        "/studio-components"+      ]++instance Data.ToQuery CreateStudioComponent where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateStudioComponentResponse' smart constructor.+data CreateStudioComponentResponse = CreateStudioComponentResponse'+  { -- | Information about the studio component.+    studioComponent :: Prelude.Maybe StudioComponent,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateStudioComponentResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'studioComponent', 'createStudioComponentResponse_studioComponent' - Information about the studio component.+--+-- 'httpStatus', 'createStudioComponentResponse_httpStatus' - The response's http status code.+newCreateStudioComponentResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateStudioComponentResponse+newCreateStudioComponentResponse pHttpStatus_ =+  CreateStudioComponentResponse'+    { studioComponent =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Information about the studio component.+createStudioComponentResponse_studioComponent :: Lens.Lens' CreateStudioComponentResponse (Prelude.Maybe StudioComponent)+createStudioComponentResponse_studioComponent = Lens.lens (\CreateStudioComponentResponse' {studioComponent} -> studioComponent) (\s@CreateStudioComponentResponse' {} a -> s {studioComponent = a} :: CreateStudioComponentResponse)++-- | The response's http status code.+createStudioComponentResponse_httpStatus :: Lens.Lens' CreateStudioComponentResponse Prelude.Int+createStudioComponentResponse_httpStatus = Lens.lens (\CreateStudioComponentResponse' {httpStatus} -> httpStatus) (\s@CreateStudioComponentResponse' {} a -> s {httpStatus = a} :: CreateStudioComponentResponse)++instance Prelude.NFData CreateStudioComponentResponse where+  rnf CreateStudioComponentResponse' {..} =+    Prelude.rnf studioComponent+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Nimble/DeleteLaunchProfile.hs view
@@ -0,0 +1,202 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Nimble.DeleteLaunchProfile+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Permanently delete a launch profile.+module Amazonka.Nimble.DeleteLaunchProfile+  ( -- * Creating a Request+    DeleteLaunchProfile (..),+    newDeleteLaunchProfile,++    -- * Request Lenses+    deleteLaunchProfile_clientToken,+    deleteLaunchProfile_launchProfileId,+    deleteLaunchProfile_studioId,++    -- * Destructuring the Response+    DeleteLaunchProfileResponse (..),+    newDeleteLaunchProfileResponse,++    -- * Response Lenses+    deleteLaunchProfileResponse_launchProfile,+    deleteLaunchProfileResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Nimble.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteLaunchProfile' smart constructor.+data DeleteLaunchProfile = DeleteLaunchProfile'+  { -- | Unique, case-sensitive identifier that you provide to ensure the+    -- idempotency of the request. If you don’t specify a client token, the+    -- Amazon Web Services SDK automatically generates a client token and uses+    -- it for the request to ensure idempotency.+    clientToken :: Prelude.Maybe Prelude.Text,+    -- | The ID of the launch profile used to control access from the streaming+    -- session.+    launchProfileId :: Prelude.Text,+    -- | The studio ID.+    studioId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteLaunchProfile' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientToken', 'deleteLaunchProfile_clientToken' - Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request. If you don’t specify a client token, the+-- Amazon Web Services SDK automatically generates a client token and uses+-- it for the request to ensure idempotency.+--+-- 'launchProfileId', 'deleteLaunchProfile_launchProfileId' - The ID of the launch profile used to control access from the streaming+-- session.+--+-- 'studioId', 'deleteLaunchProfile_studioId' - The studio ID.+newDeleteLaunchProfile ::+  -- | 'launchProfileId'+  Prelude.Text ->+  -- | 'studioId'+  Prelude.Text ->+  DeleteLaunchProfile+newDeleteLaunchProfile pLaunchProfileId_ pStudioId_ =+  DeleteLaunchProfile'+    { clientToken = Prelude.Nothing,+      launchProfileId = pLaunchProfileId_,+      studioId = pStudioId_+    }++-- | Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request. If you don’t specify a client token, the+-- Amazon Web Services SDK automatically generates a client token and uses+-- it for the request to ensure idempotency.+deleteLaunchProfile_clientToken :: Lens.Lens' DeleteLaunchProfile (Prelude.Maybe Prelude.Text)+deleteLaunchProfile_clientToken = Lens.lens (\DeleteLaunchProfile' {clientToken} -> clientToken) (\s@DeleteLaunchProfile' {} a -> s {clientToken = a} :: DeleteLaunchProfile)++-- | The ID of the launch profile used to control access from the streaming+-- session.+deleteLaunchProfile_launchProfileId :: Lens.Lens' DeleteLaunchProfile Prelude.Text+deleteLaunchProfile_launchProfileId = Lens.lens (\DeleteLaunchProfile' {launchProfileId} -> launchProfileId) (\s@DeleteLaunchProfile' {} a -> s {launchProfileId = a} :: DeleteLaunchProfile)++-- | The studio ID.+deleteLaunchProfile_studioId :: Lens.Lens' DeleteLaunchProfile Prelude.Text+deleteLaunchProfile_studioId = Lens.lens (\DeleteLaunchProfile' {studioId} -> studioId) (\s@DeleteLaunchProfile' {} a -> s {studioId = a} :: DeleteLaunchProfile)++instance Core.AWSRequest DeleteLaunchProfile where+  type+    AWSResponse DeleteLaunchProfile =+      DeleteLaunchProfileResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DeleteLaunchProfileResponse'+            Prelude.<$> (x Data..?> "launchProfile")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeleteLaunchProfile where+  hashWithSalt _salt DeleteLaunchProfile' {..} =+    _salt+      `Prelude.hashWithSalt` clientToken+      `Prelude.hashWithSalt` launchProfileId+      `Prelude.hashWithSalt` studioId++instance Prelude.NFData DeleteLaunchProfile where+  rnf DeleteLaunchProfile' {..} =+    Prelude.rnf clientToken+      `Prelude.seq` Prelude.rnf launchProfileId+      `Prelude.seq` Prelude.rnf studioId++instance Data.ToHeaders DeleteLaunchProfile where+  toHeaders DeleteLaunchProfile' {..} =+    Prelude.mconcat+      [ "X-Amz-Client-Token" Data.=# clientToken,+        "Content-Type"+          Data.=# ("application/x-amz-json-1.1" :: Prelude.ByteString)+      ]++instance Data.ToPath DeleteLaunchProfile where+  toPath DeleteLaunchProfile' {..} =+    Prelude.mconcat+      [ "/2020-08-01/studios/",+        Data.toBS studioId,+        "/launch-profiles/",+        Data.toBS launchProfileId+      ]++instance Data.ToQuery DeleteLaunchProfile where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteLaunchProfileResponse' smart constructor.+data DeleteLaunchProfileResponse = DeleteLaunchProfileResponse'+  { -- | The launch profile.+    launchProfile :: Prelude.Maybe LaunchProfile,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteLaunchProfileResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'launchProfile', 'deleteLaunchProfileResponse_launchProfile' - The launch profile.+--+-- 'httpStatus', 'deleteLaunchProfileResponse_httpStatus' - The response's http status code.+newDeleteLaunchProfileResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeleteLaunchProfileResponse+newDeleteLaunchProfileResponse pHttpStatus_ =+  DeleteLaunchProfileResponse'+    { launchProfile =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The launch profile.+deleteLaunchProfileResponse_launchProfile :: Lens.Lens' DeleteLaunchProfileResponse (Prelude.Maybe LaunchProfile)+deleteLaunchProfileResponse_launchProfile = Lens.lens (\DeleteLaunchProfileResponse' {launchProfile} -> launchProfile) (\s@DeleteLaunchProfileResponse' {} a -> s {launchProfile = a} :: DeleteLaunchProfileResponse)++-- | The response's http status code.+deleteLaunchProfileResponse_httpStatus :: Lens.Lens' DeleteLaunchProfileResponse Prelude.Int+deleteLaunchProfileResponse_httpStatus = Lens.lens (\DeleteLaunchProfileResponse' {httpStatus} -> httpStatus) (\s@DeleteLaunchProfileResponse' {} a -> s {httpStatus = a} :: DeleteLaunchProfileResponse)++instance Prelude.NFData DeleteLaunchProfileResponse where+  rnf DeleteLaunchProfileResponse' {..} =+    Prelude.rnf launchProfile+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Nimble/DeleteLaunchProfileMember.hs view
@@ -0,0 +1,213 @@+{-# 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.Nimble.DeleteLaunchProfileMember+-- 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 a user from launch profile membership.+module Amazonka.Nimble.DeleteLaunchProfileMember+  ( -- * Creating a Request+    DeleteLaunchProfileMember (..),+    newDeleteLaunchProfileMember,++    -- * Request Lenses+    deleteLaunchProfileMember_clientToken,+    deleteLaunchProfileMember_launchProfileId,+    deleteLaunchProfileMember_principalId,+    deleteLaunchProfileMember_studioId,++    -- * Destructuring the Response+    DeleteLaunchProfileMemberResponse (..),+    newDeleteLaunchProfileMemberResponse,++    -- * Response Lenses+    deleteLaunchProfileMemberResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Nimble.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteLaunchProfileMember' smart constructor.+data DeleteLaunchProfileMember = DeleteLaunchProfileMember'+  { -- | Unique, case-sensitive identifier that you provide to ensure the+    -- idempotency of the request. If you don’t specify a client token, the+    -- Amazon Web Services SDK automatically generates a client token and uses+    -- it for the request to ensure idempotency.+    clientToken :: Prelude.Maybe Prelude.Text,+    -- | The ID of the launch profile used to control access from the streaming+    -- session.+    launchProfileId :: Prelude.Text,+    -- | The principal ID. This currently supports a IAM Identity Center UserId.+    principalId :: Prelude.Text,+    -- | The studio ID.+    studioId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteLaunchProfileMember' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientToken', 'deleteLaunchProfileMember_clientToken' - Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request. If you don’t specify a client token, the+-- Amazon Web Services SDK automatically generates a client token and uses+-- it for the request to ensure idempotency.+--+-- 'launchProfileId', 'deleteLaunchProfileMember_launchProfileId' - The ID of the launch profile used to control access from the streaming+-- session.+--+-- 'principalId', 'deleteLaunchProfileMember_principalId' - The principal ID. This currently supports a IAM Identity Center UserId.+--+-- 'studioId', 'deleteLaunchProfileMember_studioId' - The studio ID.+newDeleteLaunchProfileMember ::+  -- | 'launchProfileId'+  Prelude.Text ->+  -- | 'principalId'+  Prelude.Text ->+  -- | 'studioId'+  Prelude.Text ->+  DeleteLaunchProfileMember+newDeleteLaunchProfileMember+  pLaunchProfileId_+  pPrincipalId_+  pStudioId_ =+    DeleteLaunchProfileMember'+      { clientToken =+          Prelude.Nothing,+        launchProfileId = pLaunchProfileId_,+        principalId = pPrincipalId_,+        studioId = pStudioId_+      }++-- | Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request. If you don’t specify a client token, the+-- Amazon Web Services SDK automatically generates a client token and uses+-- it for the request to ensure idempotency.+deleteLaunchProfileMember_clientToken :: Lens.Lens' DeleteLaunchProfileMember (Prelude.Maybe Prelude.Text)+deleteLaunchProfileMember_clientToken = Lens.lens (\DeleteLaunchProfileMember' {clientToken} -> clientToken) (\s@DeleteLaunchProfileMember' {} a -> s {clientToken = a} :: DeleteLaunchProfileMember)++-- | The ID of the launch profile used to control access from the streaming+-- session.+deleteLaunchProfileMember_launchProfileId :: Lens.Lens' DeleteLaunchProfileMember Prelude.Text+deleteLaunchProfileMember_launchProfileId = Lens.lens (\DeleteLaunchProfileMember' {launchProfileId} -> launchProfileId) (\s@DeleteLaunchProfileMember' {} a -> s {launchProfileId = a} :: DeleteLaunchProfileMember)++-- | The principal ID. This currently supports a IAM Identity Center UserId.+deleteLaunchProfileMember_principalId :: Lens.Lens' DeleteLaunchProfileMember Prelude.Text+deleteLaunchProfileMember_principalId = Lens.lens (\DeleteLaunchProfileMember' {principalId} -> principalId) (\s@DeleteLaunchProfileMember' {} a -> s {principalId = a} :: DeleteLaunchProfileMember)++-- | The studio ID.+deleteLaunchProfileMember_studioId :: Lens.Lens' DeleteLaunchProfileMember Prelude.Text+deleteLaunchProfileMember_studioId = Lens.lens (\DeleteLaunchProfileMember' {studioId} -> studioId) (\s@DeleteLaunchProfileMember' {} a -> s {studioId = a} :: DeleteLaunchProfileMember)++instance Core.AWSRequest DeleteLaunchProfileMember where+  type+    AWSResponse DeleteLaunchProfileMember =+      DeleteLaunchProfileMemberResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          DeleteLaunchProfileMemberResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeleteLaunchProfileMember where+  hashWithSalt _salt DeleteLaunchProfileMember' {..} =+    _salt+      `Prelude.hashWithSalt` clientToken+      `Prelude.hashWithSalt` launchProfileId+      `Prelude.hashWithSalt` principalId+      `Prelude.hashWithSalt` studioId++instance Prelude.NFData DeleteLaunchProfileMember where+  rnf DeleteLaunchProfileMember' {..} =+    Prelude.rnf clientToken+      `Prelude.seq` Prelude.rnf launchProfileId+      `Prelude.seq` Prelude.rnf principalId+      `Prelude.seq` Prelude.rnf studioId++instance Data.ToHeaders DeleteLaunchProfileMember where+  toHeaders DeleteLaunchProfileMember' {..} =+    Prelude.mconcat+      [ "X-Amz-Client-Token" Data.=# clientToken,+        "Content-Type"+          Data.=# ("application/x-amz-json-1.1" :: Prelude.ByteString)+      ]++instance Data.ToPath DeleteLaunchProfileMember where+  toPath DeleteLaunchProfileMember' {..} =+    Prelude.mconcat+      [ "/2020-08-01/studios/",+        Data.toBS studioId,+        "/launch-profiles/",+        Data.toBS launchProfileId,+        "/membership/",+        Data.toBS principalId+      ]++instance Data.ToQuery DeleteLaunchProfileMember where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteLaunchProfileMemberResponse' smart constructor.+data DeleteLaunchProfileMemberResponse = DeleteLaunchProfileMemberResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteLaunchProfileMemberResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deleteLaunchProfileMemberResponse_httpStatus' - The response's http status code.+newDeleteLaunchProfileMemberResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeleteLaunchProfileMemberResponse+newDeleteLaunchProfileMemberResponse pHttpStatus_ =+  DeleteLaunchProfileMemberResponse'+    { httpStatus =+        pHttpStatus_+    }++-- | The response's http status code.+deleteLaunchProfileMemberResponse_httpStatus :: Lens.Lens' DeleteLaunchProfileMemberResponse Prelude.Int+deleteLaunchProfileMemberResponse_httpStatus = Lens.lens (\DeleteLaunchProfileMemberResponse' {httpStatus} -> httpStatus) (\s@DeleteLaunchProfileMemberResponse' {} a -> s {httpStatus = a} :: DeleteLaunchProfileMemberResponse)++instance+  Prelude.NFData+    DeleteLaunchProfileMemberResponse+  where+  rnf DeleteLaunchProfileMemberResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/Nimble/DeleteStreamingImage.hs view
@@ -0,0 +1,200 @@+{-# 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.Nimble.DeleteStreamingImage+-- 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 streaming image.+module Amazonka.Nimble.DeleteStreamingImage+  ( -- * Creating a Request+    DeleteStreamingImage (..),+    newDeleteStreamingImage,++    -- * Request Lenses+    deleteStreamingImage_clientToken,+    deleteStreamingImage_streamingImageId,+    deleteStreamingImage_studioId,++    -- * Destructuring the Response+    DeleteStreamingImageResponse (..),+    newDeleteStreamingImageResponse,++    -- * Response Lenses+    deleteStreamingImageResponse_streamingImage,+    deleteStreamingImageResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Nimble.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteStreamingImage' smart constructor.+data DeleteStreamingImage = DeleteStreamingImage'+  { -- | Unique, case-sensitive identifier that you provide to ensure the+    -- idempotency of the request. If you don’t specify a client token, the+    -- Amazon Web Services SDK automatically generates a client token and uses+    -- it for the request to ensure idempotency.+    clientToken :: Prelude.Maybe Prelude.Text,+    -- | The streaming image ID.+    streamingImageId :: Prelude.Text,+    -- | The studio ID.+    studioId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteStreamingImage' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientToken', 'deleteStreamingImage_clientToken' - Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request. If you don’t specify a client token, the+-- Amazon Web Services SDK automatically generates a client token and uses+-- it for the request to ensure idempotency.+--+-- 'streamingImageId', 'deleteStreamingImage_streamingImageId' - The streaming image ID.+--+-- 'studioId', 'deleteStreamingImage_studioId' - The studio ID.+newDeleteStreamingImage ::+  -- | 'streamingImageId'+  Prelude.Text ->+  -- | 'studioId'+  Prelude.Text ->+  DeleteStreamingImage+newDeleteStreamingImage pStreamingImageId_ pStudioId_ =+  DeleteStreamingImage'+    { clientToken =+        Prelude.Nothing,+      streamingImageId = pStreamingImageId_,+      studioId = pStudioId_+    }++-- | Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request. If you don’t specify a client token, the+-- Amazon Web Services SDK automatically generates a client token and uses+-- it for the request to ensure idempotency.+deleteStreamingImage_clientToken :: Lens.Lens' DeleteStreamingImage (Prelude.Maybe Prelude.Text)+deleteStreamingImage_clientToken = Lens.lens (\DeleteStreamingImage' {clientToken} -> clientToken) (\s@DeleteStreamingImage' {} a -> s {clientToken = a} :: DeleteStreamingImage)++-- | The streaming image ID.+deleteStreamingImage_streamingImageId :: Lens.Lens' DeleteStreamingImage Prelude.Text+deleteStreamingImage_streamingImageId = Lens.lens (\DeleteStreamingImage' {streamingImageId} -> streamingImageId) (\s@DeleteStreamingImage' {} a -> s {streamingImageId = a} :: DeleteStreamingImage)++-- | The studio ID.+deleteStreamingImage_studioId :: Lens.Lens' DeleteStreamingImage Prelude.Text+deleteStreamingImage_studioId = Lens.lens (\DeleteStreamingImage' {studioId} -> studioId) (\s@DeleteStreamingImage' {} a -> s {studioId = a} :: DeleteStreamingImage)++instance Core.AWSRequest DeleteStreamingImage where+  type+    AWSResponse DeleteStreamingImage =+      DeleteStreamingImageResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DeleteStreamingImageResponse'+            Prelude.<$> (x Data..?> "streamingImage")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeleteStreamingImage where+  hashWithSalt _salt DeleteStreamingImage' {..} =+    _salt+      `Prelude.hashWithSalt` clientToken+      `Prelude.hashWithSalt` streamingImageId+      `Prelude.hashWithSalt` studioId++instance Prelude.NFData DeleteStreamingImage where+  rnf DeleteStreamingImage' {..} =+    Prelude.rnf clientToken+      `Prelude.seq` Prelude.rnf streamingImageId+      `Prelude.seq` Prelude.rnf studioId++instance Data.ToHeaders DeleteStreamingImage where+  toHeaders DeleteStreamingImage' {..} =+    Prelude.mconcat+      [ "X-Amz-Client-Token" Data.=# clientToken,+        "Content-Type"+          Data.=# ("application/x-amz-json-1.1" :: Prelude.ByteString)+      ]++instance Data.ToPath DeleteStreamingImage where+  toPath DeleteStreamingImage' {..} =+    Prelude.mconcat+      [ "/2020-08-01/studios/",+        Data.toBS studioId,+        "/streaming-images/",+        Data.toBS streamingImageId+      ]++instance Data.ToQuery DeleteStreamingImage where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteStreamingImageResponse' smart constructor.+data DeleteStreamingImageResponse = DeleteStreamingImageResponse'+  { -- | The streaming image.+    streamingImage :: Prelude.Maybe StreamingImage,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteStreamingImageResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'streamingImage', 'deleteStreamingImageResponse_streamingImage' - The streaming image.+--+-- 'httpStatus', 'deleteStreamingImageResponse_httpStatus' - The response's http status code.+newDeleteStreamingImageResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeleteStreamingImageResponse+newDeleteStreamingImageResponse pHttpStatus_ =+  DeleteStreamingImageResponse'+    { streamingImage =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The streaming image.+deleteStreamingImageResponse_streamingImage :: Lens.Lens' DeleteStreamingImageResponse (Prelude.Maybe StreamingImage)+deleteStreamingImageResponse_streamingImage = Lens.lens (\DeleteStreamingImageResponse' {streamingImage} -> streamingImage) (\s@DeleteStreamingImageResponse' {} a -> s {streamingImage = a} :: DeleteStreamingImageResponse)++-- | The response's http status code.+deleteStreamingImageResponse_httpStatus :: Lens.Lens' DeleteStreamingImageResponse Prelude.Int+deleteStreamingImageResponse_httpStatus = Lens.lens (\DeleteStreamingImageResponse' {httpStatus} -> httpStatus) (\s@DeleteStreamingImageResponse' {} a -> s {httpStatus = a} :: DeleteStreamingImageResponse)++instance Prelude.NFData DeleteStreamingImageResponse where+  rnf DeleteStreamingImageResponse' {..} =+    Prelude.rnf streamingImage+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Nimble/DeleteStreamingSession.hs view
@@ -0,0 +1,209 @@+{-# 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.Nimble.DeleteStreamingSession+-- 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 streaming session resource.+--+-- After invoking this operation, use GetStreamingSession to poll the+-- resource until it transitions to a @DELETED@ state.+--+-- A streaming session will count against your streaming session quota+-- until it is marked @DELETED@.+module Amazonka.Nimble.DeleteStreamingSession+  ( -- * Creating a Request+    DeleteStreamingSession (..),+    newDeleteStreamingSession,++    -- * Request Lenses+    deleteStreamingSession_clientToken,+    deleteStreamingSession_sessionId,+    deleteStreamingSession_studioId,++    -- * Destructuring the Response+    DeleteStreamingSessionResponse (..),+    newDeleteStreamingSessionResponse,++    -- * Response Lenses+    deleteStreamingSessionResponse_session,+    deleteStreamingSessionResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Nimble.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteStreamingSession' smart constructor.+data DeleteStreamingSession = DeleteStreamingSession'+  { -- | Unique, case-sensitive identifier that you provide to ensure the+    -- idempotency of the request. If you don’t specify a client token, the+    -- Amazon Web Services SDK automatically generates a client token and uses+    -- it for the request to ensure idempotency.+    clientToken :: Prelude.Maybe Prelude.Text,+    -- | The streaming session ID.+    sessionId :: Prelude.Text,+    -- | The studio ID.+    studioId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteStreamingSession' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientToken', 'deleteStreamingSession_clientToken' - Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request. If you don’t specify a client token, the+-- Amazon Web Services SDK automatically generates a client token and uses+-- it for the request to ensure idempotency.+--+-- 'sessionId', 'deleteStreamingSession_sessionId' - The streaming session ID.+--+-- 'studioId', 'deleteStreamingSession_studioId' - The studio ID.+newDeleteStreamingSession ::+  -- | 'sessionId'+  Prelude.Text ->+  -- | 'studioId'+  Prelude.Text ->+  DeleteStreamingSession+newDeleteStreamingSession pSessionId_ pStudioId_ =+  DeleteStreamingSession'+    { clientToken =+        Prelude.Nothing,+      sessionId = pSessionId_,+      studioId = pStudioId_+    }++-- | Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request. If you don’t specify a client token, the+-- Amazon Web Services SDK automatically generates a client token and uses+-- it for the request to ensure idempotency.+deleteStreamingSession_clientToken :: Lens.Lens' DeleteStreamingSession (Prelude.Maybe Prelude.Text)+deleteStreamingSession_clientToken = Lens.lens (\DeleteStreamingSession' {clientToken} -> clientToken) (\s@DeleteStreamingSession' {} a -> s {clientToken = a} :: DeleteStreamingSession)++-- | The streaming session ID.+deleteStreamingSession_sessionId :: Lens.Lens' DeleteStreamingSession Prelude.Text+deleteStreamingSession_sessionId = Lens.lens (\DeleteStreamingSession' {sessionId} -> sessionId) (\s@DeleteStreamingSession' {} a -> s {sessionId = a} :: DeleteStreamingSession)++-- | The studio ID.+deleteStreamingSession_studioId :: Lens.Lens' DeleteStreamingSession Prelude.Text+deleteStreamingSession_studioId = Lens.lens (\DeleteStreamingSession' {studioId} -> studioId) (\s@DeleteStreamingSession' {} a -> s {studioId = a} :: DeleteStreamingSession)++instance Core.AWSRequest DeleteStreamingSession where+  type+    AWSResponse DeleteStreamingSession =+      DeleteStreamingSessionResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DeleteStreamingSessionResponse'+            Prelude.<$> (x Data..?> "session")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeleteStreamingSession where+  hashWithSalt _salt DeleteStreamingSession' {..} =+    _salt+      `Prelude.hashWithSalt` clientToken+      `Prelude.hashWithSalt` sessionId+      `Prelude.hashWithSalt` studioId++instance Prelude.NFData DeleteStreamingSession where+  rnf DeleteStreamingSession' {..} =+    Prelude.rnf clientToken+      `Prelude.seq` Prelude.rnf sessionId+      `Prelude.seq` Prelude.rnf studioId++instance Data.ToHeaders DeleteStreamingSession where+  toHeaders DeleteStreamingSession' {..} =+    Prelude.mconcat+      [ "X-Amz-Client-Token" Data.=# clientToken,+        "Content-Type"+          Data.=# ("application/x-amz-json-1.1" :: Prelude.ByteString)+      ]++instance Data.ToPath DeleteStreamingSession where+  toPath DeleteStreamingSession' {..} =+    Prelude.mconcat+      [ "/2020-08-01/studios/",+        Data.toBS studioId,+        "/streaming-sessions/",+        Data.toBS sessionId+      ]++instance Data.ToQuery DeleteStreamingSession where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteStreamingSessionResponse' smart constructor.+data DeleteStreamingSessionResponse = DeleteStreamingSessionResponse'+  { -- | The session.+    session :: Prelude.Maybe StreamingSession,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteStreamingSessionResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'session', 'deleteStreamingSessionResponse_session' - The session.+--+-- 'httpStatus', 'deleteStreamingSessionResponse_httpStatus' - The response's http status code.+newDeleteStreamingSessionResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeleteStreamingSessionResponse+newDeleteStreamingSessionResponse pHttpStatus_ =+  DeleteStreamingSessionResponse'+    { session =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The session.+deleteStreamingSessionResponse_session :: Lens.Lens' DeleteStreamingSessionResponse (Prelude.Maybe StreamingSession)+deleteStreamingSessionResponse_session = Lens.lens (\DeleteStreamingSessionResponse' {session} -> session) (\s@DeleteStreamingSessionResponse' {} a -> s {session = a} :: DeleteStreamingSessionResponse)++-- | The response's http status code.+deleteStreamingSessionResponse_httpStatus :: Lens.Lens' DeleteStreamingSessionResponse Prelude.Int+deleteStreamingSessionResponse_httpStatus = Lens.lens (\DeleteStreamingSessionResponse' {httpStatus} -> httpStatus) (\s@DeleteStreamingSessionResponse' {} a -> s {httpStatus = a} :: DeleteStreamingSessionResponse)++instance+  Prelude.NFData+    DeleteStreamingSessionResponse+  where+  rnf DeleteStreamingSessionResponse' {..} =+    Prelude.rnf session+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Nimble/DeleteStudio.hs view
@@ -0,0 +1,180 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Nimble.DeleteStudio+-- 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 a studio resource.+module Amazonka.Nimble.DeleteStudio+  ( -- * Creating a Request+    DeleteStudio (..),+    newDeleteStudio,++    -- * Request Lenses+    deleteStudio_clientToken,+    deleteStudio_studioId,++    -- * Destructuring the Response+    DeleteStudioResponse (..),+    newDeleteStudioResponse,++    -- * Response Lenses+    deleteStudioResponse_httpStatus,+    deleteStudioResponse_studio,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Nimble.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteStudio' smart constructor.+data DeleteStudio = DeleteStudio'+  { -- | Unique, case-sensitive identifier that you provide to ensure the+    -- idempotency of the request. If you don’t specify a client token, the+    -- Amazon Web Services SDK automatically generates a client token and uses+    -- it for the request to ensure idempotency.+    clientToken :: Prelude.Maybe Prelude.Text,+    -- | The studio ID.+    studioId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteStudio' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientToken', 'deleteStudio_clientToken' - Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request. If you don’t specify a client token, the+-- Amazon Web Services SDK automatically generates a client token and uses+-- it for the request to ensure idempotency.+--+-- 'studioId', 'deleteStudio_studioId' - The studio ID.+newDeleteStudio ::+  -- | 'studioId'+  Prelude.Text ->+  DeleteStudio+newDeleteStudio pStudioId_ =+  DeleteStudio'+    { clientToken = Prelude.Nothing,+      studioId = pStudioId_+    }++-- | Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request. If you don’t specify a client token, the+-- Amazon Web Services SDK automatically generates a client token and uses+-- it for the request to ensure idempotency.+deleteStudio_clientToken :: Lens.Lens' DeleteStudio (Prelude.Maybe Prelude.Text)+deleteStudio_clientToken = Lens.lens (\DeleteStudio' {clientToken} -> clientToken) (\s@DeleteStudio' {} a -> s {clientToken = a} :: DeleteStudio)++-- | The studio ID.+deleteStudio_studioId :: Lens.Lens' DeleteStudio Prelude.Text+deleteStudio_studioId = Lens.lens (\DeleteStudio' {studioId} -> studioId) (\s@DeleteStudio' {} a -> s {studioId = a} :: DeleteStudio)++instance Core.AWSRequest DeleteStudio where+  type AWSResponse DeleteStudio = DeleteStudioResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DeleteStudioResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "studio")+      )++instance Prelude.Hashable DeleteStudio where+  hashWithSalt _salt DeleteStudio' {..} =+    _salt+      `Prelude.hashWithSalt` clientToken+      `Prelude.hashWithSalt` studioId++instance Prelude.NFData DeleteStudio where+  rnf DeleteStudio' {..} =+    Prelude.rnf clientToken+      `Prelude.seq` Prelude.rnf studioId++instance Data.ToHeaders DeleteStudio where+  toHeaders DeleteStudio' {..} =+    Prelude.mconcat+      [ "X-Amz-Client-Token" Data.=# clientToken,+        "Content-Type"+          Data.=# ("application/x-amz-json-1.1" :: Prelude.ByteString)+      ]++instance Data.ToPath DeleteStudio where+  toPath DeleteStudio' {..} =+    Prelude.mconcat+      ["/2020-08-01/studios/", Data.toBS studioId]++instance Data.ToQuery DeleteStudio where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteStudioResponse' smart constructor.+data DeleteStudioResponse = DeleteStudioResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | Information about a studio.+    studio :: Studio+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteStudioResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deleteStudioResponse_httpStatus' - The response's http status code.+--+-- 'studio', 'deleteStudioResponse_studio' - Information about a studio.+newDeleteStudioResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'studio'+  Studio ->+  DeleteStudioResponse+newDeleteStudioResponse pHttpStatus_ pStudio_ =+  DeleteStudioResponse'+    { httpStatus = pHttpStatus_,+      studio = pStudio_+    }++-- | The response's http status code.+deleteStudioResponse_httpStatus :: Lens.Lens' DeleteStudioResponse Prelude.Int+deleteStudioResponse_httpStatus = Lens.lens (\DeleteStudioResponse' {httpStatus} -> httpStatus) (\s@DeleteStudioResponse' {} a -> s {httpStatus = a} :: DeleteStudioResponse)++-- | Information about a studio.+deleteStudioResponse_studio :: Lens.Lens' DeleteStudioResponse Studio+deleteStudioResponse_studio = Lens.lens (\DeleteStudioResponse' {studio} -> studio) (\s@DeleteStudioResponse' {} a -> s {studio = a} :: DeleteStudioResponse)++instance Prelude.NFData DeleteStudioResponse where+  rnf DeleteStudioResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf studio
+ gen/Amazonka/Nimble/DeleteStudioComponent.hs view
@@ -0,0 +1,202 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Nimble.DeleteStudioComponent+-- 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 studio component resource.+module Amazonka.Nimble.DeleteStudioComponent+  ( -- * Creating a Request+    DeleteStudioComponent (..),+    newDeleteStudioComponent,++    -- * Request Lenses+    deleteStudioComponent_clientToken,+    deleteStudioComponent_studioComponentId,+    deleteStudioComponent_studioId,++    -- * Destructuring the Response+    DeleteStudioComponentResponse (..),+    newDeleteStudioComponentResponse,++    -- * Response Lenses+    deleteStudioComponentResponse_studioComponent,+    deleteStudioComponentResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Nimble.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteStudioComponent' smart constructor.+data DeleteStudioComponent = DeleteStudioComponent'+  { -- | Unique, case-sensitive identifier that you provide to ensure the+    -- idempotency of the request. If you don’t specify a client token, the+    -- Amazon Web Services SDK automatically generates a client token and uses+    -- it for the request to ensure idempotency.+    clientToken :: Prelude.Maybe Prelude.Text,+    -- | The studio component ID.+    studioComponentId :: Prelude.Text,+    -- | The studio ID.+    studioId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteStudioComponent' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientToken', 'deleteStudioComponent_clientToken' - Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request. If you don’t specify a client token, the+-- Amazon Web Services SDK automatically generates a client token and uses+-- it for the request to ensure idempotency.+--+-- 'studioComponentId', 'deleteStudioComponent_studioComponentId' - The studio component ID.+--+-- 'studioId', 'deleteStudioComponent_studioId' - The studio ID.+newDeleteStudioComponent ::+  -- | 'studioComponentId'+  Prelude.Text ->+  -- | 'studioId'+  Prelude.Text ->+  DeleteStudioComponent+newDeleteStudioComponent+  pStudioComponentId_+  pStudioId_ =+    DeleteStudioComponent'+      { clientToken =+          Prelude.Nothing,+        studioComponentId = pStudioComponentId_,+        studioId = pStudioId_+      }++-- | Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request. If you don’t specify a client token, the+-- Amazon Web Services SDK automatically generates a client token and uses+-- it for the request to ensure idempotency.+deleteStudioComponent_clientToken :: Lens.Lens' DeleteStudioComponent (Prelude.Maybe Prelude.Text)+deleteStudioComponent_clientToken = Lens.lens (\DeleteStudioComponent' {clientToken} -> clientToken) (\s@DeleteStudioComponent' {} a -> s {clientToken = a} :: DeleteStudioComponent)++-- | The studio component ID.+deleteStudioComponent_studioComponentId :: Lens.Lens' DeleteStudioComponent Prelude.Text+deleteStudioComponent_studioComponentId = Lens.lens (\DeleteStudioComponent' {studioComponentId} -> studioComponentId) (\s@DeleteStudioComponent' {} a -> s {studioComponentId = a} :: DeleteStudioComponent)++-- | The studio ID.+deleteStudioComponent_studioId :: Lens.Lens' DeleteStudioComponent Prelude.Text+deleteStudioComponent_studioId = Lens.lens (\DeleteStudioComponent' {studioId} -> studioId) (\s@DeleteStudioComponent' {} a -> s {studioId = a} :: DeleteStudioComponent)++instance Core.AWSRequest DeleteStudioComponent where+  type+    AWSResponse DeleteStudioComponent =+      DeleteStudioComponentResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DeleteStudioComponentResponse'+            Prelude.<$> (x Data..?> "studioComponent")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeleteStudioComponent where+  hashWithSalt _salt DeleteStudioComponent' {..} =+    _salt+      `Prelude.hashWithSalt` clientToken+      `Prelude.hashWithSalt` studioComponentId+      `Prelude.hashWithSalt` studioId++instance Prelude.NFData DeleteStudioComponent where+  rnf DeleteStudioComponent' {..} =+    Prelude.rnf clientToken+      `Prelude.seq` Prelude.rnf studioComponentId+      `Prelude.seq` Prelude.rnf studioId++instance Data.ToHeaders DeleteStudioComponent where+  toHeaders DeleteStudioComponent' {..} =+    Prelude.mconcat+      [ "X-Amz-Client-Token" Data.=# clientToken,+        "Content-Type"+          Data.=# ("application/x-amz-json-1.1" :: Prelude.ByteString)+      ]++instance Data.ToPath DeleteStudioComponent where+  toPath DeleteStudioComponent' {..} =+    Prelude.mconcat+      [ "/2020-08-01/studios/",+        Data.toBS studioId,+        "/studio-components/",+        Data.toBS studioComponentId+      ]++instance Data.ToQuery DeleteStudioComponent where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteStudioComponentResponse' smart constructor.+data DeleteStudioComponentResponse = DeleteStudioComponentResponse'+  { -- | Information about the studio component.+    studioComponent :: Prelude.Maybe StudioComponent,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteStudioComponentResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'studioComponent', 'deleteStudioComponentResponse_studioComponent' - Information about the studio component.+--+-- 'httpStatus', 'deleteStudioComponentResponse_httpStatus' - The response's http status code.+newDeleteStudioComponentResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeleteStudioComponentResponse+newDeleteStudioComponentResponse pHttpStatus_ =+  DeleteStudioComponentResponse'+    { studioComponent =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Information about the studio component.+deleteStudioComponentResponse_studioComponent :: Lens.Lens' DeleteStudioComponentResponse (Prelude.Maybe StudioComponent)+deleteStudioComponentResponse_studioComponent = Lens.lens (\DeleteStudioComponentResponse' {studioComponent} -> studioComponent) (\s@DeleteStudioComponentResponse' {} a -> s {studioComponent = a} :: DeleteStudioComponentResponse)++-- | The response's http status code.+deleteStudioComponentResponse_httpStatus :: Lens.Lens' DeleteStudioComponentResponse Prelude.Int+deleteStudioComponentResponse_httpStatus = Lens.lens (\DeleteStudioComponentResponse' {httpStatus} -> httpStatus) (\s@DeleteStudioComponentResponse' {} a -> s {httpStatus = a} :: DeleteStudioComponentResponse)++instance Prelude.NFData DeleteStudioComponentResponse where+  rnf DeleteStudioComponentResponse' {..} =+    Prelude.rnf studioComponent+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Nimble/DeleteStudioMember.hs view
@@ -0,0 +1,187 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Nimble.DeleteStudioMember+-- 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 a user from studio membership.+module Amazonka.Nimble.DeleteStudioMember+  ( -- * Creating a Request+    DeleteStudioMember (..),+    newDeleteStudioMember,++    -- * Request Lenses+    deleteStudioMember_clientToken,+    deleteStudioMember_principalId,+    deleteStudioMember_studioId,++    -- * Destructuring the Response+    DeleteStudioMemberResponse (..),+    newDeleteStudioMemberResponse,++    -- * Response Lenses+    deleteStudioMemberResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Nimble.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteStudioMember' smart constructor.+data DeleteStudioMember = DeleteStudioMember'+  { -- | Unique, case-sensitive identifier that you provide to ensure the+    -- idempotency of the request. If you don’t specify a client token, the+    -- Amazon Web Services SDK automatically generates a client token and uses+    -- it for the request to ensure idempotency.+    clientToken :: Prelude.Maybe Prelude.Text,+    -- | The principal ID. This currently supports a IAM Identity Center UserId.+    principalId :: Prelude.Text,+    -- | The studio ID.+    studioId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteStudioMember' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientToken', 'deleteStudioMember_clientToken' - Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request. If you don’t specify a client token, the+-- Amazon Web Services SDK automatically generates a client token and uses+-- it for the request to ensure idempotency.+--+-- 'principalId', 'deleteStudioMember_principalId' - The principal ID. This currently supports a IAM Identity Center UserId.+--+-- 'studioId', 'deleteStudioMember_studioId' - The studio ID.+newDeleteStudioMember ::+  -- | 'principalId'+  Prelude.Text ->+  -- | 'studioId'+  Prelude.Text ->+  DeleteStudioMember+newDeleteStudioMember pPrincipalId_ pStudioId_ =+  DeleteStudioMember'+    { clientToken = Prelude.Nothing,+      principalId = pPrincipalId_,+      studioId = pStudioId_+    }++-- | Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request. If you don’t specify a client token, the+-- Amazon Web Services SDK automatically generates a client token and uses+-- it for the request to ensure idempotency.+deleteStudioMember_clientToken :: Lens.Lens' DeleteStudioMember (Prelude.Maybe Prelude.Text)+deleteStudioMember_clientToken = Lens.lens (\DeleteStudioMember' {clientToken} -> clientToken) (\s@DeleteStudioMember' {} a -> s {clientToken = a} :: DeleteStudioMember)++-- | The principal ID. This currently supports a IAM Identity Center UserId.+deleteStudioMember_principalId :: Lens.Lens' DeleteStudioMember Prelude.Text+deleteStudioMember_principalId = Lens.lens (\DeleteStudioMember' {principalId} -> principalId) (\s@DeleteStudioMember' {} a -> s {principalId = a} :: DeleteStudioMember)++-- | The studio ID.+deleteStudioMember_studioId :: Lens.Lens' DeleteStudioMember Prelude.Text+deleteStudioMember_studioId = Lens.lens (\DeleteStudioMember' {studioId} -> studioId) (\s@DeleteStudioMember' {} a -> s {studioId = a} :: DeleteStudioMember)++instance Core.AWSRequest DeleteStudioMember where+  type+    AWSResponse DeleteStudioMember =+      DeleteStudioMemberResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          DeleteStudioMemberResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeleteStudioMember where+  hashWithSalt _salt DeleteStudioMember' {..} =+    _salt+      `Prelude.hashWithSalt` clientToken+      `Prelude.hashWithSalt` principalId+      `Prelude.hashWithSalt` studioId++instance Prelude.NFData DeleteStudioMember where+  rnf DeleteStudioMember' {..} =+    Prelude.rnf clientToken+      `Prelude.seq` Prelude.rnf principalId+      `Prelude.seq` Prelude.rnf studioId++instance Data.ToHeaders DeleteStudioMember where+  toHeaders DeleteStudioMember' {..} =+    Prelude.mconcat+      [ "X-Amz-Client-Token" Data.=# clientToken,+        "Content-Type"+          Data.=# ("application/x-amz-json-1.1" :: Prelude.ByteString)+      ]++instance Data.ToPath DeleteStudioMember where+  toPath DeleteStudioMember' {..} =+    Prelude.mconcat+      [ "/2020-08-01/studios/",+        Data.toBS studioId,+        "/membership/",+        Data.toBS principalId+      ]++instance Data.ToQuery DeleteStudioMember where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteStudioMemberResponse' smart constructor.+data DeleteStudioMemberResponse = DeleteStudioMemberResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteStudioMemberResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deleteStudioMemberResponse_httpStatus' - The response's http status code.+newDeleteStudioMemberResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeleteStudioMemberResponse+newDeleteStudioMemberResponse pHttpStatus_ =+  DeleteStudioMemberResponse'+    { httpStatus =+        pHttpStatus_+    }++-- | The response's http status code.+deleteStudioMemberResponse_httpStatus :: Lens.Lens' DeleteStudioMemberResponse Prelude.Int+deleteStudioMemberResponse_httpStatus = Lens.lens (\DeleteStudioMemberResponse' {httpStatus} -> httpStatus) (\s@DeleteStudioMemberResponse' {} a -> s {httpStatus = a} :: DeleteStudioMemberResponse)++instance Prelude.NFData DeleteStudioMemberResponse where+  rnf DeleteStudioMemberResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/Nimble/GetEula.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.Nimble.GetEula+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Get EULA.+module Amazonka.Nimble.GetEula+  ( -- * Creating a Request+    GetEula (..),+    newGetEula,++    -- * Request Lenses+    getEula_eulaId,++    -- * Destructuring the Response+    GetEulaResponse (..),+    newGetEulaResponse,++    -- * Response Lenses+    getEulaResponse_eula,+    getEulaResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Nimble.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetEula' smart constructor.+data GetEula = GetEula'+  { -- | The EULA ID.+    eulaId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetEula' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'eulaId', 'getEula_eulaId' - The EULA ID.+newGetEula ::+  -- | 'eulaId'+  Prelude.Text ->+  GetEula+newGetEula pEulaId_ = GetEula' {eulaId = pEulaId_}++-- | The EULA ID.+getEula_eulaId :: Lens.Lens' GetEula Prelude.Text+getEula_eulaId = Lens.lens (\GetEula' {eulaId} -> eulaId) (\s@GetEula' {} a -> s {eulaId = a} :: GetEula)++instance Core.AWSRequest GetEula where+  type AWSResponse GetEula = GetEulaResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetEulaResponse'+            Prelude.<$> (x Data..?> "eula")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetEula where+  hashWithSalt _salt GetEula' {..} =+    _salt `Prelude.hashWithSalt` eulaId++instance Prelude.NFData GetEula where+  rnf GetEula' {..} = Prelude.rnf eulaId++instance Data.ToHeaders GetEula where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath GetEula where+  toPath GetEula' {..} =+    Prelude.mconcat+      ["/2020-08-01/eulas/", Data.toBS eulaId]++instance Data.ToQuery GetEula where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetEulaResponse' smart constructor.+data GetEulaResponse = GetEulaResponse'+  { -- | The EULA.+    eula :: Prelude.Maybe Eula,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetEulaResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'eula', 'getEulaResponse_eula' - The EULA.+--+-- 'httpStatus', 'getEulaResponse_httpStatus' - The response's http status code.+newGetEulaResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetEulaResponse+newGetEulaResponse pHttpStatus_ =+  GetEulaResponse'+    { eula = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The EULA.+getEulaResponse_eula :: Lens.Lens' GetEulaResponse (Prelude.Maybe Eula)+getEulaResponse_eula = Lens.lens (\GetEulaResponse' {eula} -> eula) (\s@GetEulaResponse' {} a -> s {eula = a} :: GetEulaResponse)++-- | The response's http status code.+getEulaResponse_httpStatus :: Lens.Lens' GetEulaResponse Prelude.Int+getEulaResponse_httpStatus = Lens.lens (\GetEulaResponse' {httpStatus} -> httpStatus) (\s@GetEulaResponse' {} a -> s {httpStatus = a} :: GetEulaResponse)++instance Prelude.NFData GetEulaResponse where+  rnf GetEulaResponse' {..} =+    Prelude.rnf eula+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Nimble/GetLaunchProfile.hs view
@@ -0,0 +1,185 @@+{-# 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.Nimble.GetLaunchProfile+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Get a launch profile.+module Amazonka.Nimble.GetLaunchProfile+  ( -- * Creating a Request+    GetLaunchProfile (..),+    newGetLaunchProfile,++    -- * Request Lenses+    getLaunchProfile_launchProfileId,+    getLaunchProfile_studioId,++    -- * Destructuring the Response+    GetLaunchProfileResponse (..),+    newGetLaunchProfileResponse,++    -- * Response Lenses+    getLaunchProfileResponse_launchProfile,+    getLaunchProfileResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Nimble.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetLaunchProfile' smart constructor.+data GetLaunchProfile = GetLaunchProfile'+  { -- | The ID of the launch profile used to control access from the streaming+    -- session.+    launchProfileId :: Prelude.Text,+    -- | The studio ID.+    studioId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetLaunchProfile' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'launchProfileId', 'getLaunchProfile_launchProfileId' - The ID of the launch profile used to control access from the streaming+-- session.+--+-- 'studioId', 'getLaunchProfile_studioId' - The studio ID.+newGetLaunchProfile ::+  -- | 'launchProfileId'+  Prelude.Text ->+  -- | 'studioId'+  Prelude.Text ->+  GetLaunchProfile+newGetLaunchProfile pLaunchProfileId_ pStudioId_ =+  GetLaunchProfile'+    { launchProfileId =+        pLaunchProfileId_,+      studioId = pStudioId_+    }++-- | The ID of the launch profile used to control access from the streaming+-- session.+getLaunchProfile_launchProfileId :: Lens.Lens' GetLaunchProfile Prelude.Text+getLaunchProfile_launchProfileId = Lens.lens (\GetLaunchProfile' {launchProfileId} -> launchProfileId) (\s@GetLaunchProfile' {} a -> s {launchProfileId = a} :: GetLaunchProfile)++-- | The studio ID.+getLaunchProfile_studioId :: Lens.Lens' GetLaunchProfile Prelude.Text+getLaunchProfile_studioId = Lens.lens (\GetLaunchProfile' {studioId} -> studioId) (\s@GetLaunchProfile' {} a -> s {studioId = a} :: GetLaunchProfile)++instance Core.AWSRequest GetLaunchProfile where+  type+    AWSResponse GetLaunchProfile =+      GetLaunchProfileResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetLaunchProfileResponse'+            Prelude.<$> (x Data..?> "launchProfile")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetLaunchProfile where+  hashWithSalt _salt GetLaunchProfile' {..} =+    _salt+      `Prelude.hashWithSalt` launchProfileId+      `Prelude.hashWithSalt` studioId++instance Prelude.NFData GetLaunchProfile where+  rnf GetLaunchProfile' {..} =+    Prelude.rnf launchProfileId+      `Prelude.seq` Prelude.rnf studioId++instance Data.ToHeaders GetLaunchProfile where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath GetLaunchProfile where+  toPath GetLaunchProfile' {..} =+    Prelude.mconcat+      [ "/2020-08-01/studios/",+        Data.toBS studioId,+        "/launch-profiles/",+        Data.toBS launchProfileId+      ]++instance Data.ToQuery GetLaunchProfile where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetLaunchProfileResponse' smart constructor.+data GetLaunchProfileResponse = GetLaunchProfileResponse'+  { -- | The launch profile.+    launchProfile :: Prelude.Maybe LaunchProfile,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetLaunchProfileResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'launchProfile', 'getLaunchProfileResponse_launchProfile' - The launch profile.+--+-- 'httpStatus', 'getLaunchProfileResponse_httpStatus' - The response's http status code.+newGetLaunchProfileResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetLaunchProfileResponse+newGetLaunchProfileResponse pHttpStatus_ =+  GetLaunchProfileResponse'+    { launchProfile =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The launch profile.+getLaunchProfileResponse_launchProfile :: Lens.Lens' GetLaunchProfileResponse (Prelude.Maybe LaunchProfile)+getLaunchProfileResponse_launchProfile = Lens.lens (\GetLaunchProfileResponse' {launchProfile} -> launchProfile) (\s@GetLaunchProfileResponse' {} a -> s {launchProfile = a} :: GetLaunchProfileResponse)++-- | The response's http status code.+getLaunchProfileResponse_httpStatus :: Lens.Lens' GetLaunchProfileResponse Prelude.Int+getLaunchProfileResponse_httpStatus = Lens.lens (\GetLaunchProfileResponse' {httpStatus} -> httpStatus) (\s@GetLaunchProfileResponse' {} a -> s {httpStatus = a} :: GetLaunchProfileResponse)++instance Prelude.NFData GetLaunchProfileResponse where+  rnf GetLaunchProfileResponse' {..} =+    Prelude.rnf launchProfile+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Nimble/GetLaunchProfileDetails.hs view
@@ -0,0 +1,225 @@+{-# 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.Nimble.GetLaunchProfileDetails+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Launch profile details include the launch profile resource and summary+-- information of resources that are used by, or available to, the launch+-- profile. This includes the name and description of all studio components+-- used by the launch profiles, and the name and description of streaming+-- images that can be used with this launch profile.+module Amazonka.Nimble.GetLaunchProfileDetails+  ( -- * Creating a Request+    GetLaunchProfileDetails (..),+    newGetLaunchProfileDetails,++    -- * Request Lenses+    getLaunchProfileDetails_launchProfileId,+    getLaunchProfileDetails_studioId,++    -- * Destructuring the Response+    GetLaunchProfileDetailsResponse (..),+    newGetLaunchProfileDetailsResponse,++    -- * Response Lenses+    getLaunchProfileDetailsResponse_launchProfile,+    getLaunchProfileDetailsResponse_streamingImages,+    getLaunchProfileDetailsResponse_studioComponentSummaries,+    getLaunchProfileDetailsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Nimble.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetLaunchProfileDetails' smart constructor.+data GetLaunchProfileDetails = GetLaunchProfileDetails'+  { -- | The ID of the launch profile used to control access from the streaming+    -- session.+    launchProfileId :: Prelude.Text,+    -- | The studio ID.+    studioId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetLaunchProfileDetails' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'launchProfileId', 'getLaunchProfileDetails_launchProfileId' - The ID of the launch profile used to control access from the streaming+-- session.+--+-- 'studioId', 'getLaunchProfileDetails_studioId' - The studio ID.+newGetLaunchProfileDetails ::+  -- | 'launchProfileId'+  Prelude.Text ->+  -- | 'studioId'+  Prelude.Text ->+  GetLaunchProfileDetails+newGetLaunchProfileDetails+  pLaunchProfileId_+  pStudioId_ =+    GetLaunchProfileDetails'+      { launchProfileId =+          pLaunchProfileId_,+        studioId = pStudioId_+      }++-- | The ID of the launch profile used to control access from the streaming+-- session.+getLaunchProfileDetails_launchProfileId :: Lens.Lens' GetLaunchProfileDetails Prelude.Text+getLaunchProfileDetails_launchProfileId = Lens.lens (\GetLaunchProfileDetails' {launchProfileId} -> launchProfileId) (\s@GetLaunchProfileDetails' {} a -> s {launchProfileId = a} :: GetLaunchProfileDetails)++-- | The studio ID.+getLaunchProfileDetails_studioId :: Lens.Lens' GetLaunchProfileDetails Prelude.Text+getLaunchProfileDetails_studioId = Lens.lens (\GetLaunchProfileDetails' {studioId} -> studioId) (\s@GetLaunchProfileDetails' {} a -> s {studioId = a} :: GetLaunchProfileDetails)++instance Core.AWSRequest GetLaunchProfileDetails where+  type+    AWSResponse GetLaunchProfileDetails =+      GetLaunchProfileDetailsResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetLaunchProfileDetailsResponse'+            Prelude.<$> (x Data..?> "launchProfile")+            Prelude.<*> ( x+                            Data..?> "streamingImages"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> ( x+                            Data..?> "studioComponentSummaries"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetLaunchProfileDetails where+  hashWithSalt _salt GetLaunchProfileDetails' {..} =+    _salt+      `Prelude.hashWithSalt` launchProfileId+      `Prelude.hashWithSalt` studioId++instance Prelude.NFData GetLaunchProfileDetails where+  rnf GetLaunchProfileDetails' {..} =+    Prelude.rnf launchProfileId+      `Prelude.seq` Prelude.rnf studioId++instance Data.ToHeaders GetLaunchProfileDetails where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath GetLaunchProfileDetails where+  toPath GetLaunchProfileDetails' {..} =+    Prelude.mconcat+      [ "/2020-08-01/studios/",+        Data.toBS studioId,+        "/launch-profiles/",+        Data.toBS launchProfileId,+        "/details"+      ]++instance Data.ToQuery GetLaunchProfileDetails where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetLaunchProfileDetailsResponse' smart constructor.+data GetLaunchProfileDetailsResponse = GetLaunchProfileDetailsResponse'+  { -- | The launch profile.+    launchProfile :: Prelude.Maybe LaunchProfile,+    -- | A collection of streaming images.+    streamingImages :: Prelude.Maybe [StreamingImage],+    -- | A collection of studio component summaries.+    studioComponentSummaries :: Prelude.Maybe [StudioComponentSummary],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetLaunchProfileDetailsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'launchProfile', 'getLaunchProfileDetailsResponse_launchProfile' - The launch profile.+--+-- 'streamingImages', 'getLaunchProfileDetailsResponse_streamingImages' - A collection of streaming images.+--+-- 'studioComponentSummaries', 'getLaunchProfileDetailsResponse_studioComponentSummaries' - A collection of studio component summaries.+--+-- 'httpStatus', 'getLaunchProfileDetailsResponse_httpStatus' - The response's http status code.+newGetLaunchProfileDetailsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetLaunchProfileDetailsResponse+newGetLaunchProfileDetailsResponse pHttpStatus_ =+  GetLaunchProfileDetailsResponse'+    { launchProfile =+        Prelude.Nothing,+      streamingImages = Prelude.Nothing,+      studioComponentSummaries = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The launch profile.+getLaunchProfileDetailsResponse_launchProfile :: Lens.Lens' GetLaunchProfileDetailsResponse (Prelude.Maybe LaunchProfile)+getLaunchProfileDetailsResponse_launchProfile = Lens.lens (\GetLaunchProfileDetailsResponse' {launchProfile} -> launchProfile) (\s@GetLaunchProfileDetailsResponse' {} a -> s {launchProfile = a} :: GetLaunchProfileDetailsResponse)++-- | A collection of streaming images.+getLaunchProfileDetailsResponse_streamingImages :: Lens.Lens' GetLaunchProfileDetailsResponse (Prelude.Maybe [StreamingImage])+getLaunchProfileDetailsResponse_streamingImages = Lens.lens (\GetLaunchProfileDetailsResponse' {streamingImages} -> streamingImages) (\s@GetLaunchProfileDetailsResponse' {} a -> s {streamingImages = a} :: GetLaunchProfileDetailsResponse) Prelude.. Lens.mapping Lens.coerced++-- | A collection of studio component summaries.+getLaunchProfileDetailsResponse_studioComponentSummaries :: Lens.Lens' GetLaunchProfileDetailsResponse (Prelude.Maybe [StudioComponentSummary])+getLaunchProfileDetailsResponse_studioComponentSummaries = Lens.lens (\GetLaunchProfileDetailsResponse' {studioComponentSummaries} -> studioComponentSummaries) (\s@GetLaunchProfileDetailsResponse' {} a -> s {studioComponentSummaries = a} :: GetLaunchProfileDetailsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+getLaunchProfileDetailsResponse_httpStatus :: Lens.Lens' GetLaunchProfileDetailsResponse Prelude.Int+getLaunchProfileDetailsResponse_httpStatus = Lens.lens (\GetLaunchProfileDetailsResponse' {httpStatus} -> httpStatus) (\s@GetLaunchProfileDetailsResponse' {} a -> s {httpStatus = a} :: GetLaunchProfileDetailsResponse)++instance+  Prelude.NFData+    GetLaunchProfileDetailsResponse+  where+  rnf GetLaunchProfileDetailsResponse' {..} =+    Prelude.rnf launchProfile+      `Prelude.seq` Prelude.rnf streamingImages+      `Prelude.seq` Prelude.rnf studioComponentSummaries+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Nimble/GetLaunchProfileInitialization.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.Nimble.GetLaunchProfileInitialization+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Get a launch profile initialization.+module Amazonka.Nimble.GetLaunchProfileInitialization+  ( -- * Creating a Request+    GetLaunchProfileInitialization (..),+    newGetLaunchProfileInitialization,++    -- * Request Lenses+    getLaunchProfileInitialization_launchProfileId,+    getLaunchProfileInitialization_launchProfileProtocolVersions,+    getLaunchProfileInitialization_launchPurpose,+    getLaunchProfileInitialization_platform,+    getLaunchProfileInitialization_studioId,++    -- * Destructuring the Response+    GetLaunchProfileInitializationResponse (..),+    newGetLaunchProfileInitializationResponse,++    -- * Response Lenses+    getLaunchProfileInitializationResponse_launchProfileInitialization,+    getLaunchProfileInitializationResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Nimble.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetLaunchProfileInitialization' smart constructor.+data GetLaunchProfileInitialization = GetLaunchProfileInitialization'+  { -- | The ID of the launch profile used to control access from the streaming+    -- session.+    launchProfileId :: Prelude.Text,+    -- | The launch profile protocol versions supported by the client.+    launchProfileProtocolVersions :: [Prelude.Text],+    -- | The launch purpose.+    launchPurpose :: Prelude.Text,+    -- | The platform where this Launch Profile will be used, either Windows or+    -- Linux.+    platform :: Prelude.Text,+    -- | The studio ID.+    studioId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetLaunchProfileInitialization' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'launchProfileId', 'getLaunchProfileInitialization_launchProfileId' - The ID of the launch profile used to control access from the streaming+-- session.+--+-- 'launchProfileProtocolVersions', 'getLaunchProfileInitialization_launchProfileProtocolVersions' - The launch profile protocol versions supported by the client.+--+-- 'launchPurpose', 'getLaunchProfileInitialization_launchPurpose' - The launch purpose.+--+-- 'platform', 'getLaunchProfileInitialization_platform' - The platform where this Launch Profile will be used, either Windows or+-- Linux.+--+-- 'studioId', 'getLaunchProfileInitialization_studioId' - The studio ID.+newGetLaunchProfileInitialization ::+  -- | 'launchProfileId'+  Prelude.Text ->+  -- | 'launchPurpose'+  Prelude.Text ->+  -- | 'platform'+  Prelude.Text ->+  -- | 'studioId'+  Prelude.Text ->+  GetLaunchProfileInitialization+newGetLaunchProfileInitialization+  pLaunchProfileId_+  pLaunchPurpose_+  pPlatform_+  pStudioId_ =+    GetLaunchProfileInitialization'+      { launchProfileId =+          pLaunchProfileId_,+        launchProfileProtocolVersions =+          Prelude.mempty,+        launchPurpose = pLaunchPurpose_,+        platform = pPlatform_,+        studioId = pStudioId_+      }++-- | The ID of the launch profile used to control access from the streaming+-- session.+getLaunchProfileInitialization_launchProfileId :: Lens.Lens' GetLaunchProfileInitialization Prelude.Text+getLaunchProfileInitialization_launchProfileId = Lens.lens (\GetLaunchProfileInitialization' {launchProfileId} -> launchProfileId) (\s@GetLaunchProfileInitialization' {} a -> s {launchProfileId = a} :: GetLaunchProfileInitialization)++-- | The launch profile protocol versions supported by the client.+getLaunchProfileInitialization_launchProfileProtocolVersions :: Lens.Lens' GetLaunchProfileInitialization [Prelude.Text]+getLaunchProfileInitialization_launchProfileProtocolVersions = Lens.lens (\GetLaunchProfileInitialization' {launchProfileProtocolVersions} -> launchProfileProtocolVersions) (\s@GetLaunchProfileInitialization' {} a -> s {launchProfileProtocolVersions = a} :: GetLaunchProfileInitialization) Prelude.. Lens.coerced++-- | The launch purpose.+getLaunchProfileInitialization_launchPurpose :: Lens.Lens' GetLaunchProfileInitialization Prelude.Text+getLaunchProfileInitialization_launchPurpose = Lens.lens (\GetLaunchProfileInitialization' {launchPurpose} -> launchPurpose) (\s@GetLaunchProfileInitialization' {} a -> s {launchPurpose = a} :: GetLaunchProfileInitialization)++-- | The platform where this Launch Profile will be used, either Windows or+-- Linux.+getLaunchProfileInitialization_platform :: Lens.Lens' GetLaunchProfileInitialization Prelude.Text+getLaunchProfileInitialization_platform = Lens.lens (\GetLaunchProfileInitialization' {platform} -> platform) (\s@GetLaunchProfileInitialization' {} a -> s {platform = a} :: GetLaunchProfileInitialization)++-- | The studio ID.+getLaunchProfileInitialization_studioId :: Lens.Lens' GetLaunchProfileInitialization Prelude.Text+getLaunchProfileInitialization_studioId = Lens.lens (\GetLaunchProfileInitialization' {studioId} -> studioId) (\s@GetLaunchProfileInitialization' {} a -> s {studioId = a} :: GetLaunchProfileInitialization)++instance+  Core.AWSRequest+    GetLaunchProfileInitialization+  where+  type+    AWSResponse GetLaunchProfileInitialization =+      GetLaunchProfileInitializationResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetLaunchProfileInitializationResponse'+            Prelude.<$> (x Data..?> "launchProfileInitialization")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance+  Prelude.Hashable+    GetLaunchProfileInitialization+  where+  hashWithSalt+    _salt+    GetLaunchProfileInitialization' {..} =+      _salt+        `Prelude.hashWithSalt` launchProfileId+        `Prelude.hashWithSalt` launchProfileProtocolVersions+        `Prelude.hashWithSalt` launchPurpose+        `Prelude.hashWithSalt` platform+        `Prelude.hashWithSalt` studioId++instance+  Prelude.NFData+    GetLaunchProfileInitialization+  where+  rnf GetLaunchProfileInitialization' {..} =+    Prelude.rnf launchProfileId+      `Prelude.seq` Prelude.rnf launchProfileProtocolVersions+      `Prelude.seq` Prelude.rnf launchPurpose+      `Prelude.seq` Prelude.rnf platform+      `Prelude.seq` Prelude.rnf studioId++instance+  Data.ToHeaders+    GetLaunchProfileInitialization+  where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath GetLaunchProfileInitialization where+  toPath GetLaunchProfileInitialization' {..} =+    Prelude.mconcat+      [ "/2020-08-01/studios/",+        Data.toBS studioId,+        "/launch-profiles/",+        Data.toBS launchProfileId,+        "/init"+      ]++instance Data.ToQuery GetLaunchProfileInitialization where+  toQuery GetLaunchProfileInitialization' {..} =+    Prelude.mconcat+      [ "launchProfileProtocolVersions"+          Data.=: Data.toQueryList+            "member"+            launchProfileProtocolVersions,+        "launchPurpose" Data.=: launchPurpose,+        "platform" Data.=: platform+      ]++-- | /See:/ 'newGetLaunchProfileInitializationResponse' smart constructor.+data GetLaunchProfileInitializationResponse = GetLaunchProfileInitializationResponse'+  { -- | The launch profile initialization.+    launchProfileInitialization :: Prelude.Maybe LaunchProfileInitialization,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetLaunchProfileInitializationResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'launchProfileInitialization', 'getLaunchProfileInitializationResponse_launchProfileInitialization' - The launch profile initialization.+--+-- 'httpStatus', 'getLaunchProfileInitializationResponse_httpStatus' - The response's http status code.+newGetLaunchProfileInitializationResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetLaunchProfileInitializationResponse+newGetLaunchProfileInitializationResponse+  pHttpStatus_ =+    GetLaunchProfileInitializationResponse'+      { launchProfileInitialization =+          Prelude.Nothing,+        httpStatus = pHttpStatus_+      }++-- | The launch profile initialization.+getLaunchProfileInitializationResponse_launchProfileInitialization :: Lens.Lens' GetLaunchProfileInitializationResponse (Prelude.Maybe LaunchProfileInitialization)+getLaunchProfileInitializationResponse_launchProfileInitialization = Lens.lens (\GetLaunchProfileInitializationResponse' {launchProfileInitialization} -> launchProfileInitialization) (\s@GetLaunchProfileInitializationResponse' {} a -> s {launchProfileInitialization = a} :: GetLaunchProfileInitializationResponse)++-- | The response's http status code.+getLaunchProfileInitializationResponse_httpStatus :: Lens.Lens' GetLaunchProfileInitializationResponse Prelude.Int+getLaunchProfileInitializationResponse_httpStatus = Lens.lens (\GetLaunchProfileInitializationResponse' {httpStatus} -> httpStatus) (\s@GetLaunchProfileInitializationResponse' {} a -> s {httpStatus = a} :: GetLaunchProfileInitializationResponse)++instance+  Prelude.NFData+    GetLaunchProfileInitializationResponse+  where+  rnf GetLaunchProfileInitializationResponse' {..} =+    Prelude.rnf launchProfileInitialization+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Nimble/GetLaunchProfileMember.hs view
@@ -0,0 +1,207 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Nimble.GetLaunchProfileMember+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Get a user persona in launch profile membership.+module Amazonka.Nimble.GetLaunchProfileMember+  ( -- * Creating a Request+    GetLaunchProfileMember (..),+    newGetLaunchProfileMember,++    -- * Request Lenses+    getLaunchProfileMember_launchProfileId,+    getLaunchProfileMember_principalId,+    getLaunchProfileMember_studioId,++    -- * Destructuring the Response+    GetLaunchProfileMemberResponse (..),+    newGetLaunchProfileMemberResponse,++    -- * Response Lenses+    getLaunchProfileMemberResponse_member,+    getLaunchProfileMemberResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Nimble.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetLaunchProfileMember' smart constructor.+data GetLaunchProfileMember = GetLaunchProfileMember'+  { -- | The ID of the launch profile used to control access from the streaming+    -- session.+    launchProfileId :: Prelude.Text,+    -- | The principal ID. This currently supports a IAM Identity Center UserId.+    principalId :: Prelude.Text,+    -- | The studio ID.+    studioId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetLaunchProfileMember' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'launchProfileId', 'getLaunchProfileMember_launchProfileId' - The ID of the launch profile used to control access from the streaming+-- session.+--+-- 'principalId', 'getLaunchProfileMember_principalId' - The principal ID. This currently supports a IAM Identity Center UserId.+--+-- 'studioId', 'getLaunchProfileMember_studioId' - The studio ID.+newGetLaunchProfileMember ::+  -- | 'launchProfileId'+  Prelude.Text ->+  -- | 'principalId'+  Prelude.Text ->+  -- | 'studioId'+  Prelude.Text ->+  GetLaunchProfileMember+newGetLaunchProfileMember+  pLaunchProfileId_+  pPrincipalId_+  pStudioId_ =+    GetLaunchProfileMember'+      { launchProfileId =+          pLaunchProfileId_,+        principalId = pPrincipalId_,+        studioId = pStudioId_+      }++-- | The ID of the launch profile used to control access from the streaming+-- session.+getLaunchProfileMember_launchProfileId :: Lens.Lens' GetLaunchProfileMember Prelude.Text+getLaunchProfileMember_launchProfileId = Lens.lens (\GetLaunchProfileMember' {launchProfileId} -> launchProfileId) (\s@GetLaunchProfileMember' {} a -> s {launchProfileId = a} :: GetLaunchProfileMember)++-- | The principal ID. This currently supports a IAM Identity Center UserId.+getLaunchProfileMember_principalId :: Lens.Lens' GetLaunchProfileMember Prelude.Text+getLaunchProfileMember_principalId = Lens.lens (\GetLaunchProfileMember' {principalId} -> principalId) (\s@GetLaunchProfileMember' {} a -> s {principalId = a} :: GetLaunchProfileMember)++-- | The studio ID.+getLaunchProfileMember_studioId :: Lens.Lens' GetLaunchProfileMember Prelude.Text+getLaunchProfileMember_studioId = Lens.lens (\GetLaunchProfileMember' {studioId} -> studioId) (\s@GetLaunchProfileMember' {} a -> s {studioId = a} :: GetLaunchProfileMember)++instance Core.AWSRequest GetLaunchProfileMember where+  type+    AWSResponse GetLaunchProfileMember =+      GetLaunchProfileMemberResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetLaunchProfileMemberResponse'+            Prelude.<$> (x Data..?> "member")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetLaunchProfileMember where+  hashWithSalt _salt GetLaunchProfileMember' {..} =+    _salt+      `Prelude.hashWithSalt` launchProfileId+      `Prelude.hashWithSalt` principalId+      `Prelude.hashWithSalt` studioId++instance Prelude.NFData GetLaunchProfileMember where+  rnf GetLaunchProfileMember' {..} =+    Prelude.rnf launchProfileId+      `Prelude.seq` Prelude.rnf principalId+      `Prelude.seq` Prelude.rnf studioId++instance Data.ToHeaders GetLaunchProfileMember where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath GetLaunchProfileMember where+  toPath GetLaunchProfileMember' {..} =+    Prelude.mconcat+      [ "/2020-08-01/studios/",+        Data.toBS studioId,+        "/launch-profiles/",+        Data.toBS launchProfileId,+        "/membership/",+        Data.toBS principalId+      ]++instance Data.ToQuery GetLaunchProfileMember where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetLaunchProfileMemberResponse' smart constructor.+data GetLaunchProfileMemberResponse = GetLaunchProfileMemberResponse'+  { -- | The member.+    member :: Prelude.Maybe LaunchProfileMembership,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetLaunchProfileMemberResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'member', 'getLaunchProfileMemberResponse_member' - The member.+--+-- 'httpStatus', 'getLaunchProfileMemberResponse_httpStatus' - The response's http status code.+newGetLaunchProfileMemberResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetLaunchProfileMemberResponse+newGetLaunchProfileMemberResponse pHttpStatus_ =+  GetLaunchProfileMemberResponse'+    { member =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The member.+getLaunchProfileMemberResponse_member :: Lens.Lens' GetLaunchProfileMemberResponse (Prelude.Maybe LaunchProfileMembership)+getLaunchProfileMemberResponse_member = Lens.lens (\GetLaunchProfileMemberResponse' {member} -> member) (\s@GetLaunchProfileMemberResponse' {} a -> s {member = a} :: GetLaunchProfileMemberResponse)++-- | The response's http status code.+getLaunchProfileMemberResponse_httpStatus :: Lens.Lens' GetLaunchProfileMemberResponse Prelude.Int+getLaunchProfileMemberResponse_httpStatus = Lens.lens (\GetLaunchProfileMemberResponse' {httpStatus} -> httpStatus) (\s@GetLaunchProfileMemberResponse' {} a -> s {httpStatus = a} :: GetLaunchProfileMemberResponse)++instance+  Prelude.NFData+    GetLaunchProfileMemberResponse+  where+  rnf GetLaunchProfileMemberResponse' {..} =+    Prelude.rnf member+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Nimble/GetStreamingImage.hs view
@@ -0,0 +1,182 @@+{-# 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.Nimble.GetStreamingImage+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Get streaming image.+module Amazonka.Nimble.GetStreamingImage+  ( -- * Creating a Request+    GetStreamingImage (..),+    newGetStreamingImage,++    -- * Request Lenses+    getStreamingImage_streamingImageId,+    getStreamingImage_studioId,++    -- * Destructuring the Response+    GetStreamingImageResponse (..),+    newGetStreamingImageResponse,++    -- * Response Lenses+    getStreamingImageResponse_streamingImage,+    getStreamingImageResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Nimble.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetStreamingImage' smart constructor.+data GetStreamingImage = GetStreamingImage'+  { -- | The streaming image ID.+    streamingImageId :: Prelude.Text,+    -- | The studio ID.+    studioId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetStreamingImage' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'streamingImageId', 'getStreamingImage_streamingImageId' - The streaming image ID.+--+-- 'studioId', 'getStreamingImage_studioId' - The studio ID.+newGetStreamingImage ::+  -- | 'streamingImageId'+  Prelude.Text ->+  -- | 'studioId'+  Prelude.Text ->+  GetStreamingImage+newGetStreamingImage pStreamingImageId_ pStudioId_ =+  GetStreamingImage'+    { streamingImageId =+        pStreamingImageId_,+      studioId = pStudioId_+    }++-- | The streaming image ID.+getStreamingImage_streamingImageId :: Lens.Lens' GetStreamingImage Prelude.Text+getStreamingImage_streamingImageId = Lens.lens (\GetStreamingImage' {streamingImageId} -> streamingImageId) (\s@GetStreamingImage' {} a -> s {streamingImageId = a} :: GetStreamingImage)++-- | The studio ID.+getStreamingImage_studioId :: Lens.Lens' GetStreamingImage Prelude.Text+getStreamingImage_studioId = Lens.lens (\GetStreamingImage' {studioId} -> studioId) (\s@GetStreamingImage' {} a -> s {studioId = a} :: GetStreamingImage)++instance Core.AWSRequest GetStreamingImage where+  type+    AWSResponse GetStreamingImage =+      GetStreamingImageResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetStreamingImageResponse'+            Prelude.<$> (x Data..?> "streamingImage")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetStreamingImage where+  hashWithSalt _salt GetStreamingImage' {..} =+    _salt+      `Prelude.hashWithSalt` streamingImageId+      `Prelude.hashWithSalt` studioId++instance Prelude.NFData GetStreamingImage where+  rnf GetStreamingImage' {..} =+    Prelude.rnf streamingImageId+      `Prelude.seq` Prelude.rnf studioId++instance Data.ToHeaders GetStreamingImage where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath GetStreamingImage where+  toPath GetStreamingImage' {..} =+    Prelude.mconcat+      [ "/2020-08-01/studios/",+        Data.toBS studioId,+        "/streaming-images/",+        Data.toBS streamingImageId+      ]++instance Data.ToQuery GetStreamingImage where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetStreamingImageResponse' smart constructor.+data GetStreamingImageResponse = GetStreamingImageResponse'+  { -- | The streaming image.+    streamingImage :: Prelude.Maybe StreamingImage,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetStreamingImageResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'streamingImage', 'getStreamingImageResponse_streamingImage' - The streaming image.+--+-- 'httpStatus', 'getStreamingImageResponse_httpStatus' - The response's http status code.+newGetStreamingImageResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetStreamingImageResponse+newGetStreamingImageResponse pHttpStatus_ =+  GetStreamingImageResponse'+    { streamingImage =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The streaming image.+getStreamingImageResponse_streamingImage :: Lens.Lens' GetStreamingImageResponse (Prelude.Maybe StreamingImage)+getStreamingImageResponse_streamingImage = Lens.lens (\GetStreamingImageResponse' {streamingImage} -> streamingImage) (\s@GetStreamingImageResponse' {} a -> s {streamingImage = a} :: GetStreamingImageResponse)++-- | The response's http status code.+getStreamingImageResponse_httpStatus :: Lens.Lens' GetStreamingImageResponse Prelude.Int+getStreamingImageResponse_httpStatus = Lens.lens (\GetStreamingImageResponse' {httpStatus} -> httpStatus) (\s@GetStreamingImageResponse' {} a -> s {httpStatus = a} :: GetStreamingImageResponse)++instance Prelude.NFData GetStreamingImageResponse where+  rnf GetStreamingImageResponse' {..} =+    Prelude.rnf streamingImage+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Nimble/GetStreamingSession.hs view
@@ -0,0 +1,184 @@+{-# 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.Nimble.GetStreamingSession+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets StreamingSession resource.+--+-- Invoke this operation to poll for a streaming session state while+-- creating or deleting a session.+module Amazonka.Nimble.GetStreamingSession+  ( -- * Creating a Request+    GetStreamingSession (..),+    newGetStreamingSession,++    -- * Request Lenses+    getStreamingSession_sessionId,+    getStreamingSession_studioId,++    -- * Destructuring the Response+    GetStreamingSessionResponse (..),+    newGetStreamingSessionResponse,++    -- * Response Lenses+    getStreamingSessionResponse_session,+    getStreamingSessionResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Nimble.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetStreamingSession' smart constructor.+data GetStreamingSession = GetStreamingSession'+  { -- | The streaming session ID.+    sessionId :: Prelude.Text,+    -- | The studio ID.+    studioId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetStreamingSession' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'sessionId', 'getStreamingSession_sessionId' - The streaming session ID.+--+-- 'studioId', 'getStreamingSession_studioId' - The studio ID.+newGetStreamingSession ::+  -- | 'sessionId'+  Prelude.Text ->+  -- | 'studioId'+  Prelude.Text ->+  GetStreamingSession+newGetStreamingSession pSessionId_ pStudioId_ =+  GetStreamingSession'+    { sessionId = pSessionId_,+      studioId = pStudioId_+    }++-- | The streaming session ID.+getStreamingSession_sessionId :: Lens.Lens' GetStreamingSession Prelude.Text+getStreamingSession_sessionId = Lens.lens (\GetStreamingSession' {sessionId} -> sessionId) (\s@GetStreamingSession' {} a -> s {sessionId = a} :: GetStreamingSession)++-- | The studio ID.+getStreamingSession_studioId :: Lens.Lens' GetStreamingSession Prelude.Text+getStreamingSession_studioId = Lens.lens (\GetStreamingSession' {studioId} -> studioId) (\s@GetStreamingSession' {} a -> s {studioId = a} :: GetStreamingSession)++instance Core.AWSRequest GetStreamingSession where+  type+    AWSResponse GetStreamingSession =+      GetStreamingSessionResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetStreamingSessionResponse'+            Prelude.<$> (x Data..?> "session")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetStreamingSession where+  hashWithSalt _salt GetStreamingSession' {..} =+    _salt+      `Prelude.hashWithSalt` sessionId+      `Prelude.hashWithSalt` studioId++instance Prelude.NFData GetStreamingSession where+  rnf GetStreamingSession' {..} =+    Prelude.rnf sessionId+      `Prelude.seq` Prelude.rnf studioId++instance Data.ToHeaders GetStreamingSession where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath GetStreamingSession where+  toPath GetStreamingSession' {..} =+    Prelude.mconcat+      [ "/2020-08-01/studios/",+        Data.toBS studioId,+        "/streaming-sessions/",+        Data.toBS sessionId+      ]++instance Data.ToQuery GetStreamingSession where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetStreamingSessionResponse' smart constructor.+data GetStreamingSessionResponse = GetStreamingSessionResponse'+  { -- | The session.+    session :: Prelude.Maybe StreamingSession,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetStreamingSessionResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'session', 'getStreamingSessionResponse_session' - The session.+--+-- 'httpStatus', 'getStreamingSessionResponse_httpStatus' - The response's http status code.+newGetStreamingSessionResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetStreamingSessionResponse+newGetStreamingSessionResponse pHttpStatus_ =+  GetStreamingSessionResponse'+    { session =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The session.+getStreamingSessionResponse_session :: Lens.Lens' GetStreamingSessionResponse (Prelude.Maybe StreamingSession)+getStreamingSessionResponse_session = Lens.lens (\GetStreamingSessionResponse' {session} -> session) (\s@GetStreamingSessionResponse' {} a -> s {session = a} :: GetStreamingSessionResponse)++-- | The response's http status code.+getStreamingSessionResponse_httpStatus :: Lens.Lens' GetStreamingSessionResponse Prelude.Int+getStreamingSessionResponse_httpStatus = Lens.lens (\GetStreamingSessionResponse' {httpStatus} -> httpStatus) (\s@GetStreamingSessionResponse' {} a -> s {httpStatus = a} :: GetStreamingSessionResponse)++instance Prelude.NFData GetStreamingSessionResponse where+  rnf GetStreamingSessionResponse' {..} =+    Prelude.rnf session+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Nimble/GetStreamingSessionBackup.hs view
@@ -0,0 +1,187 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Nimble.GetStreamingSessionBackup+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets @StreamingSessionBackup@ resource.+--+-- Invoke this operation to poll for a streaming session backup while+-- stopping a streaming session.+module Amazonka.Nimble.GetStreamingSessionBackup+  ( -- * Creating a Request+    GetStreamingSessionBackup (..),+    newGetStreamingSessionBackup,++    -- * Request Lenses+    getStreamingSessionBackup_backupId,+    getStreamingSessionBackup_studioId,++    -- * Destructuring the Response+    GetStreamingSessionBackupResponse (..),+    newGetStreamingSessionBackupResponse,++    -- * Response Lenses+    getStreamingSessionBackupResponse_streamingSessionBackup,+    getStreamingSessionBackupResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Nimble.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetStreamingSessionBackup' smart constructor.+data GetStreamingSessionBackup = GetStreamingSessionBackup'+  { -- | The ID of the backup.+    backupId :: Prelude.Text,+    -- | The studio ID.+    studioId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetStreamingSessionBackup' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'backupId', 'getStreamingSessionBackup_backupId' - The ID of the backup.+--+-- 'studioId', 'getStreamingSessionBackup_studioId' - The studio ID.+newGetStreamingSessionBackup ::+  -- | 'backupId'+  Prelude.Text ->+  -- | 'studioId'+  Prelude.Text ->+  GetStreamingSessionBackup+newGetStreamingSessionBackup pBackupId_ pStudioId_ =+  GetStreamingSessionBackup'+    { backupId = pBackupId_,+      studioId = pStudioId_+    }++-- | The ID of the backup.+getStreamingSessionBackup_backupId :: Lens.Lens' GetStreamingSessionBackup Prelude.Text+getStreamingSessionBackup_backupId = Lens.lens (\GetStreamingSessionBackup' {backupId} -> backupId) (\s@GetStreamingSessionBackup' {} a -> s {backupId = a} :: GetStreamingSessionBackup)++-- | The studio ID.+getStreamingSessionBackup_studioId :: Lens.Lens' GetStreamingSessionBackup Prelude.Text+getStreamingSessionBackup_studioId = Lens.lens (\GetStreamingSessionBackup' {studioId} -> studioId) (\s@GetStreamingSessionBackup' {} a -> s {studioId = a} :: GetStreamingSessionBackup)++instance Core.AWSRequest GetStreamingSessionBackup where+  type+    AWSResponse GetStreamingSessionBackup =+      GetStreamingSessionBackupResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetStreamingSessionBackupResponse'+            Prelude.<$> (x Data..?> "streamingSessionBackup")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetStreamingSessionBackup where+  hashWithSalt _salt GetStreamingSessionBackup' {..} =+    _salt+      `Prelude.hashWithSalt` backupId+      `Prelude.hashWithSalt` studioId++instance Prelude.NFData GetStreamingSessionBackup where+  rnf GetStreamingSessionBackup' {..} =+    Prelude.rnf backupId+      `Prelude.seq` Prelude.rnf studioId++instance Data.ToHeaders GetStreamingSessionBackup where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath GetStreamingSessionBackup where+  toPath GetStreamingSessionBackup' {..} =+    Prelude.mconcat+      [ "/2020-08-01/studios/",+        Data.toBS studioId,+        "/streaming-session-backups/",+        Data.toBS backupId+      ]++instance Data.ToQuery GetStreamingSessionBackup where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetStreamingSessionBackupResponse' smart constructor.+data GetStreamingSessionBackupResponse = GetStreamingSessionBackupResponse'+  { -- | Information about the streaming session backup.+    streamingSessionBackup :: Prelude.Maybe StreamingSessionBackup,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetStreamingSessionBackupResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'streamingSessionBackup', 'getStreamingSessionBackupResponse_streamingSessionBackup' - Information about the streaming session backup.+--+-- 'httpStatus', 'getStreamingSessionBackupResponse_httpStatus' - The response's http status code.+newGetStreamingSessionBackupResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetStreamingSessionBackupResponse+newGetStreamingSessionBackupResponse pHttpStatus_ =+  GetStreamingSessionBackupResponse'+    { streamingSessionBackup =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Information about the streaming session backup.+getStreamingSessionBackupResponse_streamingSessionBackup :: Lens.Lens' GetStreamingSessionBackupResponse (Prelude.Maybe StreamingSessionBackup)+getStreamingSessionBackupResponse_streamingSessionBackup = Lens.lens (\GetStreamingSessionBackupResponse' {streamingSessionBackup} -> streamingSessionBackup) (\s@GetStreamingSessionBackupResponse' {} a -> s {streamingSessionBackup = a} :: GetStreamingSessionBackupResponse)++-- | The response's http status code.+getStreamingSessionBackupResponse_httpStatus :: Lens.Lens' GetStreamingSessionBackupResponse Prelude.Int+getStreamingSessionBackupResponse_httpStatus = Lens.lens (\GetStreamingSessionBackupResponse' {httpStatus} -> httpStatus) (\s@GetStreamingSessionBackupResponse' {} a -> s {httpStatus = a} :: GetStreamingSessionBackupResponse)++instance+  Prelude.NFData+    GetStreamingSessionBackupResponse+  where+  rnf GetStreamingSessionBackupResponse' {..} =+    Prelude.rnf streamingSessionBackup+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Nimble/GetStreamingSessionStream.hs view
@@ -0,0 +1,209 @@+{-# 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.Nimble.GetStreamingSessionStream+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets a StreamingSessionStream for a streaming session.+--+-- Invoke this operation to poll the resource after invoking+-- @CreateStreamingSessionStream@.+--+-- After the @StreamingSessionStream@ changes to the @READY@ state, the url+-- property will contain a stream to be used with the DCV streaming client.+module Amazonka.Nimble.GetStreamingSessionStream+  ( -- * Creating a Request+    GetStreamingSessionStream (..),+    newGetStreamingSessionStream,++    -- * Request Lenses+    getStreamingSessionStream_sessionId,+    getStreamingSessionStream_streamId,+    getStreamingSessionStream_studioId,++    -- * Destructuring the Response+    GetStreamingSessionStreamResponse (..),+    newGetStreamingSessionStreamResponse,++    -- * Response Lenses+    getStreamingSessionStreamResponse_stream,+    getStreamingSessionStreamResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Nimble.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetStreamingSessionStream' smart constructor.+data GetStreamingSessionStream = GetStreamingSessionStream'+  { -- | The streaming session ID.+    sessionId :: Prelude.Text,+    -- | The streaming session stream ID.+    streamId :: Prelude.Text,+    -- | The studio ID.+    studioId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetStreamingSessionStream' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'sessionId', 'getStreamingSessionStream_sessionId' - The streaming session ID.+--+-- 'streamId', 'getStreamingSessionStream_streamId' - The streaming session stream ID.+--+-- 'studioId', 'getStreamingSessionStream_studioId' - The studio ID.+newGetStreamingSessionStream ::+  -- | 'sessionId'+  Prelude.Text ->+  -- | 'streamId'+  Prelude.Text ->+  -- | 'studioId'+  Prelude.Text ->+  GetStreamingSessionStream+newGetStreamingSessionStream+  pSessionId_+  pStreamId_+  pStudioId_ =+    GetStreamingSessionStream'+      { sessionId = pSessionId_,+        streamId = pStreamId_,+        studioId = pStudioId_+      }++-- | The streaming session ID.+getStreamingSessionStream_sessionId :: Lens.Lens' GetStreamingSessionStream Prelude.Text+getStreamingSessionStream_sessionId = Lens.lens (\GetStreamingSessionStream' {sessionId} -> sessionId) (\s@GetStreamingSessionStream' {} a -> s {sessionId = a} :: GetStreamingSessionStream)++-- | The streaming session stream ID.+getStreamingSessionStream_streamId :: Lens.Lens' GetStreamingSessionStream Prelude.Text+getStreamingSessionStream_streamId = Lens.lens (\GetStreamingSessionStream' {streamId} -> streamId) (\s@GetStreamingSessionStream' {} a -> s {streamId = a} :: GetStreamingSessionStream)++-- | The studio ID.+getStreamingSessionStream_studioId :: Lens.Lens' GetStreamingSessionStream Prelude.Text+getStreamingSessionStream_studioId = Lens.lens (\GetStreamingSessionStream' {studioId} -> studioId) (\s@GetStreamingSessionStream' {} a -> s {studioId = a} :: GetStreamingSessionStream)++instance Core.AWSRequest GetStreamingSessionStream where+  type+    AWSResponse GetStreamingSessionStream =+      GetStreamingSessionStreamResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetStreamingSessionStreamResponse'+            Prelude.<$> (x Data..?> "stream")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetStreamingSessionStream where+  hashWithSalt _salt GetStreamingSessionStream' {..} =+    _salt+      `Prelude.hashWithSalt` sessionId+      `Prelude.hashWithSalt` streamId+      `Prelude.hashWithSalt` studioId++instance Prelude.NFData GetStreamingSessionStream where+  rnf GetStreamingSessionStream' {..} =+    Prelude.rnf sessionId+      `Prelude.seq` Prelude.rnf streamId+      `Prelude.seq` Prelude.rnf studioId++instance Data.ToHeaders GetStreamingSessionStream where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath GetStreamingSessionStream where+  toPath GetStreamingSessionStream' {..} =+    Prelude.mconcat+      [ "/2020-08-01/studios/",+        Data.toBS studioId,+        "/streaming-sessions/",+        Data.toBS sessionId,+        "/streams/",+        Data.toBS streamId+      ]++instance Data.ToQuery GetStreamingSessionStream where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetStreamingSessionStreamResponse' smart constructor.+data GetStreamingSessionStreamResponse = GetStreamingSessionStreamResponse'+  { -- | The stream.+    stream :: Prelude.Maybe StreamingSessionStream,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetStreamingSessionStreamResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'stream', 'getStreamingSessionStreamResponse_stream' - The stream.+--+-- 'httpStatus', 'getStreamingSessionStreamResponse_httpStatus' - The response's http status code.+newGetStreamingSessionStreamResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetStreamingSessionStreamResponse+newGetStreamingSessionStreamResponse pHttpStatus_ =+  GetStreamingSessionStreamResponse'+    { stream =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The stream.+getStreamingSessionStreamResponse_stream :: Lens.Lens' GetStreamingSessionStreamResponse (Prelude.Maybe StreamingSessionStream)+getStreamingSessionStreamResponse_stream = Lens.lens (\GetStreamingSessionStreamResponse' {stream} -> stream) (\s@GetStreamingSessionStreamResponse' {} a -> s {stream = a} :: GetStreamingSessionStreamResponse)++-- | The response's http status code.+getStreamingSessionStreamResponse_httpStatus :: Lens.Lens' GetStreamingSessionStreamResponse Prelude.Int+getStreamingSessionStreamResponse_httpStatus = Lens.lens (\GetStreamingSessionStreamResponse' {httpStatus} -> httpStatus) (\s@GetStreamingSessionStreamResponse' {} a -> s {httpStatus = a} :: GetStreamingSessionStreamResponse)++instance+  Prelude.NFData+    GetStreamingSessionStreamResponse+  where+  rnf GetStreamingSessionStreamResponse' {..} =+    Prelude.rnf stream+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Nimble/GetStudio.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.Nimble.GetStudio+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Get a studio resource.+module Amazonka.Nimble.GetStudio+  ( -- * Creating a Request+    GetStudio (..),+    newGetStudio,++    -- * Request Lenses+    getStudio_studioId,++    -- * Destructuring the Response+    GetStudioResponse (..),+    newGetStudioResponse,++    -- * Response Lenses+    getStudioResponse_httpStatus,+    getStudioResponse_studio,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Nimble.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetStudio' smart constructor.+data GetStudio = GetStudio'+  { -- | The studio ID.+    studioId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetStudio' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'studioId', 'getStudio_studioId' - The studio ID.+newGetStudio ::+  -- | 'studioId'+  Prelude.Text ->+  GetStudio+newGetStudio pStudioId_ =+  GetStudio' {studioId = pStudioId_}++-- | The studio ID.+getStudio_studioId :: Lens.Lens' GetStudio Prelude.Text+getStudio_studioId = Lens.lens (\GetStudio' {studioId} -> studioId) (\s@GetStudio' {} a -> s {studioId = a} :: GetStudio)++instance Core.AWSRequest GetStudio where+  type AWSResponse GetStudio = GetStudioResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetStudioResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "studio")+      )++instance Prelude.Hashable GetStudio where+  hashWithSalt _salt GetStudio' {..} =+    _salt `Prelude.hashWithSalt` studioId++instance Prelude.NFData GetStudio where+  rnf GetStudio' {..} = Prelude.rnf studioId++instance Data.ToHeaders GetStudio where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath GetStudio where+  toPath GetStudio' {..} =+    Prelude.mconcat+      ["/2020-08-01/studios/", Data.toBS studioId]++instance Data.ToQuery GetStudio where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetStudioResponse' smart constructor.+data GetStudioResponse = GetStudioResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | Information about a studio.+    studio :: Studio+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetStudioResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'getStudioResponse_httpStatus' - The response's http status code.+--+-- 'studio', 'getStudioResponse_studio' - Information about a studio.+newGetStudioResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'studio'+  Studio ->+  GetStudioResponse+newGetStudioResponse pHttpStatus_ pStudio_ =+  GetStudioResponse'+    { httpStatus = pHttpStatus_,+      studio = pStudio_+    }++-- | The response's http status code.+getStudioResponse_httpStatus :: Lens.Lens' GetStudioResponse Prelude.Int+getStudioResponse_httpStatus = Lens.lens (\GetStudioResponse' {httpStatus} -> httpStatus) (\s@GetStudioResponse' {} a -> s {httpStatus = a} :: GetStudioResponse)++-- | Information about a studio.+getStudioResponse_studio :: Lens.Lens' GetStudioResponse Studio+getStudioResponse_studio = Lens.lens (\GetStudioResponse' {studio} -> studio) (\s@GetStudioResponse' {} a -> s {studio = a} :: GetStudioResponse)++instance Prelude.NFData GetStudioResponse where+  rnf GetStudioResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf studio
+ gen/Amazonka/Nimble/GetStudioComponent.hs view
@@ -0,0 +1,182 @@+{-# 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.Nimble.GetStudioComponent+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets a studio component resource.+module Amazonka.Nimble.GetStudioComponent+  ( -- * Creating a Request+    GetStudioComponent (..),+    newGetStudioComponent,++    -- * Request Lenses+    getStudioComponent_studioComponentId,+    getStudioComponent_studioId,++    -- * Destructuring the Response+    GetStudioComponentResponse (..),+    newGetStudioComponentResponse,++    -- * Response Lenses+    getStudioComponentResponse_studioComponent,+    getStudioComponentResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Nimble.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetStudioComponent' smart constructor.+data GetStudioComponent = GetStudioComponent'+  { -- | The studio component ID.+    studioComponentId :: Prelude.Text,+    -- | The studio ID.+    studioId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetStudioComponent' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'studioComponentId', 'getStudioComponent_studioComponentId' - The studio component ID.+--+-- 'studioId', 'getStudioComponent_studioId' - The studio ID.+newGetStudioComponent ::+  -- | 'studioComponentId'+  Prelude.Text ->+  -- | 'studioId'+  Prelude.Text ->+  GetStudioComponent+newGetStudioComponent pStudioComponentId_ pStudioId_ =+  GetStudioComponent'+    { studioComponentId =+        pStudioComponentId_,+      studioId = pStudioId_+    }++-- | The studio component ID.+getStudioComponent_studioComponentId :: Lens.Lens' GetStudioComponent Prelude.Text+getStudioComponent_studioComponentId = Lens.lens (\GetStudioComponent' {studioComponentId} -> studioComponentId) (\s@GetStudioComponent' {} a -> s {studioComponentId = a} :: GetStudioComponent)++-- | The studio ID.+getStudioComponent_studioId :: Lens.Lens' GetStudioComponent Prelude.Text+getStudioComponent_studioId = Lens.lens (\GetStudioComponent' {studioId} -> studioId) (\s@GetStudioComponent' {} a -> s {studioId = a} :: GetStudioComponent)++instance Core.AWSRequest GetStudioComponent where+  type+    AWSResponse GetStudioComponent =+      GetStudioComponentResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetStudioComponentResponse'+            Prelude.<$> (x Data..?> "studioComponent")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetStudioComponent where+  hashWithSalt _salt GetStudioComponent' {..} =+    _salt+      `Prelude.hashWithSalt` studioComponentId+      `Prelude.hashWithSalt` studioId++instance Prelude.NFData GetStudioComponent where+  rnf GetStudioComponent' {..} =+    Prelude.rnf studioComponentId+      `Prelude.seq` Prelude.rnf studioId++instance Data.ToHeaders GetStudioComponent where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath GetStudioComponent where+  toPath GetStudioComponent' {..} =+    Prelude.mconcat+      [ "/2020-08-01/studios/",+        Data.toBS studioId,+        "/studio-components/",+        Data.toBS studioComponentId+      ]++instance Data.ToQuery GetStudioComponent where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetStudioComponentResponse' smart constructor.+data GetStudioComponentResponse = GetStudioComponentResponse'+  { -- | Information about the studio component.+    studioComponent :: Prelude.Maybe StudioComponent,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetStudioComponentResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'studioComponent', 'getStudioComponentResponse_studioComponent' - Information about the studio component.+--+-- 'httpStatus', 'getStudioComponentResponse_httpStatus' - The response's http status code.+newGetStudioComponentResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetStudioComponentResponse+newGetStudioComponentResponse pHttpStatus_ =+  GetStudioComponentResponse'+    { studioComponent =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Information about the studio component.+getStudioComponentResponse_studioComponent :: Lens.Lens' GetStudioComponentResponse (Prelude.Maybe StudioComponent)+getStudioComponentResponse_studioComponent = Lens.lens (\GetStudioComponentResponse' {studioComponent} -> studioComponent) (\s@GetStudioComponentResponse' {} a -> s {studioComponent = a} :: GetStudioComponentResponse)++-- | The response's http status code.+getStudioComponentResponse_httpStatus :: Lens.Lens' GetStudioComponentResponse Prelude.Int+getStudioComponentResponse_httpStatus = Lens.lens (\GetStudioComponentResponse' {httpStatus} -> httpStatus) (\s@GetStudioComponentResponse' {} a -> s {httpStatus = a} :: GetStudioComponentResponse)++instance Prelude.NFData GetStudioComponentResponse where+  rnf GetStudioComponentResponse' {..} =+    Prelude.rnf studioComponent+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Nimble/GetStudioMember.hs view
@@ -0,0 +1,180 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Nimble.GetStudioMember+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Get a user\'s membership in a studio.+module Amazonka.Nimble.GetStudioMember+  ( -- * Creating a Request+    GetStudioMember (..),+    newGetStudioMember,++    -- * Request Lenses+    getStudioMember_principalId,+    getStudioMember_studioId,++    -- * Destructuring the Response+    GetStudioMemberResponse (..),+    newGetStudioMemberResponse,++    -- * Response Lenses+    getStudioMemberResponse_member,+    getStudioMemberResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Nimble.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetStudioMember' smart constructor.+data GetStudioMember = GetStudioMember'+  { -- | The principal ID. This currently supports a IAM Identity Center UserId.+    principalId :: Prelude.Text,+    -- | The studio ID.+    studioId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetStudioMember' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'principalId', 'getStudioMember_principalId' - The principal ID. This currently supports a IAM Identity Center UserId.+--+-- 'studioId', 'getStudioMember_studioId' - The studio ID.+newGetStudioMember ::+  -- | 'principalId'+  Prelude.Text ->+  -- | 'studioId'+  Prelude.Text ->+  GetStudioMember+newGetStudioMember pPrincipalId_ pStudioId_ =+  GetStudioMember'+    { principalId = pPrincipalId_,+      studioId = pStudioId_+    }++-- | The principal ID. This currently supports a IAM Identity Center UserId.+getStudioMember_principalId :: Lens.Lens' GetStudioMember Prelude.Text+getStudioMember_principalId = Lens.lens (\GetStudioMember' {principalId} -> principalId) (\s@GetStudioMember' {} a -> s {principalId = a} :: GetStudioMember)++-- | The studio ID.+getStudioMember_studioId :: Lens.Lens' GetStudioMember Prelude.Text+getStudioMember_studioId = Lens.lens (\GetStudioMember' {studioId} -> studioId) (\s@GetStudioMember' {} a -> s {studioId = a} :: GetStudioMember)++instance Core.AWSRequest GetStudioMember where+  type+    AWSResponse GetStudioMember =+      GetStudioMemberResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetStudioMemberResponse'+            Prelude.<$> (x Data..?> "member")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetStudioMember where+  hashWithSalt _salt GetStudioMember' {..} =+    _salt+      `Prelude.hashWithSalt` principalId+      `Prelude.hashWithSalt` studioId++instance Prelude.NFData GetStudioMember where+  rnf GetStudioMember' {..} =+    Prelude.rnf principalId+      `Prelude.seq` Prelude.rnf studioId++instance Data.ToHeaders GetStudioMember where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath GetStudioMember where+  toPath GetStudioMember' {..} =+    Prelude.mconcat+      [ "/2020-08-01/studios/",+        Data.toBS studioId,+        "/membership/",+        Data.toBS principalId+      ]++instance Data.ToQuery GetStudioMember where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetStudioMemberResponse' smart constructor.+data GetStudioMemberResponse = GetStudioMemberResponse'+  { -- | The member.+    member :: Prelude.Maybe StudioMembership,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetStudioMemberResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'member', 'getStudioMemberResponse_member' - The member.+--+-- 'httpStatus', 'getStudioMemberResponse_httpStatus' - The response's http status code.+newGetStudioMemberResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetStudioMemberResponse+newGetStudioMemberResponse pHttpStatus_ =+  GetStudioMemberResponse'+    { member = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The member.+getStudioMemberResponse_member :: Lens.Lens' GetStudioMemberResponse (Prelude.Maybe StudioMembership)+getStudioMemberResponse_member = Lens.lens (\GetStudioMemberResponse' {member} -> member) (\s@GetStudioMemberResponse' {} a -> s {member = a} :: GetStudioMemberResponse)++-- | The response's http status code.+getStudioMemberResponse_httpStatus :: Lens.Lens' GetStudioMemberResponse Prelude.Int+getStudioMemberResponse_httpStatus = Lens.lens (\GetStudioMemberResponse' {httpStatus} -> httpStatus) (\s@GetStudioMemberResponse' {} a -> s {httpStatus = a} :: GetStudioMemberResponse)++instance Prelude.NFData GetStudioMemberResponse where+  rnf GetStudioMemberResponse' {..} =+    Prelude.rnf member+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Nimble/Lens.hs view
@@ -0,0 +1,787 @@+{-# 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.Nimble.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.Nimble.Lens+  ( -- * Operations++    -- ** AcceptEulas+    acceptEulas_clientToken,+    acceptEulas_eulaIds,+    acceptEulas_studioId,+    acceptEulasResponse_eulaAcceptances,+    acceptEulasResponse_httpStatus,++    -- ** CreateLaunchProfile+    createLaunchProfile_clientToken,+    createLaunchProfile_description,+    createLaunchProfile_tags,+    createLaunchProfile_ec2SubnetIds,+    createLaunchProfile_launchProfileProtocolVersions,+    createLaunchProfile_name,+    createLaunchProfile_streamConfiguration,+    createLaunchProfile_studioComponentIds,+    createLaunchProfile_studioId,+    createLaunchProfileResponse_launchProfile,+    createLaunchProfileResponse_httpStatus,++    -- ** CreateStreamingImage+    createStreamingImage_clientToken,+    createStreamingImage_description,+    createStreamingImage_tags,+    createStreamingImage_ec2ImageId,+    createStreamingImage_name,+    createStreamingImage_studioId,+    createStreamingImageResponse_streamingImage,+    createStreamingImageResponse_httpStatus,++    -- ** CreateStreamingSession+    createStreamingSession_clientToken,+    createStreamingSession_ec2InstanceType,+    createStreamingSession_ownedBy,+    createStreamingSession_streamingImageId,+    createStreamingSession_tags,+    createStreamingSession_launchProfileId,+    createStreamingSession_studioId,+    createStreamingSessionResponse_session,+    createStreamingSessionResponse_httpStatus,++    -- ** CreateStreamingSessionStream+    createStreamingSessionStream_clientToken,+    createStreamingSessionStream_expirationInSeconds,+    createStreamingSessionStream_sessionId,+    createStreamingSessionStream_studioId,+    createStreamingSessionStreamResponse_stream,+    createStreamingSessionStreamResponse_httpStatus,++    -- ** CreateStudio+    createStudio_clientToken,+    createStudio_studioEncryptionConfiguration,+    createStudio_tags,+    createStudio_adminRoleArn,+    createStudio_displayName,+    createStudio_studioName,+    createStudio_userRoleArn,+    createStudioResponse_studio,+    createStudioResponse_httpStatus,++    -- ** CreateStudioComponent+    createStudioComponent_clientToken,+    createStudioComponent_configuration,+    createStudioComponent_description,+    createStudioComponent_ec2SecurityGroupIds,+    createStudioComponent_initializationScripts,+    createStudioComponent_runtimeRoleArn,+    createStudioComponent_scriptParameters,+    createStudioComponent_secureInitializationRoleArn,+    createStudioComponent_subtype,+    createStudioComponent_tags,+    createStudioComponent_name,+    createStudioComponent_studioId,+    createStudioComponent_type,+    createStudioComponentResponse_studioComponent,+    createStudioComponentResponse_httpStatus,++    -- ** DeleteLaunchProfile+    deleteLaunchProfile_clientToken,+    deleteLaunchProfile_launchProfileId,+    deleteLaunchProfile_studioId,+    deleteLaunchProfileResponse_launchProfile,+    deleteLaunchProfileResponse_httpStatus,++    -- ** DeleteLaunchProfileMember+    deleteLaunchProfileMember_clientToken,+    deleteLaunchProfileMember_launchProfileId,+    deleteLaunchProfileMember_principalId,+    deleteLaunchProfileMember_studioId,+    deleteLaunchProfileMemberResponse_httpStatus,++    -- ** DeleteStreamingImage+    deleteStreamingImage_clientToken,+    deleteStreamingImage_streamingImageId,+    deleteStreamingImage_studioId,+    deleteStreamingImageResponse_streamingImage,+    deleteStreamingImageResponse_httpStatus,++    -- ** DeleteStreamingSession+    deleteStreamingSession_clientToken,+    deleteStreamingSession_sessionId,+    deleteStreamingSession_studioId,+    deleteStreamingSessionResponse_session,+    deleteStreamingSessionResponse_httpStatus,++    -- ** DeleteStudio+    deleteStudio_clientToken,+    deleteStudio_studioId,+    deleteStudioResponse_httpStatus,+    deleteStudioResponse_studio,++    -- ** DeleteStudioComponent+    deleteStudioComponent_clientToken,+    deleteStudioComponent_studioComponentId,+    deleteStudioComponent_studioId,+    deleteStudioComponentResponse_studioComponent,+    deleteStudioComponentResponse_httpStatus,++    -- ** DeleteStudioMember+    deleteStudioMember_clientToken,+    deleteStudioMember_principalId,+    deleteStudioMember_studioId,+    deleteStudioMemberResponse_httpStatus,++    -- ** GetEula+    getEula_eulaId,+    getEulaResponse_eula,+    getEulaResponse_httpStatus,++    -- ** GetLaunchProfile+    getLaunchProfile_launchProfileId,+    getLaunchProfile_studioId,+    getLaunchProfileResponse_launchProfile,+    getLaunchProfileResponse_httpStatus,++    -- ** GetLaunchProfileDetails+    getLaunchProfileDetails_launchProfileId,+    getLaunchProfileDetails_studioId,+    getLaunchProfileDetailsResponse_launchProfile,+    getLaunchProfileDetailsResponse_streamingImages,+    getLaunchProfileDetailsResponse_studioComponentSummaries,+    getLaunchProfileDetailsResponse_httpStatus,++    -- ** GetLaunchProfileInitialization+    getLaunchProfileInitialization_launchProfileId,+    getLaunchProfileInitialization_launchProfileProtocolVersions,+    getLaunchProfileInitialization_launchPurpose,+    getLaunchProfileInitialization_platform,+    getLaunchProfileInitialization_studioId,+    getLaunchProfileInitializationResponse_launchProfileInitialization,+    getLaunchProfileInitializationResponse_httpStatus,++    -- ** GetLaunchProfileMember+    getLaunchProfileMember_launchProfileId,+    getLaunchProfileMember_principalId,+    getLaunchProfileMember_studioId,+    getLaunchProfileMemberResponse_member,+    getLaunchProfileMemberResponse_httpStatus,++    -- ** GetStreamingImage+    getStreamingImage_streamingImageId,+    getStreamingImage_studioId,+    getStreamingImageResponse_streamingImage,+    getStreamingImageResponse_httpStatus,++    -- ** GetStreamingSession+    getStreamingSession_sessionId,+    getStreamingSession_studioId,+    getStreamingSessionResponse_session,+    getStreamingSessionResponse_httpStatus,++    -- ** GetStreamingSessionBackup+    getStreamingSessionBackup_backupId,+    getStreamingSessionBackup_studioId,+    getStreamingSessionBackupResponse_streamingSessionBackup,+    getStreamingSessionBackupResponse_httpStatus,++    -- ** GetStreamingSessionStream+    getStreamingSessionStream_sessionId,+    getStreamingSessionStream_streamId,+    getStreamingSessionStream_studioId,+    getStreamingSessionStreamResponse_stream,+    getStreamingSessionStreamResponse_httpStatus,++    -- ** GetStudio+    getStudio_studioId,+    getStudioResponse_httpStatus,+    getStudioResponse_studio,++    -- ** GetStudioComponent+    getStudioComponent_studioComponentId,+    getStudioComponent_studioId,+    getStudioComponentResponse_studioComponent,+    getStudioComponentResponse_httpStatus,++    -- ** GetStudioMember+    getStudioMember_principalId,+    getStudioMember_studioId,+    getStudioMemberResponse_member,+    getStudioMemberResponse_httpStatus,++    -- ** ListEulaAcceptances+    listEulaAcceptances_eulaIds,+    listEulaAcceptances_nextToken,+    listEulaAcceptances_studioId,+    listEulaAcceptancesResponse_eulaAcceptances,+    listEulaAcceptancesResponse_nextToken,+    listEulaAcceptancesResponse_httpStatus,++    -- ** ListEulas+    listEulas_eulaIds,+    listEulas_nextToken,+    listEulasResponse_eulas,+    listEulasResponse_nextToken,+    listEulasResponse_httpStatus,++    -- ** ListLaunchProfileMembers+    listLaunchProfileMembers_maxResults,+    listLaunchProfileMembers_nextToken,+    listLaunchProfileMembers_launchProfileId,+    listLaunchProfileMembers_studioId,+    listLaunchProfileMembersResponse_members,+    listLaunchProfileMembersResponse_nextToken,+    listLaunchProfileMembersResponse_httpStatus,++    -- ** ListLaunchProfiles+    listLaunchProfiles_maxResults,+    listLaunchProfiles_nextToken,+    listLaunchProfiles_principalId,+    listLaunchProfiles_states,+    listLaunchProfiles_studioId,+    listLaunchProfilesResponse_launchProfiles,+    listLaunchProfilesResponse_nextToken,+    listLaunchProfilesResponse_httpStatus,++    -- ** ListStreamingImages+    listStreamingImages_nextToken,+    listStreamingImages_owner,+    listStreamingImages_studioId,+    listStreamingImagesResponse_nextToken,+    listStreamingImagesResponse_streamingImages,+    listStreamingImagesResponse_httpStatus,++    -- ** ListStreamingSessionBackups+    listStreamingSessionBackups_nextToken,+    listStreamingSessionBackups_ownedBy,+    listStreamingSessionBackups_studioId,+    listStreamingSessionBackupsResponse_nextToken,+    listStreamingSessionBackupsResponse_streamingSessionBackups,+    listStreamingSessionBackupsResponse_httpStatus,++    -- ** ListStreamingSessions+    listStreamingSessions_createdBy,+    listStreamingSessions_nextToken,+    listStreamingSessions_ownedBy,+    listStreamingSessions_sessionIds,+    listStreamingSessions_studioId,+    listStreamingSessionsResponse_nextToken,+    listStreamingSessionsResponse_sessions,+    listStreamingSessionsResponse_httpStatus,++    -- ** ListStudioComponents+    listStudioComponents_maxResults,+    listStudioComponents_nextToken,+    listStudioComponents_states,+    listStudioComponents_types,+    listStudioComponents_studioId,+    listStudioComponentsResponse_nextToken,+    listStudioComponentsResponse_studioComponents,+    listStudioComponentsResponse_httpStatus,++    -- ** ListStudioMembers+    listStudioMembers_maxResults,+    listStudioMembers_nextToken,+    listStudioMembers_studioId,+    listStudioMembersResponse_members,+    listStudioMembersResponse_nextToken,+    listStudioMembersResponse_httpStatus,++    -- ** ListStudios+    listStudios_nextToken,+    listStudiosResponse_nextToken,+    listStudiosResponse_httpStatus,+    listStudiosResponse_studios,++    -- ** ListTagsForResource+    listTagsForResource_resourceArn,+    listTagsForResourceResponse_tags,+    listTagsForResourceResponse_httpStatus,++    -- ** PutLaunchProfileMembers+    putLaunchProfileMembers_clientToken,+    putLaunchProfileMembers_identityStoreId,+    putLaunchProfileMembers_launchProfileId,+    putLaunchProfileMembers_members,+    putLaunchProfileMembers_studioId,+    putLaunchProfileMembersResponse_httpStatus,++    -- ** PutStudioMembers+    putStudioMembers_clientToken,+    putStudioMembers_identityStoreId,+    putStudioMembers_members,+    putStudioMembers_studioId,+    putStudioMembersResponse_httpStatus,++    -- ** StartStreamingSession+    startStreamingSession_backupId,+    startStreamingSession_clientToken,+    startStreamingSession_sessionId,+    startStreamingSession_studioId,+    startStreamingSessionResponse_session,+    startStreamingSessionResponse_httpStatus,++    -- ** StartStudioSSOConfigurationRepair+    startStudioSSOConfigurationRepair_clientToken,+    startStudioSSOConfigurationRepair_studioId,+    startStudioSSOConfigurationRepairResponse_httpStatus,+    startStudioSSOConfigurationRepairResponse_studio,++    -- ** StopStreamingSession+    stopStreamingSession_clientToken,+    stopStreamingSession_volumeRetentionMode,+    stopStreamingSession_sessionId,+    stopStreamingSession_studioId,+    stopStreamingSessionResponse_session,+    stopStreamingSessionResponse_httpStatus,++    -- ** TagResource+    tagResource_tags,+    tagResource_resourceArn,+    tagResourceResponse_httpStatus,++    -- ** UntagResource+    untagResource_resourceArn,+    untagResource_tagKeys,+    untagResourceResponse_httpStatus,++    -- ** UpdateLaunchProfile+    updateLaunchProfile_clientToken,+    updateLaunchProfile_description,+    updateLaunchProfile_launchProfileProtocolVersions,+    updateLaunchProfile_name,+    updateLaunchProfile_streamConfiguration,+    updateLaunchProfile_studioComponentIds,+    updateLaunchProfile_launchProfileId,+    updateLaunchProfile_studioId,+    updateLaunchProfileResponse_launchProfile,+    updateLaunchProfileResponse_httpStatus,++    -- ** UpdateLaunchProfileMember+    updateLaunchProfileMember_clientToken,+    updateLaunchProfileMember_launchProfileId,+    updateLaunchProfileMember_persona,+    updateLaunchProfileMember_principalId,+    updateLaunchProfileMember_studioId,+    updateLaunchProfileMemberResponse_member,+    updateLaunchProfileMemberResponse_httpStatus,++    -- ** UpdateStreamingImage+    updateStreamingImage_clientToken,+    updateStreamingImage_description,+    updateStreamingImage_name,+    updateStreamingImage_streamingImageId,+    updateStreamingImage_studioId,+    updateStreamingImageResponse_streamingImage,+    updateStreamingImageResponse_httpStatus,++    -- ** UpdateStudio+    updateStudio_adminRoleArn,+    updateStudio_clientToken,+    updateStudio_displayName,+    updateStudio_userRoleArn,+    updateStudio_studioId,+    updateStudioResponse_httpStatus,+    updateStudioResponse_studio,++    -- ** UpdateStudioComponent+    updateStudioComponent_clientToken,+    updateStudioComponent_configuration,+    updateStudioComponent_description,+    updateStudioComponent_ec2SecurityGroupIds,+    updateStudioComponent_initializationScripts,+    updateStudioComponent_name,+    updateStudioComponent_runtimeRoleArn,+    updateStudioComponent_scriptParameters,+    updateStudioComponent_secureInitializationRoleArn,+    updateStudioComponent_subtype,+    updateStudioComponent_type,+    updateStudioComponent_studioComponentId,+    updateStudioComponent_studioId,+    updateStudioComponentResponse_studioComponent,+    updateStudioComponentResponse_httpStatus,++    -- * Types++    -- ** ActiveDirectoryComputerAttribute+    activeDirectoryComputerAttribute_name,+    activeDirectoryComputerAttribute_value,++    -- ** ActiveDirectoryConfiguration+    activeDirectoryConfiguration_computerAttributes,+    activeDirectoryConfiguration_directoryId,+    activeDirectoryConfiguration_organizationalUnitDistinguishedName,++    -- ** ComputeFarmConfiguration+    computeFarmConfiguration_activeDirectoryUser,+    computeFarmConfiguration_endpoint,++    -- ** Eula+    eula_content,+    eula_createdAt,+    eula_eulaId,+    eula_name,+    eula_updatedAt,++    -- ** EulaAcceptance+    eulaAcceptance_acceptedAt,+    eulaAcceptance_acceptedBy,+    eulaAcceptance_accepteeId,+    eulaAcceptance_eulaAcceptanceId,+    eulaAcceptance_eulaId,++    -- ** LaunchProfile+    launchProfile_arn,+    launchProfile_createdAt,+    launchProfile_createdBy,+    launchProfile_description,+    launchProfile_ec2SubnetIds,+    launchProfile_launchProfileId,+    launchProfile_launchProfileProtocolVersions,+    launchProfile_name,+    launchProfile_state,+    launchProfile_statusCode,+    launchProfile_statusMessage,+    launchProfile_streamConfiguration,+    launchProfile_studioComponentIds,+    launchProfile_tags,+    launchProfile_updatedAt,+    launchProfile_updatedBy,+    launchProfile_validationResults,++    -- ** LaunchProfileInitialization+    launchProfileInitialization_activeDirectory,+    launchProfileInitialization_ec2SecurityGroupIds,+    launchProfileInitialization_launchProfileId,+    launchProfileInitialization_launchProfileProtocolVersion,+    launchProfileInitialization_launchPurpose,+    launchProfileInitialization_name,+    launchProfileInitialization_platform,+    launchProfileInitialization_systemInitializationScripts,+    launchProfileInitialization_userInitializationScripts,++    -- ** LaunchProfileInitializationActiveDirectory+    launchProfileInitializationActiveDirectory_computerAttributes,+    launchProfileInitializationActiveDirectory_directoryId,+    launchProfileInitializationActiveDirectory_directoryName,+    launchProfileInitializationActiveDirectory_dnsIpAddresses,+    launchProfileInitializationActiveDirectory_organizationalUnitDistinguishedName,+    launchProfileInitializationActiveDirectory_studioComponentId,+    launchProfileInitializationActiveDirectory_studioComponentName,++    -- ** LaunchProfileInitializationScript+    launchProfileInitializationScript_runtimeRoleArn,+    launchProfileInitializationScript_script,+    launchProfileInitializationScript_secureInitializationRoleArn,+    launchProfileInitializationScript_studioComponentId,+    launchProfileInitializationScript_studioComponentName,++    -- ** LaunchProfileMembership+    launchProfileMembership_identityStoreId,+    launchProfileMembership_persona,+    launchProfileMembership_principalId,+    launchProfileMembership_sid,++    -- ** LicenseServiceConfiguration+    licenseServiceConfiguration_endpoint,++    -- ** NewLaunchProfileMember+    newLaunchProfileMember_persona,+    newLaunchProfileMember_principalId,++    -- ** NewStudioMember+    newStudioMember_persona,+    newStudioMember_principalId,++    -- ** ScriptParameterKeyValue+    scriptParameterKeyValue_key,+    scriptParameterKeyValue_value,++    -- ** SharedFileSystemConfiguration+    sharedFileSystemConfiguration_endpoint,+    sharedFileSystemConfiguration_fileSystemId,+    sharedFileSystemConfiguration_linuxMountPoint,+    sharedFileSystemConfiguration_shareName,+    sharedFileSystemConfiguration_windowsMountDrive,++    -- ** StreamConfiguration+    streamConfiguration_automaticTerminationMode,+    streamConfiguration_maxSessionLengthInMinutes,+    streamConfiguration_maxStoppedSessionLengthInMinutes,+    streamConfiguration_sessionBackup,+    streamConfiguration_sessionPersistenceMode,+    streamConfiguration_sessionStorage,+    streamConfiguration_volumeConfiguration,+    streamConfiguration_clipboardMode,+    streamConfiguration_ec2InstanceTypes,+    streamConfiguration_streamingImageIds,++    -- ** StreamConfigurationCreate+    streamConfigurationCreate_automaticTerminationMode,+    streamConfigurationCreate_maxSessionLengthInMinutes,+    streamConfigurationCreate_maxStoppedSessionLengthInMinutes,+    streamConfigurationCreate_sessionBackup,+    streamConfigurationCreate_sessionPersistenceMode,+    streamConfigurationCreate_sessionStorage,+    streamConfigurationCreate_volumeConfiguration,+    streamConfigurationCreate_clipboardMode,+    streamConfigurationCreate_ec2InstanceTypes,+    streamConfigurationCreate_streamingImageIds,++    -- ** StreamConfigurationSessionBackup+    streamConfigurationSessionBackup_maxBackupsToRetain,+    streamConfigurationSessionBackup_mode,++    -- ** StreamConfigurationSessionStorage+    streamConfigurationSessionStorage_root,+    streamConfigurationSessionStorage_mode,++    -- ** StreamingImage+    streamingImage_arn,+    streamingImage_description,+    streamingImage_ec2ImageId,+    streamingImage_encryptionConfiguration,+    streamingImage_eulaIds,+    streamingImage_name,+    streamingImage_owner,+    streamingImage_platform,+    streamingImage_state,+    streamingImage_statusCode,+    streamingImage_statusMessage,+    streamingImage_streamingImageId,+    streamingImage_tags,++    -- ** StreamingImageEncryptionConfiguration+    streamingImageEncryptionConfiguration_keyArn,+    streamingImageEncryptionConfiguration_keyType,++    -- ** StreamingSession+    streamingSession_arn,+    streamingSession_automaticTerminationMode,+    streamingSession_backupMode,+    streamingSession_createdAt,+    streamingSession_createdBy,+    streamingSession_ec2InstanceType,+    streamingSession_launchProfileId,+    streamingSession_maxBackupsToRetain,+    streamingSession_ownedBy,+    streamingSession_sessionId,+    streamingSession_sessionPersistenceMode,+    streamingSession_startedAt,+    streamingSession_startedBy,+    streamingSession_startedFromBackupId,+    streamingSession_state,+    streamingSession_statusCode,+    streamingSession_statusMessage,+    streamingSession_stopAt,+    streamingSession_stoppedAt,+    streamingSession_stoppedBy,+    streamingSession_streamingImageId,+    streamingSession_tags,+    streamingSession_terminateAt,+    streamingSession_updatedAt,+    streamingSession_updatedBy,+    streamingSession_volumeConfiguration,+    streamingSession_volumeRetentionMode,++    -- ** StreamingSessionBackup+    streamingSessionBackup_arn,+    streamingSessionBackup_backupId,+    streamingSessionBackup_createdAt,+    streamingSessionBackup_launchProfileId,+    streamingSessionBackup_ownedBy,+    streamingSessionBackup_sessionId,+    streamingSessionBackup_state,+    streamingSessionBackup_statusCode,+    streamingSessionBackup_statusMessage,+    streamingSessionBackup_tags,++    -- ** StreamingSessionStorageRoot+    streamingSessionStorageRoot_linux,+    streamingSessionStorageRoot_windows,++    -- ** StreamingSessionStream+    streamingSessionStream_createdAt,+    streamingSessionStream_createdBy,+    streamingSessionStream_expiresAt,+    streamingSessionStream_ownedBy,+    streamingSessionStream_state,+    streamingSessionStream_statusCode,+    streamingSessionStream_streamId,+    streamingSessionStream_url,++    -- ** Studio+    studio_adminRoleArn,+    studio_arn,+    studio_createdAt,+    studio_displayName,+    studio_homeRegion,+    studio_ssoClientId,+    studio_state,+    studio_statusCode,+    studio_statusMessage,+    studio_studioEncryptionConfiguration,+    studio_studioId,+    studio_studioName,+    studio_studioUrl,+    studio_tags,+    studio_updatedAt,+    studio_userRoleArn,++    -- ** StudioComponent+    studioComponent_arn,+    studioComponent_configuration,+    studioComponent_createdAt,+    studioComponent_createdBy,+    studioComponent_description,+    studioComponent_ec2SecurityGroupIds,+    studioComponent_initializationScripts,+    studioComponent_name,+    studioComponent_runtimeRoleArn,+    studioComponent_scriptParameters,+    studioComponent_secureInitializationRoleArn,+    studioComponent_state,+    studioComponent_statusCode,+    studioComponent_statusMessage,+    studioComponent_studioComponentId,+    studioComponent_subtype,+    studioComponent_tags,+    studioComponent_type,+    studioComponent_updatedAt,+    studioComponent_updatedBy,++    -- ** StudioComponentConfiguration+    studioComponentConfiguration_activeDirectoryConfiguration,+    studioComponentConfiguration_computeFarmConfiguration,+    studioComponentConfiguration_licenseServiceConfiguration,+    studioComponentConfiguration_sharedFileSystemConfiguration,++    -- ** StudioComponentInitializationScript+    studioComponentInitializationScript_launchProfileProtocolVersion,+    studioComponentInitializationScript_platform,+    studioComponentInitializationScript_runContext,+    studioComponentInitializationScript_script,++    -- ** StudioComponentSummary+    studioComponentSummary_createdAt,+    studioComponentSummary_createdBy,+    studioComponentSummary_description,+    studioComponentSummary_name,+    studioComponentSummary_studioComponentId,+    studioComponentSummary_subtype,+    studioComponentSummary_type,+    studioComponentSummary_updatedAt,+    studioComponentSummary_updatedBy,++    -- ** StudioEncryptionConfiguration+    studioEncryptionConfiguration_keyArn,+    studioEncryptionConfiguration_keyType,++    -- ** StudioMembership+    studioMembership_identityStoreId,+    studioMembership_persona,+    studioMembership_principalId,+    studioMembership_sid,++    -- ** ValidationResult+    validationResult_state,+    validationResult_statusCode,+    validationResult_statusMessage,+    validationResult_type,++    -- ** VolumeConfiguration+    volumeConfiguration_iops,+    volumeConfiguration_size,+    volumeConfiguration_throughput,+  )+where++import Amazonka.Nimble.AcceptEulas+import Amazonka.Nimble.CreateLaunchProfile+import Amazonka.Nimble.CreateStreamingImage+import Amazonka.Nimble.CreateStreamingSession+import Amazonka.Nimble.CreateStreamingSessionStream+import Amazonka.Nimble.CreateStudio+import Amazonka.Nimble.CreateStudioComponent+import Amazonka.Nimble.DeleteLaunchProfile+import Amazonka.Nimble.DeleteLaunchProfileMember+import Amazonka.Nimble.DeleteStreamingImage+import Amazonka.Nimble.DeleteStreamingSession+import Amazonka.Nimble.DeleteStudio+import Amazonka.Nimble.DeleteStudioComponent+import Amazonka.Nimble.DeleteStudioMember+import Amazonka.Nimble.GetEula+import Amazonka.Nimble.GetLaunchProfile+import Amazonka.Nimble.GetLaunchProfileDetails+import Amazonka.Nimble.GetLaunchProfileInitialization+import Amazonka.Nimble.GetLaunchProfileMember+import Amazonka.Nimble.GetStreamingImage+import Amazonka.Nimble.GetStreamingSession+import Amazonka.Nimble.GetStreamingSessionBackup+import Amazonka.Nimble.GetStreamingSessionStream+import Amazonka.Nimble.GetStudio+import Amazonka.Nimble.GetStudioComponent+import Amazonka.Nimble.GetStudioMember+import Amazonka.Nimble.ListEulaAcceptances+import Amazonka.Nimble.ListEulas+import Amazonka.Nimble.ListLaunchProfileMembers+import Amazonka.Nimble.ListLaunchProfiles+import Amazonka.Nimble.ListStreamingImages+import Amazonka.Nimble.ListStreamingSessionBackups+import Amazonka.Nimble.ListStreamingSessions+import Amazonka.Nimble.ListStudioComponents+import Amazonka.Nimble.ListStudioMembers+import Amazonka.Nimble.ListStudios+import Amazonka.Nimble.ListTagsForResource+import Amazonka.Nimble.PutLaunchProfileMembers+import Amazonka.Nimble.PutStudioMembers+import Amazonka.Nimble.StartStreamingSession+import Amazonka.Nimble.StartStudioSSOConfigurationRepair+import Amazonka.Nimble.StopStreamingSession+import Amazonka.Nimble.TagResource+import Amazonka.Nimble.Types.ActiveDirectoryComputerAttribute+import Amazonka.Nimble.Types.ActiveDirectoryConfiguration+import Amazonka.Nimble.Types.ComputeFarmConfiguration+import Amazonka.Nimble.Types.Eula+import Amazonka.Nimble.Types.EulaAcceptance+import Amazonka.Nimble.Types.LaunchProfile+import Amazonka.Nimble.Types.LaunchProfileInitialization+import Amazonka.Nimble.Types.LaunchProfileInitializationActiveDirectory+import Amazonka.Nimble.Types.LaunchProfileInitializationScript+import Amazonka.Nimble.Types.LaunchProfileMembership+import Amazonka.Nimble.Types.LicenseServiceConfiguration+import Amazonka.Nimble.Types.NewLaunchProfileMember+import Amazonka.Nimble.Types.NewStudioMember+import Amazonka.Nimble.Types.ScriptParameterKeyValue+import Amazonka.Nimble.Types.SharedFileSystemConfiguration+import Amazonka.Nimble.Types.StreamConfiguration+import Amazonka.Nimble.Types.StreamConfigurationCreate+import Amazonka.Nimble.Types.StreamConfigurationSessionBackup+import Amazonka.Nimble.Types.StreamConfigurationSessionStorage+import Amazonka.Nimble.Types.StreamingImage+import Amazonka.Nimble.Types.StreamingImageEncryptionConfiguration+import Amazonka.Nimble.Types.StreamingSession+import Amazonka.Nimble.Types.StreamingSessionBackup+import Amazonka.Nimble.Types.StreamingSessionStorageRoot+import Amazonka.Nimble.Types.StreamingSessionStream+import Amazonka.Nimble.Types.Studio+import Amazonka.Nimble.Types.StudioComponent+import Amazonka.Nimble.Types.StudioComponentConfiguration+import Amazonka.Nimble.Types.StudioComponentInitializationScript+import Amazonka.Nimble.Types.StudioComponentSummary+import Amazonka.Nimble.Types.StudioEncryptionConfiguration+import Amazonka.Nimble.Types.StudioMembership+import Amazonka.Nimble.Types.ValidationResult+import Amazonka.Nimble.Types.VolumeConfiguration+import Amazonka.Nimble.UntagResource+import Amazonka.Nimble.UpdateLaunchProfile+import Amazonka.Nimble.UpdateLaunchProfileMember+import Amazonka.Nimble.UpdateStreamingImage+import Amazonka.Nimble.UpdateStudio+import Amazonka.Nimble.UpdateStudioComponent
+ gen/Amazonka/Nimble/ListEulaAcceptances.hs view
@@ -0,0 +1,241 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Nimble.ListEulaAcceptances+-- 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 EULA acceptances.+--+-- This operation returns paginated results.+module Amazonka.Nimble.ListEulaAcceptances+  ( -- * Creating a Request+    ListEulaAcceptances (..),+    newListEulaAcceptances,++    -- * Request Lenses+    listEulaAcceptances_eulaIds,+    listEulaAcceptances_nextToken,+    listEulaAcceptances_studioId,++    -- * Destructuring the Response+    ListEulaAcceptancesResponse (..),+    newListEulaAcceptancesResponse,++    -- * Response Lenses+    listEulaAcceptancesResponse_eulaAcceptances,+    listEulaAcceptancesResponse_nextToken,+    listEulaAcceptancesResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Nimble.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListEulaAcceptances' smart constructor.+data ListEulaAcceptances = ListEulaAcceptances'+  { -- | The list of EULA IDs that have been previously accepted.+    eulaIds :: Prelude.Maybe [Prelude.Text],+    -- | The token for the next set of results, or null if there are no more+    -- results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The studio ID.+    studioId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListEulaAcceptances' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'eulaIds', 'listEulaAcceptances_eulaIds' - The list of EULA IDs that have been previously accepted.+--+-- 'nextToken', 'listEulaAcceptances_nextToken' - The token for the next set of results, or null if there are no more+-- results.+--+-- 'studioId', 'listEulaAcceptances_studioId' - The studio ID.+newListEulaAcceptances ::+  -- | 'studioId'+  Prelude.Text ->+  ListEulaAcceptances+newListEulaAcceptances pStudioId_ =+  ListEulaAcceptances'+    { eulaIds = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      studioId = pStudioId_+    }++-- | The list of EULA IDs that have been previously accepted.+listEulaAcceptances_eulaIds :: Lens.Lens' ListEulaAcceptances (Prelude.Maybe [Prelude.Text])+listEulaAcceptances_eulaIds = Lens.lens (\ListEulaAcceptances' {eulaIds} -> eulaIds) (\s@ListEulaAcceptances' {} a -> s {eulaIds = a} :: ListEulaAcceptances) Prelude.. Lens.mapping Lens.coerced++-- | The token for the next set of results, or null if there are no more+-- results.+listEulaAcceptances_nextToken :: Lens.Lens' ListEulaAcceptances (Prelude.Maybe Prelude.Text)+listEulaAcceptances_nextToken = Lens.lens (\ListEulaAcceptances' {nextToken} -> nextToken) (\s@ListEulaAcceptances' {} a -> s {nextToken = a} :: ListEulaAcceptances)++-- | The studio ID.+listEulaAcceptances_studioId :: Lens.Lens' ListEulaAcceptances Prelude.Text+listEulaAcceptances_studioId = Lens.lens (\ListEulaAcceptances' {studioId} -> studioId) (\s@ListEulaAcceptances' {} a -> s {studioId = a} :: ListEulaAcceptances)++instance Core.AWSPager ListEulaAcceptances where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listEulaAcceptancesResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listEulaAcceptancesResponse_eulaAcceptances+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listEulaAcceptances_nextToken+          Lens..~ rs+          Lens.^? listEulaAcceptancesResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListEulaAcceptances where+  type+    AWSResponse ListEulaAcceptances =+      ListEulaAcceptancesResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListEulaAcceptancesResponse'+            Prelude.<$> ( x+                            Data..?> "eulaAcceptances"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListEulaAcceptances where+  hashWithSalt _salt ListEulaAcceptances' {..} =+    _salt+      `Prelude.hashWithSalt` eulaIds+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` studioId++instance Prelude.NFData ListEulaAcceptances where+  rnf ListEulaAcceptances' {..} =+    Prelude.rnf eulaIds+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf studioId++instance Data.ToHeaders ListEulaAcceptances where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ListEulaAcceptances where+  toPath ListEulaAcceptances' {..} =+    Prelude.mconcat+      [ "/2020-08-01/studios/",+        Data.toBS studioId,+        "/eula-acceptances"+      ]++instance Data.ToQuery ListEulaAcceptances where+  toQuery ListEulaAcceptances' {..} =+    Prelude.mconcat+      [ "eulaIds"+          Data.=: Data.toQuery+            (Data.toQueryList "member" Prelude.<$> eulaIds),+        "nextToken" Data.=: nextToken+      ]++-- | /See:/ 'newListEulaAcceptancesResponse' smart constructor.+data ListEulaAcceptancesResponse = ListEulaAcceptancesResponse'+  { -- | A collection of EULA acceptances.+    eulaAcceptances :: Prelude.Maybe [EulaAcceptance],+    -- | The token for the next set of results, or null if there are no more+    -- results.+    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 'ListEulaAcceptancesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'eulaAcceptances', 'listEulaAcceptancesResponse_eulaAcceptances' - A collection of EULA acceptances.+--+-- 'nextToken', 'listEulaAcceptancesResponse_nextToken' - The token for the next set of results, or null if there are no more+-- results.+--+-- 'httpStatus', 'listEulaAcceptancesResponse_httpStatus' - The response's http status code.+newListEulaAcceptancesResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListEulaAcceptancesResponse+newListEulaAcceptancesResponse pHttpStatus_ =+  ListEulaAcceptancesResponse'+    { eulaAcceptances =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | A collection of EULA acceptances.+listEulaAcceptancesResponse_eulaAcceptances :: Lens.Lens' ListEulaAcceptancesResponse (Prelude.Maybe [EulaAcceptance])+listEulaAcceptancesResponse_eulaAcceptances = Lens.lens (\ListEulaAcceptancesResponse' {eulaAcceptances} -> eulaAcceptances) (\s@ListEulaAcceptancesResponse' {} a -> s {eulaAcceptances = a} :: ListEulaAcceptancesResponse) Prelude.. Lens.mapping Lens.coerced++-- | The token for the next set of results, or null if there are no more+-- results.+listEulaAcceptancesResponse_nextToken :: Lens.Lens' ListEulaAcceptancesResponse (Prelude.Maybe Prelude.Text)+listEulaAcceptancesResponse_nextToken = Lens.lens (\ListEulaAcceptancesResponse' {nextToken} -> nextToken) (\s@ListEulaAcceptancesResponse' {} a -> s {nextToken = a} :: ListEulaAcceptancesResponse)++-- | The response's http status code.+listEulaAcceptancesResponse_httpStatus :: Lens.Lens' ListEulaAcceptancesResponse Prelude.Int+listEulaAcceptancesResponse_httpStatus = Lens.lens (\ListEulaAcceptancesResponse' {httpStatus} -> httpStatus) (\s@ListEulaAcceptancesResponse' {} a -> s {httpStatus = a} :: ListEulaAcceptancesResponse)++instance Prelude.NFData ListEulaAcceptancesResponse where+  rnf ListEulaAcceptancesResponse' {..} =+    Prelude.rnf eulaAcceptances+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Nimble/ListEulas.hs view
@@ -0,0 +1,216 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Nimble.ListEulas+-- 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 EULAs.+--+-- This operation returns paginated results.+module Amazonka.Nimble.ListEulas+  ( -- * Creating a Request+    ListEulas (..),+    newListEulas,++    -- * Request Lenses+    listEulas_eulaIds,+    listEulas_nextToken,++    -- * Destructuring the Response+    ListEulasResponse (..),+    newListEulasResponse,++    -- * Response Lenses+    listEulasResponse_eulas,+    listEulasResponse_nextToken,+    listEulasResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Nimble.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListEulas' smart constructor.+data ListEulas = ListEulas'+  { -- | The list of EULA IDs that should be returned+    eulaIds :: Prelude.Maybe [Prelude.Text],+    -- | The token for the next set of results, or null if there are no more+    -- results.+    nextToken :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListEulas' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'eulaIds', 'listEulas_eulaIds' - The list of EULA IDs that should be returned+--+-- 'nextToken', 'listEulas_nextToken' - The token for the next set of results, or null if there are no more+-- results.+newListEulas ::+  ListEulas+newListEulas =+  ListEulas'+    { eulaIds = Prelude.Nothing,+      nextToken = Prelude.Nothing+    }++-- | The list of EULA IDs that should be returned+listEulas_eulaIds :: Lens.Lens' ListEulas (Prelude.Maybe [Prelude.Text])+listEulas_eulaIds = Lens.lens (\ListEulas' {eulaIds} -> eulaIds) (\s@ListEulas' {} a -> s {eulaIds = a} :: ListEulas) Prelude.. Lens.mapping Lens.coerced++-- | The token for the next set of results, or null if there are no more+-- results.+listEulas_nextToken :: Lens.Lens' ListEulas (Prelude.Maybe Prelude.Text)+listEulas_nextToken = Lens.lens (\ListEulas' {nextToken} -> nextToken) (\s@ListEulas' {} a -> s {nextToken = a} :: ListEulas)++instance Core.AWSPager ListEulas where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listEulasResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listEulasResponse_eulas+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listEulas_nextToken+          Lens..~ rs+          Lens.^? listEulasResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListEulas where+  type AWSResponse ListEulas = ListEulasResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListEulasResponse'+            Prelude.<$> (x Data..?> "eulas" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListEulas where+  hashWithSalt _salt ListEulas' {..} =+    _salt+      `Prelude.hashWithSalt` eulaIds+      `Prelude.hashWithSalt` nextToken++instance Prelude.NFData ListEulas where+  rnf ListEulas' {..} =+    Prelude.rnf eulaIds+      `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders ListEulas where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ListEulas where+  toPath = Prelude.const "/2020-08-01/eulas"++instance Data.ToQuery ListEulas where+  toQuery ListEulas' {..} =+    Prelude.mconcat+      [ "eulaIds"+          Data.=: Data.toQuery+            (Data.toQueryList "member" Prelude.<$> eulaIds),+        "nextToken" Data.=: nextToken+      ]++-- | /See:/ 'newListEulasResponse' smart constructor.+data ListEulasResponse = ListEulasResponse'+  { -- | A collection of EULA resources.+    eulas :: Prelude.Maybe [Eula],+    -- | The token for the next set of results, or null if there are no more+    -- results.+    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 'ListEulasResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'eulas', 'listEulasResponse_eulas' - A collection of EULA resources.+--+-- 'nextToken', 'listEulasResponse_nextToken' - The token for the next set of results, or null if there are no more+-- results.+--+-- 'httpStatus', 'listEulasResponse_httpStatus' - The response's http status code.+newListEulasResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListEulasResponse+newListEulasResponse pHttpStatus_ =+  ListEulasResponse'+    { eulas = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | A collection of EULA resources.+listEulasResponse_eulas :: Lens.Lens' ListEulasResponse (Prelude.Maybe [Eula])+listEulasResponse_eulas = Lens.lens (\ListEulasResponse' {eulas} -> eulas) (\s@ListEulasResponse' {} a -> s {eulas = a} :: ListEulasResponse) Prelude.. Lens.mapping Lens.coerced++-- | The token for the next set of results, or null if there are no more+-- results.+listEulasResponse_nextToken :: Lens.Lens' ListEulasResponse (Prelude.Maybe Prelude.Text)+listEulasResponse_nextToken = Lens.lens (\ListEulasResponse' {nextToken} -> nextToken) (\s@ListEulasResponse' {} a -> s {nextToken = a} :: ListEulasResponse)++-- | The response's http status code.+listEulasResponse_httpStatus :: Lens.Lens' ListEulasResponse Prelude.Int+listEulasResponse_httpStatus = Lens.lens (\ListEulasResponse' {httpStatus} -> httpStatus) (\s@ListEulasResponse' {} a -> s {httpStatus = a} :: ListEulasResponse)++instance Prelude.NFData ListEulasResponse where+  rnf ListEulasResponse' {..} =+    Prelude.rnf eulas+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Nimble/ListLaunchProfileMembers.hs view
@@ -0,0 +1,261 @@+{-# 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.Nimble.ListLaunchProfileMembers+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Get all users in a given launch profile membership.+--+-- This operation returns paginated results.+module Amazonka.Nimble.ListLaunchProfileMembers+  ( -- * Creating a Request+    ListLaunchProfileMembers (..),+    newListLaunchProfileMembers,++    -- * Request Lenses+    listLaunchProfileMembers_maxResults,+    listLaunchProfileMembers_nextToken,+    listLaunchProfileMembers_launchProfileId,+    listLaunchProfileMembers_studioId,++    -- * Destructuring the Response+    ListLaunchProfileMembersResponse (..),+    newListLaunchProfileMembersResponse,++    -- * Response Lenses+    listLaunchProfileMembersResponse_members,+    listLaunchProfileMembersResponse_nextToken,+    listLaunchProfileMembersResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Nimble.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListLaunchProfileMembers' smart constructor.+data ListLaunchProfileMembers = ListLaunchProfileMembers'+  { -- | The max number of results to return in the response.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | The token for the next set of results, or null if there are no more+    -- results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The ID of the launch profile used to control access from the streaming+    -- session.+    launchProfileId :: Prelude.Text,+    -- | The studio ID.+    studioId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListLaunchProfileMembers' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listLaunchProfileMembers_maxResults' - The max number of results to return in the response.+--+-- 'nextToken', 'listLaunchProfileMembers_nextToken' - The token for the next set of results, or null if there are no more+-- results.+--+-- 'launchProfileId', 'listLaunchProfileMembers_launchProfileId' - The ID of the launch profile used to control access from the streaming+-- session.+--+-- 'studioId', 'listLaunchProfileMembers_studioId' - The studio ID.+newListLaunchProfileMembers ::+  -- | 'launchProfileId'+  Prelude.Text ->+  -- | 'studioId'+  Prelude.Text ->+  ListLaunchProfileMembers+newListLaunchProfileMembers+  pLaunchProfileId_+  pStudioId_ =+    ListLaunchProfileMembers'+      { maxResults =+          Prelude.Nothing,+        nextToken = Prelude.Nothing,+        launchProfileId = pLaunchProfileId_,+        studioId = pStudioId_+      }++-- | The max number of results to return in the response.+listLaunchProfileMembers_maxResults :: Lens.Lens' ListLaunchProfileMembers (Prelude.Maybe Prelude.Natural)+listLaunchProfileMembers_maxResults = Lens.lens (\ListLaunchProfileMembers' {maxResults} -> maxResults) (\s@ListLaunchProfileMembers' {} a -> s {maxResults = a} :: ListLaunchProfileMembers)++-- | The token for the next set of results, or null if there are no more+-- results.+listLaunchProfileMembers_nextToken :: Lens.Lens' ListLaunchProfileMembers (Prelude.Maybe Prelude.Text)+listLaunchProfileMembers_nextToken = Lens.lens (\ListLaunchProfileMembers' {nextToken} -> nextToken) (\s@ListLaunchProfileMembers' {} a -> s {nextToken = a} :: ListLaunchProfileMembers)++-- | The ID of the launch profile used to control access from the streaming+-- session.+listLaunchProfileMembers_launchProfileId :: Lens.Lens' ListLaunchProfileMembers Prelude.Text+listLaunchProfileMembers_launchProfileId = Lens.lens (\ListLaunchProfileMembers' {launchProfileId} -> launchProfileId) (\s@ListLaunchProfileMembers' {} a -> s {launchProfileId = a} :: ListLaunchProfileMembers)++-- | The studio ID.+listLaunchProfileMembers_studioId :: Lens.Lens' ListLaunchProfileMembers Prelude.Text+listLaunchProfileMembers_studioId = Lens.lens (\ListLaunchProfileMembers' {studioId} -> studioId) (\s@ListLaunchProfileMembers' {} a -> s {studioId = a} :: ListLaunchProfileMembers)++instance Core.AWSPager ListLaunchProfileMembers where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listLaunchProfileMembersResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listLaunchProfileMembersResponse_members+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listLaunchProfileMembers_nextToken+          Lens..~ rs+          Lens.^? listLaunchProfileMembersResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListLaunchProfileMembers where+  type+    AWSResponse ListLaunchProfileMembers =+      ListLaunchProfileMembersResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListLaunchProfileMembersResponse'+            Prelude.<$> (x Data..?> "members" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListLaunchProfileMembers where+  hashWithSalt _salt ListLaunchProfileMembers' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` launchProfileId+      `Prelude.hashWithSalt` studioId++instance Prelude.NFData ListLaunchProfileMembers where+  rnf ListLaunchProfileMembers' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf launchProfileId+      `Prelude.seq` Prelude.rnf studioId++instance Data.ToHeaders ListLaunchProfileMembers where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ListLaunchProfileMembers where+  toPath ListLaunchProfileMembers' {..} =+    Prelude.mconcat+      [ "/2020-08-01/studios/",+        Data.toBS studioId,+        "/launch-profiles/",+        Data.toBS launchProfileId,+        "/membership"+      ]++instance Data.ToQuery ListLaunchProfileMembers where+  toQuery ListLaunchProfileMembers' {..} =+    Prelude.mconcat+      [ "maxResults" Data.=: maxResults,+        "nextToken" Data.=: nextToken+      ]++-- | /See:/ 'newListLaunchProfileMembersResponse' smart constructor.+data ListLaunchProfileMembersResponse = ListLaunchProfileMembersResponse'+  { -- | A list of members.+    members :: Prelude.Maybe [LaunchProfileMembership],+    -- | The token for the next set of results, or null if there are no more+    -- results.+    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 'ListLaunchProfileMembersResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'members', 'listLaunchProfileMembersResponse_members' - A list of members.+--+-- 'nextToken', 'listLaunchProfileMembersResponse_nextToken' - The token for the next set of results, or null if there are no more+-- results.+--+-- 'httpStatus', 'listLaunchProfileMembersResponse_httpStatus' - The response's http status code.+newListLaunchProfileMembersResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListLaunchProfileMembersResponse+newListLaunchProfileMembersResponse pHttpStatus_ =+  ListLaunchProfileMembersResponse'+    { members =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | A list of members.+listLaunchProfileMembersResponse_members :: Lens.Lens' ListLaunchProfileMembersResponse (Prelude.Maybe [LaunchProfileMembership])+listLaunchProfileMembersResponse_members = Lens.lens (\ListLaunchProfileMembersResponse' {members} -> members) (\s@ListLaunchProfileMembersResponse' {} a -> s {members = a} :: ListLaunchProfileMembersResponse) Prelude.. Lens.mapping Lens.coerced++-- | The token for the next set of results, or null if there are no more+-- results.+listLaunchProfileMembersResponse_nextToken :: Lens.Lens' ListLaunchProfileMembersResponse (Prelude.Maybe Prelude.Text)+listLaunchProfileMembersResponse_nextToken = Lens.lens (\ListLaunchProfileMembersResponse' {nextToken} -> nextToken) (\s@ListLaunchProfileMembersResponse' {} a -> s {nextToken = a} :: ListLaunchProfileMembersResponse)++-- | The response's http status code.+listLaunchProfileMembersResponse_httpStatus :: Lens.Lens' ListLaunchProfileMembersResponse Prelude.Int+listLaunchProfileMembersResponse_httpStatus = Lens.lens (\ListLaunchProfileMembersResponse' {httpStatus} -> httpStatus) (\s@ListLaunchProfileMembersResponse' {} a -> s {httpStatus = a} :: ListLaunchProfileMembersResponse)++instance+  Prelude.NFData+    ListLaunchProfileMembersResponse+  where+  rnf ListLaunchProfileMembersResponse' {..} =+    Prelude.rnf members+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Nimble/ListLaunchProfiles.hs view
@@ -0,0 +1,264 @@+{-# 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.Nimble.ListLaunchProfiles+-- 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 the launch profiles a studio.+--+-- This operation returns paginated results.+module Amazonka.Nimble.ListLaunchProfiles+  ( -- * Creating a Request+    ListLaunchProfiles (..),+    newListLaunchProfiles,++    -- * Request Lenses+    listLaunchProfiles_maxResults,+    listLaunchProfiles_nextToken,+    listLaunchProfiles_principalId,+    listLaunchProfiles_states,+    listLaunchProfiles_studioId,++    -- * Destructuring the Response+    ListLaunchProfilesResponse (..),+    newListLaunchProfilesResponse,++    -- * Response Lenses+    listLaunchProfilesResponse_launchProfiles,+    listLaunchProfilesResponse_nextToken,+    listLaunchProfilesResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Nimble.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListLaunchProfiles' smart constructor.+data ListLaunchProfiles = ListLaunchProfiles'+  { -- | The max number of results to return in the response.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | The token for the next set of results, or null if there are no more+    -- results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The principal ID. This currently supports a IAM Identity Center UserId.+    principalId :: Prelude.Maybe Prelude.Text,+    -- | Filter this request to launch profiles in any of the given states.+    states :: Prelude.Maybe [LaunchProfileState],+    -- | The studio ID.+    studioId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListLaunchProfiles' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listLaunchProfiles_maxResults' - The max number of results to return in the response.+--+-- 'nextToken', 'listLaunchProfiles_nextToken' - The token for the next set of results, or null if there are no more+-- results.+--+-- 'principalId', 'listLaunchProfiles_principalId' - The principal ID. This currently supports a IAM Identity Center UserId.+--+-- 'states', 'listLaunchProfiles_states' - Filter this request to launch profiles in any of the given states.+--+-- 'studioId', 'listLaunchProfiles_studioId' - The studio ID.+newListLaunchProfiles ::+  -- | 'studioId'+  Prelude.Text ->+  ListLaunchProfiles+newListLaunchProfiles pStudioId_ =+  ListLaunchProfiles'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      principalId = Prelude.Nothing,+      states = Prelude.Nothing,+      studioId = pStudioId_+    }++-- | The max number of results to return in the response.+listLaunchProfiles_maxResults :: Lens.Lens' ListLaunchProfiles (Prelude.Maybe Prelude.Natural)+listLaunchProfiles_maxResults = Lens.lens (\ListLaunchProfiles' {maxResults} -> maxResults) (\s@ListLaunchProfiles' {} a -> s {maxResults = a} :: ListLaunchProfiles)++-- | The token for the next set of results, or null if there are no more+-- results.+listLaunchProfiles_nextToken :: Lens.Lens' ListLaunchProfiles (Prelude.Maybe Prelude.Text)+listLaunchProfiles_nextToken = Lens.lens (\ListLaunchProfiles' {nextToken} -> nextToken) (\s@ListLaunchProfiles' {} a -> s {nextToken = a} :: ListLaunchProfiles)++-- | The principal ID. This currently supports a IAM Identity Center UserId.+listLaunchProfiles_principalId :: Lens.Lens' ListLaunchProfiles (Prelude.Maybe Prelude.Text)+listLaunchProfiles_principalId = Lens.lens (\ListLaunchProfiles' {principalId} -> principalId) (\s@ListLaunchProfiles' {} a -> s {principalId = a} :: ListLaunchProfiles)++-- | Filter this request to launch profiles in any of the given states.+listLaunchProfiles_states :: Lens.Lens' ListLaunchProfiles (Prelude.Maybe [LaunchProfileState])+listLaunchProfiles_states = Lens.lens (\ListLaunchProfiles' {states} -> states) (\s@ListLaunchProfiles' {} a -> s {states = a} :: ListLaunchProfiles) Prelude.. Lens.mapping Lens.coerced++-- | The studio ID.+listLaunchProfiles_studioId :: Lens.Lens' ListLaunchProfiles Prelude.Text+listLaunchProfiles_studioId = Lens.lens (\ListLaunchProfiles' {studioId} -> studioId) (\s@ListLaunchProfiles' {} a -> s {studioId = a} :: ListLaunchProfiles)++instance Core.AWSPager ListLaunchProfiles where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listLaunchProfilesResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listLaunchProfilesResponse_launchProfiles+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listLaunchProfiles_nextToken+          Lens..~ rs+          Lens.^? listLaunchProfilesResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListLaunchProfiles where+  type+    AWSResponse ListLaunchProfiles =+      ListLaunchProfilesResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListLaunchProfilesResponse'+            Prelude.<$> (x Data..?> "launchProfiles" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListLaunchProfiles where+  hashWithSalt _salt ListLaunchProfiles' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` principalId+      `Prelude.hashWithSalt` states+      `Prelude.hashWithSalt` studioId++instance Prelude.NFData ListLaunchProfiles where+  rnf ListLaunchProfiles' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf principalId+      `Prelude.seq` Prelude.rnf states+      `Prelude.seq` Prelude.rnf studioId++instance Data.ToHeaders ListLaunchProfiles where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ListLaunchProfiles where+  toPath ListLaunchProfiles' {..} =+    Prelude.mconcat+      [ "/2020-08-01/studios/",+        Data.toBS studioId,+        "/launch-profiles"+      ]++instance Data.ToQuery ListLaunchProfiles where+  toQuery ListLaunchProfiles' {..} =+    Prelude.mconcat+      [ "maxResults" Data.=: maxResults,+        "nextToken" Data.=: nextToken,+        "principalId" Data.=: principalId,+        "states"+          Data.=: Data.toQuery+            (Data.toQueryList "member" Prelude.<$> states)+      ]++-- | /See:/ 'newListLaunchProfilesResponse' smart constructor.+data ListLaunchProfilesResponse = ListLaunchProfilesResponse'+  { -- | A collection of launch profiles.+    launchProfiles :: Prelude.Maybe [LaunchProfile],+    -- | The token for the next set of results, or null if there are no more+    -- results.+    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 'ListLaunchProfilesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'launchProfiles', 'listLaunchProfilesResponse_launchProfiles' - A collection of launch profiles.+--+-- 'nextToken', 'listLaunchProfilesResponse_nextToken' - The token for the next set of results, or null if there are no more+-- results.+--+-- 'httpStatus', 'listLaunchProfilesResponse_httpStatus' - The response's http status code.+newListLaunchProfilesResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListLaunchProfilesResponse+newListLaunchProfilesResponse pHttpStatus_ =+  ListLaunchProfilesResponse'+    { launchProfiles =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | A collection of launch profiles.+listLaunchProfilesResponse_launchProfiles :: Lens.Lens' ListLaunchProfilesResponse (Prelude.Maybe [LaunchProfile])+listLaunchProfilesResponse_launchProfiles = Lens.lens (\ListLaunchProfilesResponse' {launchProfiles} -> launchProfiles) (\s@ListLaunchProfilesResponse' {} a -> s {launchProfiles = a} :: ListLaunchProfilesResponse) Prelude.. Lens.mapping Lens.coerced++-- | The token for the next set of results, or null if there are no more+-- results.+listLaunchProfilesResponse_nextToken :: Lens.Lens' ListLaunchProfilesResponse (Prelude.Maybe Prelude.Text)+listLaunchProfilesResponse_nextToken = Lens.lens (\ListLaunchProfilesResponse' {nextToken} -> nextToken) (\s@ListLaunchProfilesResponse' {} a -> s {nextToken = a} :: ListLaunchProfilesResponse)++-- | The response's http status code.+listLaunchProfilesResponse_httpStatus :: Lens.Lens' ListLaunchProfilesResponse Prelude.Int+listLaunchProfilesResponse_httpStatus = Lens.lens (\ListLaunchProfilesResponse' {httpStatus} -> httpStatus) (\s@ListLaunchProfilesResponse' {} a -> s {httpStatus = a} :: ListLaunchProfilesResponse)++instance Prelude.NFData ListLaunchProfilesResponse where+  rnf ListLaunchProfilesResponse' {..} =+    Prelude.rnf launchProfiles+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Nimble/ListStreamingImages.hs view
@@ -0,0 +1,242 @@+{-# 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.Nimble.ListStreamingImages+-- 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 the streaming image resources available to this studio.+--+-- This list will contain both images provided by Amazon Web Services, as+-- well as streaming images that you have created in your studio.+--+-- This operation returns paginated results.+module Amazonka.Nimble.ListStreamingImages+  ( -- * Creating a Request+    ListStreamingImages (..),+    newListStreamingImages,++    -- * Request Lenses+    listStreamingImages_nextToken,+    listStreamingImages_owner,+    listStreamingImages_studioId,++    -- * Destructuring the Response+    ListStreamingImagesResponse (..),+    newListStreamingImagesResponse,++    -- * Response Lenses+    listStreamingImagesResponse_nextToken,+    listStreamingImagesResponse_streamingImages,+    listStreamingImagesResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Nimble.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListStreamingImages' smart constructor.+data ListStreamingImages = ListStreamingImages'+  { -- | The token for the next set of results, or null if there are no more+    -- results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | Filter this request to streaming images with the given owner+    owner :: Prelude.Maybe Prelude.Text,+    -- | The studio ID.+    studioId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListStreamingImages' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'nextToken', 'listStreamingImages_nextToken' - The token for the next set of results, or null if there are no more+-- results.+--+-- 'owner', 'listStreamingImages_owner' - Filter this request to streaming images with the given owner+--+-- 'studioId', 'listStreamingImages_studioId' - The studio ID.+newListStreamingImages ::+  -- | 'studioId'+  Prelude.Text ->+  ListStreamingImages+newListStreamingImages pStudioId_ =+  ListStreamingImages'+    { nextToken = Prelude.Nothing,+      owner = Prelude.Nothing,+      studioId = pStudioId_+    }++-- | The token for the next set of results, or null if there are no more+-- results.+listStreamingImages_nextToken :: Lens.Lens' ListStreamingImages (Prelude.Maybe Prelude.Text)+listStreamingImages_nextToken = Lens.lens (\ListStreamingImages' {nextToken} -> nextToken) (\s@ListStreamingImages' {} a -> s {nextToken = a} :: ListStreamingImages)++-- | Filter this request to streaming images with the given owner+listStreamingImages_owner :: Lens.Lens' ListStreamingImages (Prelude.Maybe Prelude.Text)+listStreamingImages_owner = Lens.lens (\ListStreamingImages' {owner} -> owner) (\s@ListStreamingImages' {} a -> s {owner = a} :: ListStreamingImages)++-- | The studio ID.+listStreamingImages_studioId :: Lens.Lens' ListStreamingImages Prelude.Text+listStreamingImages_studioId = Lens.lens (\ListStreamingImages' {studioId} -> studioId) (\s@ListStreamingImages' {} a -> s {studioId = a} :: ListStreamingImages)++instance Core.AWSPager ListStreamingImages where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listStreamingImagesResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listStreamingImagesResponse_streamingImages+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listStreamingImages_nextToken+          Lens..~ rs+          Lens.^? listStreamingImagesResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListStreamingImages where+  type+    AWSResponse ListStreamingImages =+      ListStreamingImagesResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListStreamingImagesResponse'+            Prelude.<$> (x Data..?> "nextToken")+            Prelude.<*> ( x+                            Data..?> "streamingImages"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListStreamingImages where+  hashWithSalt _salt ListStreamingImages' {..} =+    _salt+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` owner+      `Prelude.hashWithSalt` studioId++instance Prelude.NFData ListStreamingImages where+  rnf ListStreamingImages' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf owner+      `Prelude.seq` Prelude.rnf studioId++instance Data.ToHeaders ListStreamingImages where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ListStreamingImages where+  toPath ListStreamingImages' {..} =+    Prelude.mconcat+      [ "/2020-08-01/studios/",+        Data.toBS studioId,+        "/streaming-images"+      ]++instance Data.ToQuery ListStreamingImages where+  toQuery ListStreamingImages' {..} =+    Prelude.mconcat+      [ "nextToken" Data.=: nextToken,+        "owner" Data.=: owner+      ]++-- | /See:/ 'newListStreamingImagesResponse' smart constructor.+data ListStreamingImagesResponse = ListStreamingImagesResponse'+  { -- | The token for the next set of results, or null if there are no more+    -- results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | A collection of streaming images.+    streamingImages :: Prelude.Maybe [StreamingImage],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListStreamingImagesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'nextToken', 'listStreamingImagesResponse_nextToken' - The token for the next set of results, or null if there are no more+-- results.+--+-- 'streamingImages', 'listStreamingImagesResponse_streamingImages' - A collection of streaming images.+--+-- 'httpStatus', 'listStreamingImagesResponse_httpStatus' - The response's http status code.+newListStreamingImagesResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListStreamingImagesResponse+newListStreamingImagesResponse pHttpStatus_ =+  ListStreamingImagesResponse'+    { nextToken =+        Prelude.Nothing,+      streamingImages = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The token for the next set of results, or null if there are no more+-- results.+listStreamingImagesResponse_nextToken :: Lens.Lens' ListStreamingImagesResponse (Prelude.Maybe Prelude.Text)+listStreamingImagesResponse_nextToken = Lens.lens (\ListStreamingImagesResponse' {nextToken} -> nextToken) (\s@ListStreamingImagesResponse' {} a -> s {nextToken = a} :: ListStreamingImagesResponse)++-- | A collection of streaming images.+listStreamingImagesResponse_streamingImages :: Lens.Lens' ListStreamingImagesResponse (Prelude.Maybe [StreamingImage])+listStreamingImagesResponse_streamingImages = Lens.lens (\ListStreamingImagesResponse' {streamingImages} -> streamingImages) (\s@ListStreamingImagesResponse' {} a -> s {streamingImages = a} :: ListStreamingImagesResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listStreamingImagesResponse_httpStatus :: Lens.Lens' ListStreamingImagesResponse Prelude.Int+listStreamingImagesResponse_httpStatus = Lens.lens (\ListStreamingImagesResponse' {httpStatus} -> httpStatus) (\s@ListStreamingImagesResponse' {} a -> s {httpStatus = a} :: ListStreamingImagesResponse)++instance Prelude.NFData ListStreamingImagesResponse where+  rnf ListStreamingImagesResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf streamingImages+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Nimble/ListStreamingSessionBackups.hs view
@@ -0,0 +1,244 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Nimble.ListStreamingSessionBackups+-- 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 the backups of a streaming session in a studio.+--+-- This operation returns paginated results.+module Amazonka.Nimble.ListStreamingSessionBackups+  ( -- * Creating a Request+    ListStreamingSessionBackups (..),+    newListStreamingSessionBackups,++    -- * Request Lenses+    listStreamingSessionBackups_nextToken,+    listStreamingSessionBackups_ownedBy,+    listStreamingSessionBackups_studioId,++    -- * Destructuring the Response+    ListStreamingSessionBackupsResponse (..),+    newListStreamingSessionBackupsResponse,++    -- * Response Lenses+    listStreamingSessionBackupsResponse_nextToken,+    listStreamingSessionBackupsResponse_streamingSessionBackups,+    listStreamingSessionBackupsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Nimble.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListStreamingSessionBackups' smart constructor.+data ListStreamingSessionBackups = ListStreamingSessionBackups'+  { -- | The token for the next set of results, or null if there are no more+    -- results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The user ID of the user that owns the streaming session.+    ownedBy :: Prelude.Maybe Prelude.Text,+    -- | The studio ID.+    studioId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListStreamingSessionBackups' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'nextToken', 'listStreamingSessionBackups_nextToken' - The token for the next set of results, or null if there are no more+-- results.+--+-- 'ownedBy', 'listStreamingSessionBackups_ownedBy' - The user ID of the user that owns the streaming session.+--+-- 'studioId', 'listStreamingSessionBackups_studioId' - The studio ID.+newListStreamingSessionBackups ::+  -- | 'studioId'+  Prelude.Text ->+  ListStreamingSessionBackups+newListStreamingSessionBackups pStudioId_ =+  ListStreamingSessionBackups'+    { nextToken =+        Prelude.Nothing,+      ownedBy = Prelude.Nothing,+      studioId = pStudioId_+    }++-- | The token for the next set of results, or null if there are no more+-- results.+listStreamingSessionBackups_nextToken :: Lens.Lens' ListStreamingSessionBackups (Prelude.Maybe Prelude.Text)+listStreamingSessionBackups_nextToken = Lens.lens (\ListStreamingSessionBackups' {nextToken} -> nextToken) (\s@ListStreamingSessionBackups' {} a -> s {nextToken = a} :: ListStreamingSessionBackups)++-- | The user ID of the user that owns the streaming session.+listStreamingSessionBackups_ownedBy :: Lens.Lens' ListStreamingSessionBackups (Prelude.Maybe Prelude.Text)+listStreamingSessionBackups_ownedBy = Lens.lens (\ListStreamingSessionBackups' {ownedBy} -> ownedBy) (\s@ListStreamingSessionBackups' {} a -> s {ownedBy = a} :: ListStreamingSessionBackups)++-- | The studio ID.+listStreamingSessionBackups_studioId :: Lens.Lens' ListStreamingSessionBackups Prelude.Text+listStreamingSessionBackups_studioId = Lens.lens (\ListStreamingSessionBackups' {studioId} -> studioId) (\s@ListStreamingSessionBackups' {} a -> s {studioId = a} :: ListStreamingSessionBackups)++instance Core.AWSPager ListStreamingSessionBackups where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listStreamingSessionBackupsResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listStreamingSessionBackupsResponse_streamingSessionBackups+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listStreamingSessionBackups_nextToken+          Lens..~ rs+          Lens.^? listStreamingSessionBackupsResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListStreamingSessionBackups where+  type+    AWSResponse ListStreamingSessionBackups =+      ListStreamingSessionBackupsResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListStreamingSessionBackupsResponse'+            Prelude.<$> (x Data..?> "nextToken")+            Prelude.<*> ( x+                            Data..?> "streamingSessionBackups"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListStreamingSessionBackups where+  hashWithSalt _salt ListStreamingSessionBackups' {..} =+    _salt+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` ownedBy+      `Prelude.hashWithSalt` studioId++instance Prelude.NFData ListStreamingSessionBackups where+  rnf ListStreamingSessionBackups' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf ownedBy+      `Prelude.seq` Prelude.rnf studioId++instance Data.ToHeaders ListStreamingSessionBackups where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ListStreamingSessionBackups where+  toPath ListStreamingSessionBackups' {..} =+    Prelude.mconcat+      [ "/2020-08-01/studios/",+        Data.toBS studioId,+        "/streaming-session-backups"+      ]++instance Data.ToQuery ListStreamingSessionBackups where+  toQuery ListStreamingSessionBackups' {..} =+    Prelude.mconcat+      [ "nextToken" Data.=: nextToken,+        "ownedBy" Data.=: ownedBy+      ]++-- | /See:/ 'newListStreamingSessionBackupsResponse' smart constructor.+data ListStreamingSessionBackupsResponse = ListStreamingSessionBackupsResponse'+  { -- | The token for the next set of results, or null if there are no more+    -- results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | Information about the streaming session backups.+    streamingSessionBackups :: Prelude.Maybe [StreamingSessionBackup],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListStreamingSessionBackupsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'nextToken', 'listStreamingSessionBackupsResponse_nextToken' - The token for the next set of results, or null if there are no more+-- results.+--+-- 'streamingSessionBackups', 'listStreamingSessionBackupsResponse_streamingSessionBackups' - Information about the streaming session backups.+--+-- 'httpStatus', 'listStreamingSessionBackupsResponse_httpStatus' - The response's http status code.+newListStreamingSessionBackupsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListStreamingSessionBackupsResponse+newListStreamingSessionBackupsResponse pHttpStatus_ =+  ListStreamingSessionBackupsResponse'+    { nextToken =+        Prelude.Nothing,+      streamingSessionBackups =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The token for the next set of results, or null if there are no more+-- results.+listStreamingSessionBackupsResponse_nextToken :: Lens.Lens' ListStreamingSessionBackupsResponse (Prelude.Maybe Prelude.Text)+listStreamingSessionBackupsResponse_nextToken = Lens.lens (\ListStreamingSessionBackupsResponse' {nextToken} -> nextToken) (\s@ListStreamingSessionBackupsResponse' {} a -> s {nextToken = a} :: ListStreamingSessionBackupsResponse)++-- | Information about the streaming session backups.+listStreamingSessionBackupsResponse_streamingSessionBackups :: Lens.Lens' ListStreamingSessionBackupsResponse (Prelude.Maybe [StreamingSessionBackup])+listStreamingSessionBackupsResponse_streamingSessionBackups = Lens.lens (\ListStreamingSessionBackupsResponse' {streamingSessionBackups} -> streamingSessionBackups) (\s@ListStreamingSessionBackupsResponse' {} a -> s {streamingSessionBackups = a} :: ListStreamingSessionBackupsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listStreamingSessionBackupsResponse_httpStatus :: Lens.Lens' ListStreamingSessionBackupsResponse Prelude.Int+listStreamingSessionBackupsResponse_httpStatus = Lens.lens (\ListStreamingSessionBackupsResponse' {httpStatus} -> httpStatus) (\s@ListStreamingSessionBackupsResponse' {} a -> s {httpStatus = a} :: ListStreamingSessionBackupsResponse)++instance+  Prelude.NFData+    ListStreamingSessionBackupsResponse+  where+  rnf ListStreamingSessionBackupsResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf streamingSessionBackups+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Nimble/ListStreamingSessions.hs view
@@ -0,0 +1,262 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Nimble.ListStreamingSessions+-- 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 the streaming sessions in a studio.+--+-- This operation returns paginated results.+module Amazonka.Nimble.ListStreamingSessions+  ( -- * Creating a Request+    ListStreamingSessions (..),+    newListStreamingSessions,++    -- * Request Lenses+    listStreamingSessions_createdBy,+    listStreamingSessions_nextToken,+    listStreamingSessions_ownedBy,+    listStreamingSessions_sessionIds,+    listStreamingSessions_studioId,++    -- * Destructuring the Response+    ListStreamingSessionsResponse (..),+    newListStreamingSessionsResponse,++    -- * Response Lenses+    listStreamingSessionsResponse_nextToken,+    listStreamingSessionsResponse_sessions,+    listStreamingSessionsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Nimble.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListStreamingSessions' smart constructor.+data ListStreamingSessions = ListStreamingSessions'+  { -- | Filters the request to streaming sessions created by the given user.+    createdBy :: Prelude.Maybe Prelude.Text,+    -- | The token for the next set of results, or null if there are no more+    -- results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | Filters the request to streaming session owned by the given user+    ownedBy :: Prelude.Maybe Prelude.Text,+    -- | Filters the request to only the provided session IDs.+    sessionIds :: Prelude.Maybe Prelude.Text,+    -- | The studio ID.+    studioId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListStreamingSessions' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'createdBy', 'listStreamingSessions_createdBy' - Filters the request to streaming sessions created by the given user.+--+-- 'nextToken', 'listStreamingSessions_nextToken' - The token for the next set of results, or null if there are no more+-- results.+--+-- 'ownedBy', 'listStreamingSessions_ownedBy' - Filters the request to streaming session owned by the given user+--+-- 'sessionIds', 'listStreamingSessions_sessionIds' - Filters the request to only the provided session IDs.+--+-- 'studioId', 'listStreamingSessions_studioId' - The studio ID.+newListStreamingSessions ::+  -- | 'studioId'+  Prelude.Text ->+  ListStreamingSessions+newListStreamingSessions pStudioId_ =+  ListStreamingSessions'+    { createdBy = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      ownedBy = Prelude.Nothing,+      sessionIds = Prelude.Nothing,+      studioId = pStudioId_+    }++-- | Filters the request to streaming sessions created by the given user.+listStreamingSessions_createdBy :: Lens.Lens' ListStreamingSessions (Prelude.Maybe Prelude.Text)+listStreamingSessions_createdBy = Lens.lens (\ListStreamingSessions' {createdBy} -> createdBy) (\s@ListStreamingSessions' {} a -> s {createdBy = a} :: ListStreamingSessions)++-- | The token for the next set of results, or null if there are no more+-- results.+listStreamingSessions_nextToken :: Lens.Lens' ListStreamingSessions (Prelude.Maybe Prelude.Text)+listStreamingSessions_nextToken = Lens.lens (\ListStreamingSessions' {nextToken} -> nextToken) (\s@ListStreamingSessions' {} a -> s {nextToken = a} :: ListStreamingSessions)++-- | Filters the request to streaming session owned by the given user+listStreamingSessions_ownedBy :: Lens.Lens' ListStreamingSessions (Prelude.Maybe Prelude.Text)+listStreamingSessions_ownedBy = Lens.lens (\ListStreamingSessions' {ownedBy} -> ownedBy) (\s@ListStreamingSessions' {} a -> s {ownedBy = a} :: ListStreamingSessions)++-- | Filters the request to only the provided session IDs.+listStreamingSessions_sessionIds :: Lens.Lens' ListStreamingSessions (Prelude.Maybe Prelude.Text)+listStreamingSessions_sessionIds = Lens.lens (\ListStreamingSessions' {sessionIds} -> sessionIds) (\s@ListStreamingSessions' {} a -> s {sessionIds = a} :: ListStreamingSessions)++-- | The studio ID.+listStreamingSessions_studioId :: Lens.Lens' ListStreamingSessions Prelude.Text+listStreamingSessions_studioId = Lens.lens (\ListStreamingSessions' {studioId} -> studioId) (\s@ListStreamingSessions' {} a -> s {studioId = a} :: ListStreamingSessions)++instance Core.AWSPager ListStreamingSessions where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listStreamingSessionsResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listStreamingSessionsResponse_sessions+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listStreamingSessions_nextToken+          Lens..~ rs+          Lens.^? listStreamingSessionsResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListStreamingSessions where+  type+    AWSResponse ListStreamingSessions =+      ListStreamingSessionsResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListStreamingSessionsResponse'+            Prelude.<$> (x Data..?> "nextToken")+            Prelude.<*> (x Data..?> "sessions" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListStreamingSessions where+  hashWithSalt _salt ListStreamingSessions' {..} =+    _salt+      `Prelude.hashWithSalt` createdBy+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` ownedBy+      `Prelude.hashWithSalt` sessionIds+      `Prelude.hashWithSalt` studioId++instance Prelude.NFData ListStreamingSessions where+  rnf ListStreamingSessions' {..} =+    Prelude.rnf createdBy+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf ownedBy+      `Prelude.seq` Prelude.rnf sessionIds+      `Prelude.seq` Prelude.rnf studioId++instance Data.ToHeaders ListStreamingSessions where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ListStreamingSessions where+  toPath ListStreamingSessions' {..} =+    Prelude.mconcat+      [ "/2020-08-01/studios/",+        Data.toBS studioId,+        "/streaming-sessions"+      ]++instance Data.ToQuery ListStreamingSessions where+  toQuery ListStreamingSessions' {..} =+    Prelude.mconcat+      [ "createdBy" Data.=: createdBy,+        "nextToken" Data.=: nextToken,+        "ownedBy" Data.=: ownedBy,+        "sessionIds" Data.=: sessionIds+      ]++-- | /See:/ 'newListStreamingSessionsResponse' smart constructor.+data ListStreamingSessionsResponse = ListStreamingSessionsResponse'+  { -- | The token for the next set of results, or null if there are no more+    -- results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | A collection of streaming sessions.+    sessions :: Prelude.Maybe [StreamingSession],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListStreamingSessionsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'nextToken', 'listStreamingSessionsResponse_nextToken' - The token for the next set of results, or null if there are no more+-- results.+--+-- 'sessions', 'listStreamingSessionsResponse_sessions' - A collection of streaming sessions.+--+-- 'httpStatus', 'listStreamingSessionsResponse_httpStatus' - The response's http status code.+newListStreamingSessionsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListStreamingSessionsResponse+newListStreamingSessionsResponse pHttpStatus_ =+  ListStreamingSessionsResponse'+    { nextToken =+        Prelude.Nothing,+      sessions = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The token for the next set of results, or null if there are no more+-- results.+listStreamingSessionsResponse_nextToken :: Lens.Lens' ListStreamingSessionsResponse (Prelude.Maybe Prelude.Text)+listStreamingSessionsResponse_nextToken = Lens.lens (\ListStreamingSessionsResponse' {nextToken} -> nextToken) (\s@ListStreamingSessionsResponse' {} a -> s {nextToken = a} :: ListStreamingSessionsResponse)++-- | A collection of streaming sessions.+listStreamingSessionsResponse_sessions :: Lens.Lens' ListStreamingSessionsResponse (Prelude.Maybe [StreamingSession])+listStreamingSessionsResponse_sessions = Lens.lens (\ListStreamingSessionsResponse' {sessions} -> sessions) (\s@ListStreamingSessionsResponse' {} a -> s {sessions = a} :: ListStreamingSessionsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listStreamingSessionsResponse_httpStatus :: Lens.Lens' ListStreamingSessionsResponse Prelude.Int+listStreamingSessionsResponse_httpStatus = Lens.lens (\ListStreamingSessionsResponse' {httpStatus} -> httpStatus) (\s@ListStreamingSessionsResponse' {} a -> s {httpStatus = a} :: ListStreamingSessionsResponse)++instance Prelude.NFData ListStreamingSessionsResponse where+  rnf ListStreamingSessionsResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf sessions+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Nimble/ListStudioComponents.hs view
@@ -0,0 +1,275 @@+{-# 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.Nimble.ListStudioComponents+-- 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 the @StudioComponents@ in a studio.+--+-- This operation returns paginated results.+module Amazonka.Nimble.ListStudioComponents+  ( -- * Creating a Request+    ListStudioComponents (..),+    newListStudioComponents,++    -- * Request Lenses+    listStudioComponents_maxResults,+    listStudioComponents_nextToken,+    listStudioComponents_states,+    listStudioComponents_types,+    listStudioComponents_studioId,++    -- * Destructuring the Response+    ListStudioComponentsResponse (..),+    newListStudioComponentsResponse,++    -- * Response Lenses+    listStudioComponentsResponse_nextToken,+    listStudioComponentsResponse_studioComponents,+    listStudioComponentsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Nimble.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListStudioComponents' smart constructor.+data ListStudioComponents = ListStudioComponents'+  { -- | The max number of results to return in the response.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | The token for the next set of results, or null if there are no more+    -- results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | Filters the request to studio components that are in one of the given+    -- states.+    states :: Prelude.Maybe [StudioComponentState],+    -- | Filters the request to studio components that are of one of the given+    -- types.+    types :: Prelude.Maybe [StudioComponentType],+    -- | The studio ID.+    studioId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListStudioComponents' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listStudioComponents_maxResults' - The max number of results to return in the response.+--+-- 'nextToken', 'listStudioComponents_nextToken' - The token for the next set of results, or null if there are no more+-- results.+--+-- 'states', 'listStudioComponents_states' - Filters the request to studio components that are in one of the given+-- states.+--+-- 'types', 'listStudioComponents_types' - Filters the request to studio components that are of one of the given+-- types.+--+-- 'studioId', 'listStudioComponents_studioId' - The studio ID.+newListStudioComponents ::+  -- | 'studioId'+  Prelude.Text ->+  ListStudioComponents+newListStudioComponents pStudioId_ =+  ListStudioComponents'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      states = Prelude.Nothing,+      types = Prelude.Nothing,+      studioId = pStudioId_+    }++-- | The max number of results to return in the response.+listStudioComponents_maxResults :: Lens.Lens' ListStudioComponents (Prelude.Maybe Prelude.Natural)+listStudioComponents_maxResults = Lens.lens (\ListStudioComponents' {maxResults} -> maxResults) (\s@ListStudioComponents' {} a -> s {maxResults = a} :: ListStudioComponents)++-- | The token for the next set of results, or null if there are no more+-- results.+listStudioComponents_nextToken :: Lens.Lens' ListStudioComponents (Prelude.Maybe Prelude.Text)+listStudioComponents_nextToken = Lens.lens (\ListStudioComponents' {nextToken} -> nextToken) (\s@ListStudioComponents' {} a -> s {nextToken = a} :: ListStudioComponents)++-- | Filters the request to studio components that are in one of the given+-- states.+listStudioComponents_states :: Lens.Lens' ListStudioComponents (Prelude.Maybe [StudioComponentState])+listStudioComponents_states = Lens.lens (\ListStudioComponents' {states} -> states) (\s@ListStudioComponents' {} a -> s {states = a} :: ListStudioComponents) Prelude.. Lens.mapping Lens.coerced++-- | Filters the request to studio components that are of one of the given+-- types.+listStudioComponents_types :: Lens.Lens' ListStudioComponents (Prelude.Maybe [StudioComponentType])+listStudioComponents_types = Lens.lens (\ListStudioComponents' {types} -> types) (\s@ListStudioComponents' {} a -> s {types = a} :: ListStudioComponents) Prelude.. Lens.mapping Lens.coerced++-- | The studio ID.+listStudioComponents_studioId :: Lens.Lens' ListStudioComponents Prelude.Text+listStudioComponents_studioId = Lens.lens (\ListStudioComponents' {studioId} -> studioId) (\s@ListStudioComponents' {} a -> s {studioId = a} :: ListStudioComponents)++instance Core.AWSPager ListStudioComponents where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listStudioComponentsResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listStudioComponentsResponse_studioComponents+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listStudioComponents_nextToken+          Lens..~ rs+          Lens.^? listStudioComponentsResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListStudioComponents where+  type+    AWSResponse ListStudioComponents =+      ListStudioComponentsResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListStudioComponentsResponse'+            Prelude.<$> (x Data..?> "nextToken")+            Prelude.<*> ( x+                            Data..?> "studioComponents"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListStudioComponents where+  hashWithSalt _salt ListStudioComponents' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` states+      `Prelude.hashWithSalt` types+      `Prelude.hashWithSalt` studioId++instance Prelude.NFData ListStudioComponents where+  rnf ListStudioComponents' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf states+      `Prelude.seq` Prelude.rnf types+      `Prelude.seq` Prelude.rnf studioId++instance Data.ToHeaders ListStudioComponents where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ListStudioComponents where+  toPath ListStudioComponents' {..} =+    Prelude.mconcat+      [ "/2020-08-01/studios/",+        Data.toBS studioId,+        "/studio-components"+      ]++instance Data.ToQuery ListStudioComponents where+  toQuery ListStudioComponents' {..} =+    Prelude.mconcat+      [ "maxResults" Data.=: maxResults,+        "nextToken" Data.=: nextToken,+        "states"+          Data.=: Data.toQuery+            (Data.toQueryList "member" Prelude.<$> states),+        "types"+          Data.=: Data.toQuery+            (Data.toQueryList "member" Prelude.<$> types)+      ]++-- | /See:/ 'newListStudioComponentsResponse' smart constructor.+data ListStudioComponentsResponse = ListStudioComponentsResponse'+  { -- | The token for the next set of results, or null if there are no more+    -- results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | A collection of studio components.+    studioComponents :: Prelude.Maybe [StudioComponent],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListStudioComponentsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'nextToken', 'listStudioComponentsResponse_nextToken' - The token for the next set of results, or null if there are no more+-- results.+--+-- 'studioComponents', 'listStudioComponentsResponse_studioComponents' - A collection of studio components.+--+-- 'httpStatus', 'listStudioComponentsResponse_httpStatus' - The response's http status code.+newListStudioComponentsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListStudioComponentsResponse+newListStudioComponentsResponse pHttpStatus_ =+  ListStudioComponentsResponse'+    { nextToken =+        Prelude.Nothing,+      studioComponents = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The token for the next set of results, or null if there are no more+-- results.+listStudioComponentsResponse_nextToken :: Lens.Lens' ListStudioComponentsResponse (Prelude.Maybe Prelude.Text)+listStudioComponentsResponse_nextToken = Lens.lens (\ListStudioComponentsResponse' {nextToken} -> nextToken) (\s@ListStudioComponentsResponse' {} a -> s {nextToken = a} :: ListStudioComponentsResponse)++-- | A collection of studio components.+listStudioComponentsResponse_studioComponents :: Lens.Lens' ListStudioComponentsResponse (Prelude.Maybe [StudioComponent])+listStudioComponentsResponse_studioComponents = Lens.lens (\ListStudioComponentsResponse' {studioComponents} -> studioComponents) (\s@ListStudioComponentsResponse' {} a -> s {studioComponents = a} :: ListStudioComponentsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listStudioComponentsResponse_httpStatus :: Lens.Lens' ListStudioComponentsResponse Prelude.Int+listStudioComponentsResponse_httpStatus = Lens.lens (\ListStudioComponentsResponse' {httpStatus} -> httpStatus) (\s@ListStudioComponentsResponse' {} a -> s {httpStatus = a} :: ListStudioComponentsResponse)++instance Prelude.NFData ListStudioComponentsResponse where+  rnf ListStudioComponentsResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf studioComponents+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Nimble/ListStudioMembers.hs view
@@ -0,0 +1,238 @@+{-# 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.Nimble.ListStudioMembers+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Get all users in a given studio membership.+--+-- @ListStudioMembers@ only returns admin members.+--+-- This operation returns paginated results.+module Amazonka.Nimble.ListStudioMembers+  ( -- * Creating a Request+    ListStudioMembers (..),+    newListStudioMembers,++    -- * Request Lenses+    listStudioMembers_maxResults,+    listStudioMembers_nextToken,+    listStudioMembers_studioId,++    -- * Destructuring the Response+    ListStudioMembersResponse (..),+    newListStudioMembersResponse,++    -- * Response Lenses+    listStudioMembersResponse_members,+    listStudioMembersResponse_nextToken,+    listStudioMembersResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Nimble.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListStudioMembers' smart constructor.+data ListStudioMembers = ListStudioMembers'+  { -- | The max number of results to return in the response.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | The token for the next set of results, or null if there are no more+    -- results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The studio ID.+    studioId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListStudioMembers' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listStudioMembers_maxResults' - The max number of results to return in the response.+--+-- 'nextToken', 'listStudioMembers_nextToken' - The token for the next set of results, or null if there are no more+-- results.+--+-- 'studioId', 'listStudioMembers_studioId' - The studio ID.+newListStudioMembers ::+  -- | 'studioId'+  Prelude.Text ->+  ListStudioMembers+newListStudioMembers pStudioId_ =+  ListStudioMembers'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      studioId = pStudioId_+    }++-- | The max number of results to return in the response.+listStudioMembers_maxResults :: Lens.Lens' ListStudioMembers (Prelude.Maybe Prelude.Natural)+listStudioMembers_maxResults = Lens.lens (\ListStudioMembers' {maxResults} -> maxResults) (\s@ListStudioMembers' {} a -> s {maxResults = a} :: ListStudioMembers)++-- | The token for the next set of results, or null if there are no more+-- results.+listStudioMembers_nextToken :: Lens.Lens' ListStudioMembers (Prelude.Maybe Prelude.Text)+listStudioMembers_nextToken = Lens.lens (\ListStudioMembers' {nextToken} -> nextToken) (\s@ListStudioMembers' {} a -> s {nextToken = a} :: ListStudioMembers)++-- | The studio ID.+listStudioMembers_studioId :: Lens.Lens' ListStudioMembers Prelude.Text+listStudioMembers_studioId = Lens.lens (\ListStudioMembers' {studioId} -> studioId) (\s@ListStudioMembers' {} a -> s {studioId = a} :: ListStudioMembers)++instance Core.AWSPager ListStudioMembers where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listStudioMembersResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listStudioMembersResponse_members+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listStudioMembers_nextToken+          Lens..~ rs+          Lens.^? listStudioMembersResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListStudioMembers where+  type+    AWSResponse ListStudioMembers =+      ListStudioMembersResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListStudioMembersResponse'+            Prelude.<$> (x Data..?> "members" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListStudioMembers where+  hashWithSalt _salt ListStudioMembers' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` studioId++instance Prelude.NFData ListStudioMembers where+  rnf ListStudioMembers' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf studioId++instance Data.ToHeaders ListStudioMembers where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ListStudioMembers where+  toPath ListStudioMembers' {..} =+    Prelude.mconcat+      [ "/2020-08-01/studios/",+        Data.toBS studioId,+        "/membership"+      ]++instance Data.ToQuery ListStudioMembers where+  toQuery ListStudioMembers' {..} =+    Prelude.mconcat+      [ "maxResults" Data.=: maxResults,+        "nextToken" Data.=: nextToken+      ]++-- | /See:/ 'newListStudioMembersResponse' smart constructor.+data ListStudioMembersResponse = ListStudioMembersResponse'+  { -- | A list of admin members.+    members :: Prelude.Maybe [StudioMembership],+    -- | The token for the next set of results, or null if there are no more+    -- results.+    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 'ListStudioMembersResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'members', 'listStudioMembersResponse_members' - A list of admin members.+--+-- 'nextToken', 'listStudioMembersResponse_nextToken' - The token for the next set of results, or null if there are no more+-- results.+--+-- 'httpStatus', 'listStudioMembersResponse_httpStatus' - The response's http status code.+newListStudioMembersResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListStudioMembersResponse+newListStudioMembersResponse pHttpStatus_ =+  ListStudioMembersResponse'+    { members =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | A list of admin members.+listStudioMembersResponse_members :: Lens.Lens' ListStudioMembersResponse (Prelude.Maybe [StudioMembership])+listStudioMembersResponse_members = Lens.lens (\ListStudioMembersResponse' {members} -> members) (\s@ListStudioMembersResponse' {} a -> s {members = a} :: ListStudioMembersResponse) Prelude.. Lens.mapping Lens.coerced++-- | The token for the next set of results, or null if there are no more+-- results.+listStudioMembersResponse_nextToken :: Lens.Lens' ListStudioMembersResponse (Prelude.Maybe Prelude.Text)+listStudioMembersResponse_nextToken = Lens.lens (\ListStudioMembersResponse' {nextToken} -> nextToken) (\s@ListStudioMembersResponse' {} a -> s {nextToken = a} :: ListStudioMembersResponse)++-- | The response's http status code.+listStudioMembersResponse_httpStatus :: Lens.Lens' ListStudioMembersResponse Prelude.Int+listStudioMembersResponse_httpStatus = Lens.lens (\ListStudioMembersResponse' {httpStatus} -> httpStatus) (\s@ListStudioMembersResponse' {} a -> s {httpStatus = a} :: ListStudioMembersResponse)++instance Prelude.NFData ListStudioMembersResponse where+  rnf ListStudioMembersResponse' {..} =+    Prelude.rnf members+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Nimble/ListStudios.hs view
@@ -0,0 +1,192 @@+{-# 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.Nimble.ListStudios+-- 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 studios in your Amazon Web Services accounts in the requested+-- Amazon Web Services Region.+--+-- This operation returns paginated results.+module Amazonka.Nimble.ListStudios+  ( -- * Creating a Request+    ListStudios (..),+    newListStudios,++    -- * Request Lenses+    listStudios_nextToken,++    -- * Destructuring the Response+    ListStudiosResponse (..),+    newListStudiosResponse,++    -- * Response Lenses+    listStudiosResponse_nextToken,+    listStudiosResponse_httpStatus,+    listStudiosResponse_studios,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Nimble.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListStudios' smart constructor.+data ListStudios = ListStudios'+  { -- | The token for the next set of results, or null if there are no more+    -- results.+    nextToken :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListStudios' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'nextToken', 'listStudios_nextToken' - The token for the next set of results, or null if there are no more+-- results.+newListStudios ::+  ListStudios+newListStudios =+  ListStudios' {nextToken = Prelude.Nothing}++-- | The token for the next set of results, or null if there are no more+-- results.+listStudios_nextToken :: Lens.Lens' ListStudios (Prelude.Maybe Prelude.Text)+listStudios_nextToken = Lens.lens (\ListStudios' {nextToken} -> nextToken) (\s@ListStudios' {} a -> s {nextToken = a} :: ListStudios)++instance Core.AWSPager ListStudios where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listStudiosResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop (rs Lens.^. listStudiosResponse_studios) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listStudios_nextToken+          Lens..~ rs+          Lens.^? listStudiosResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListStudios where+  type AWSResponse ListStudios = ListStudiosResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListStudiosResponse'+            Prelude.<$> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..?> "studios" Core..!@ Prelude.mempty)+      )++instance Prelude.Hashable ListStudios where+  hashWithSalt _salt ListStudios' {..} =+    _salt `Prelude.hashWithSalt` nextToken++instance Prelude.NFData ListStudios where+  rnf ListStudios' {..} = Prelude.rnf nextToken++instance Data.ToHeaders ListStudios where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ListStudios where+  toPath = Prelude.const "/2020-08-01/studios"++instance Data.ToQuery ListStudios where+  toQuery ListStudios' {..} =+    Prelude.mconcat ["nextToken" Data.=: nextToken]++-- | /See:/ 'newListStudiosResponse' smart constructor.+data ListStudiosResponse = ListStudiosResponse'+  { -- | The token for the next set of results, or null if there are no more+    -- results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | A collection of studios.+    studios :: [Studio]+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListStudiosResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'nextToken', 'listStudiosResponse_nextToken' - The token for the next set of results, or null if there are no more+-- results.+--+-- 'httpStatus', 'listStudiosResponse_httpStatus' - The response's http status code.+--+-- 'studios', 'listStudiosResponse_studios' - A collection of studios.+newListStudiosResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListStudiosResponse+newListStudiosResponse pHttpStatus_ =+  ListStudiosResponse'+    { nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_,+      studios = Prelude.mempty+    }++-- | The token for the next set of results, or null if there are no more+-- results.+listStudiosResponse_nextToken :: Lens.Lens' ListStudiosResponse (Prelude.Maybe Prelude.Text)+listStudiosResponse_nextToken = Lens.lens (\ListStudiosResponse' {nextToken} -> nextToken) (\s@ListStudiosResponse' {} a -> s {nextToken = a} :: ListStudiosResponse)++-- | The response's http status code.+listStudiosResponse_httpStatus :: Lens.Lens' ListStudiosResponse Prelude.Int+listStudiosResponse_httpStatus = Lens.lens (\ListStudiosResponse' {httpStatus} -> httpStatus) (\s@ListStudiosResponse' {} a -> s {httpStatus = a} :: ListStudiosResponse)++-- | A collection of studios.+listStudiosResponse_studios :: Lens.Lens' ListStudiosResponse [Studio]+listStudiosResponse_studios = Lens.lens (\ListStudiosResponse' {studios} -> studios) (\s@ListStudiosResponse' {} a -> s {studios = a} :: ListStudiosResponse) Prelude.. Lens.coerced++instance Prelude.NFData ListStudiosResponse where+  rnf ListStudiosResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf studios
+ gen/Amazonka/Nimble/ListTagsForResource.hs view
@@ -0,0 +1,172 @@+{-# 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.Nimble.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)+--+-- Gets the tags for a resource, given its Amazon Resource Names (ARN).+--+-- This operation supports ARNs for all resource types in Nimble Studio+-- that support tags, including studio, studio component, launch profile,+-- streaming image, and streaming session. All resources that can be tagged+-- will contain an ARN property, so you do not have to create this ARN+-- yourself.+module Amazonka.Nimble.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.Nimble.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'+  { -- | The Amazon Resource Name (ARN) of the resource for which you want to+    -- list tags.+    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' - The Amazon Resource Name (ARN) of the resource for which you want to+-- list tags.+newListTagsForResource ::+  -- | 'resourceArn'+  Prelude.Text ->+  ListTagsForResource+newListTagsForResource pResourceArn_ =+  ListTagsForResource' {resourceArn = pResourceArn_}++-- | The Amazon Resource Name (ARN) of the resource for which you want to+-- list tags.+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+      ["/2020-08-01/tags/", Data.toBS resourceArn]++instance Data.ToQuery ListTagsForResource where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListTagsForResourceResponse' smart constructor.+data ListTagsForResourceResponse = ListTagsForResourceResponse'+  { -- | A collection of labels, in the form of key-value pairs, that apply to+    -- this resource.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListTagsForResourceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'tags', 'listTagsForResourceResponse_tags' - A collection of labels, in the form of key-value pairs, that apply to+-- this resource.+--+-- 'httpStatus', 'listTagsForResourceResponse_httpStatus' - The response's http status code.+newListTagsForResourceResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListTagsForResourceResponse+newListTagsForResourceResponse pHttpStatus_ =+  ListTagsForResourceResponse'+    { tags =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | A collection of labels, in the form of key-value pairs, that apply to+-- this resource.+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 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/Nimble/PutLaunchProfileMembers.hs view
@@ -0,0 +1,237 @@+{-# 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.Nimble.PutLaunchProfileMembers+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Add\/update users with given persona to launch profile membership.+module Amazonka.Nimble.PutLaunchProfileMembers+  ( -- * Creating a Request+    PutLaunchProfileMembers (..),+    newPutLaunchProfileMembers,++    -- * Request Lenses+    putLaunchProfileMembers_clientToken,+    putLaunchProfileMembers_identityStoreId,+    putLaunchProfileMembers_launchProfileId,+    putLaunchProfileMembers_members,+    putLaunchProfileMembers_studioId,++    -- * Destructuring the Response+    PutLaunchProfileMembersResponse (..),+    newPutLaunchProfileMembersResponse,++    -- * Response Lenses+    putLaunchProfileMembersResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Nimble.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newPutLaunchProfileMembers' smart constructor.+data PutLaunchProfileMembers = PutLaunchProfileMembers'+  { -- | Unique, case-sensitive identifier that you provide to ensure the+    -- idempotency of the request. If you don’t specify a client token, the+    -- Amazon Web Services SDK automatically generates a client token and uses+    -- it for the request to ensure idempotency.+    clientToken :: Prelude.Maybe Prelude.Text,+    -- | The ID of the identity store.+    identityStoreId :: Prelude.Text,+    -- | The ID of the launch profile used to control access from the streaming+    -- session.+    launchProfileId :: Prelude.Text,+    -- | A list of members.+    members :: Prelude.NonEmpty NewLaunchProfileMember,+    -- | The studio ID.+    studioId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PutLaunchProfileMembers' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientToken', 'putLaunchProfileMembers_clientToken' - Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request. If you don’t specify a client token, the+-- Amazon Web Services SDK automatically generates a client token and uses+-- it for the request to ensure idempotency.+--+-- 'identityStoreId', 'putLaunchProfileMembers_identityStoreId' - The ID of the identity store.+--+-- 'launchProfileId', 'putLaunchProfileMembers_launchProfileId' - The ID of the launch profile used to control access from the streaming+-- session.+--+-- 'members', 'putLaunchProfileMembers_members' - A list of members.+--+-- 'studioId', 'putLaunchProfileMembers_studioId' - The studio ID.+newPutLaunchProfileMembers ::+  -- | 'identityStoreId'+  Prelude.Text ->+  -- | 'launchProfileId'+  Prelude.Text ->+  -- | 'members'+  Prelude.NonEmpty NewLaunchProfileMember ->+  -- | 'studioId'+  Prelude.Text ->+  PutLaunchProfileMembers+newPutLaunchProfileMembers+  pIdentityStoreId_+  pLaunchProfileId_+  pMembers_+  pStudioId_ =+    PutLaunchProfileMembers'+      { clientToken =+          Prelude.Nothing,+        identityStoreId = pIdentityStoreId_,+        launchProfileId = pLaunchProfileId_,+        members = Lens.coerced Lens.# pMembers_,+        studioId = pStudioId_+      }++-- | Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request. If you don’t specify a client token, the+-- Amazon Web Services SDK automatically generates a client token and uses+-- it for the request to ensure idempotency.+putLaunchProfileMembers_clientToken :: Lens.Lens' PutLaunchProfileMembers (Prelude.Maybe Prelude.Text)+putLaunchProfileMembers_clientToken = Lens.lens (\PutLaunchProfileMembers' {clientToken} -> clientToken) (\s@PutLaunchProfileMembers' {} a -> s {clientToken = a} :: PutLaunchProfileMembers)++-- | The ID of the identity store.+putLaunchProfileMembers_identityStoreId :: Lens.Lens' PutLaunchProfileMembers Prelude.Text+putLaunchProfileMembers_identityStoreId = Lens.lens (\PutLaunchProfileMembers' {identityStoreId} -> identityStoreId) (\s@PutLaunchProfileMembers' {} a -> s {identityStoreId = a} :: PutLaunchProfileMembers)++-- | The ID of the launch profile used to control access from the streaming+-- session.+putLaunchProfileMembers_launchProfileId :: Lens.Lens' PutLaunchProfileMembers Prelude.Text+putLaunchProfileMembers_launchProfileId = Lens.lens (\PutLaunchProfileMembers' {launchProfileId} -> launchProfileId) (\s@PutLaunchProfileMembers' {} a -> s {launchProfileId = a} :: PutLaunchProfileMembers)++-- | A list of members.+putLaunchProfileMembers_members :: Lens.Lens' PutLaunchProfileMembers (Prelude.NonEmpty NewLaunchProfileMember)+putLaunchProfileMembers_members = Lens.lens (\PutLaunchProfileMembers' {members} -> members) (\s@PutLaunchProfileMembers' {} a -> s {members = a} :: PutLaunchProfileMembers) Prelude.. Lens.coerced++-- | The studio ID.+putLaunchProfileMembers_studioId :: Lens.Lens' PutLaunchProfileMembers Prelude.Text+putLaunchProfileMembers_studioId = Lens.lens (\PutLaunchProfileMembers' {studioId} -> studioId) (\s@PutLaunchProfileMembers' {} a -> s {studioId = a} :: PutLaunchProfileMembers)++instance Core.AWSRequest PutLaunchProfileMembers where+  type+    AWSResponse PutLaunchProfileMembers =+      PutLaunchProfileMembersResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          PutLaunchProfileMembersResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable PutLaunchProfileMembers where+  hashWithSalt _salt PutLaunchProfileMembers' {..} =+    _salt+      `Prelude.hashWithSalt` clientToken+      `Prelude.hashWithSalt` identityStoreId+      `Prelude.hashWithSalt` launchProfileId+      `Prelude.hashWithSalt` members+      `Prelude.hashWithSalt` studioId++instance Prelude.NFData PutLaunchProfileMembers where+  rnf PutLaunchProfileMembers' {..} =+    Prelude.rnf clientToken+      `Prelude.seq` Prelude.rnf identityStoreId+      `Prelude.seq` Prelude.rnf launchProfileId+      `Prelude.seq` Prelude.rnf members+      `Prelude.seq` Prelude.rnf studioId++instance Data.ToHeaders PutLaunchProfileMembers where+  toHeaders PutLaunchProfileMembers' {..} =+    Prelude.mconcat+      [ "X-Amz-Client-Token" Data.=# clientToken,+        "Content-Type"+          Data.=# ("application/x-amz-json-1.1" :: Prelude.ByteString)+      ]++instance Data.ToJSON PutLaunchProfileMembers where+  toJSON PutLaunchProfileMembers' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("identityStoreId" Data..= identityStoreId),+            Prelude.Just ("members" Data..= members)+          ]+      )++instance Data.ToPath PutLaunchProfileMembers where+  toPath PutLaunchProfileMembers' {..} =+    Prelude.mconcat+      [ "/2020-08-01/studios/",+        Data.toBS studioId,+        "/launch-profiles/",+        Data.toBS launchProfileId,+        "/membership"+      ]++instance Data.ToQuery PutLaunchProfileMembers where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newPutLaunchProfileMembersResponse' smart constructor.+data PutLaunchProfileMembersResponse = PutLaunchProfileMembersResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PutLaunchProfileMembersResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'putLaunchProfileMembersResponse_httpStatus' - The response's http status code.+newPutLaunchProfileMembersResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  PutLaunchProfileMembersResponse+newPutLaunchProfileMembersResponse pHttpStatus_ =+  PutLaunchProfileMembersResponse'+    { httpStatus =+        pHttpStatus_+    }++-- | The response's http status code.+putLaunchProfileMembersResponse_httpStatus :: Lens.Lens' PutLaunchProfileMembersResponse Prelude.Int+putLaunchProfileMembersResponse_httpStatus = Lens.lens (\PutLaunchProfileMembersResponse' {httpStatus} -> httpStatus) (\s@PutLaunchProfileMembersResponse' {} a -> s {httpStatus = a} :: PutLaunchProfileMembersResponse)++instance+  Prelude.NFData+    PutLaunchProfileMembersResponse+  where+  rnf PutLaunchProfileMembersResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/Nimble/PutStudioMembers.hs view
@@ -0,0 +1,213 @@+{-# 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.Nimble.PutStudioMembers+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Add\/update users with given persona to studio membership.+module Amazonka.Nimble.PutStudioMembers+  ( -- * Creating a Request+    PutStudioMembers (..),+    newPutStudioMembers,++    -- * Request Lenses+    putStudioMembers_clientToken,+    putStudioMembers_identityStoreId,+    putStudioMembers_members,+    putStudioMembers_studioId,++    -- * Destructuring the Response+    PutStudioMembersResponse (..),+    newPutStudioMembersResponse,++    -- * Response Lenses+    putStudioMembersResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Nimble.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newPutStudioMembers' smart constructor.+data PutStudioMembers = PutStudioMembers'+  { -- | Unique, case-sensitive identifier that you provide to ensure the+    -- idempotency of the request. If you don’t specify a client token, the+    -- Amazon Web Services SDK automatically generates a client token and uses+    -- it for the request to ensure idempotency.+    clientToken :: Prelude.Maybe Prelude.Text,+    -- | The ID of the identity store.+    identityStoreId :: Prelude.Text,+    -- | A list of members.+    members :: Prelude.NonEmpty NewStudioMember,+    -- | The studio ID.+    studioId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PutStudioMembers' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientToken', 'putStudioMembers_clientToken' - Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request. If you don’t specify a client token, the+-- Amazon Web Services SDK automatically generates a client token and uses+-- it for the request to ensure idempotency.+--+-- 'identityStoreId', 'putStudioMembers_identityStoreId' - The ID of the identity store.+--+-- 'members', 'putStudioMembers_members' - A list of members.+--+-- 'studioId', 'putStudioMembers_studioId' - The studio ID.+newPutStudioMembers ::+  -- | 'identityStoreId'+  Prelude.Text ->+  -- | 'members'+  Prelude.NonEmpty NewStudioMember ->+  -- | 'studioId'+  Prelude.Text ->+  PutStudioMembers+newPutStudioMembers+  pIdentityStoreId_+  pMembers_+  pStudioId_ =+    PutStudioMembers'+      { clientToken = Prelude.Nothing,+        identityStoreId = pIdentityStoreId_,+        members = Lens.coerced Lens.# pMembers_,+        studioId = pStudioId_+      }++-- | Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request. If you don’t specify a client token, the+-- Amazon Web Services SDK automatically generates a client token and uses+-- it for the request to ensure idempotency.+putStudioMembers_clientToken :: Lens.Lens' PutStudioMembers (Prelude.Maybe Prelude.Text)+putStudioMembers_clientToken = Lens.lens (\PutStudioMembers' {clientToken} -> clientToken) (\s@PutStudioMembers' {} a -> s {clientToken = a} :: PutStudioMembers)++-- | The ID of the identity store.+putStudioMembers_identityStoreId :: Lens.Lens' PutStudioMembers Prelude.Text+putStudioMembers_identityStoreId = Lens.lens (\PutStudioMembers' {identityStoreId} -> identityStoreId) (\s@PutStudioMembers' {} a -> s {identityStoreId = a} :: PutStudioMembers)++-- | A list of members.+putStudioMembers_members :: Lens.Lens' PutStudioMembers (Prelude.NonEmpty NewStudioMember)+putStudioMembers_members = Lens.lens (\PutStudioMembers' {members} -> members) (\s@PutStudioMembers' {} a -> s {members = a} :: PutStudioMembers) Prelude.. Lens.coerced++-- | The studio ID.+putStudioMembers_studioId :: Lens.Lens' PutStudioMembers Prelude.Text+putStudioMembers_studioId = Lens.lens (\PutStudioMembers' {studioId} -> studioId) (\s@PutStudioMembers' {} a -> s {studioId = a} :: PutStudioMembers)++instance Core.AWSRequest PutStudioMembers where+  type+    AWSResponse PutStudioMembers =+      PutStudioMembersResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          PutStudioMembersResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable PutStudioMembers where+  hashWithSalt _salt PutStudioMembers' {..} =+    _salt+      `Prelude.hashWithSalt` clientToken+      `Prelude.hashWithSalt` identityStoreId+      `Prelude.hashWithSalt` members+      `Prelude.hashWithSalt` studioId++instance Prelude.NFData PutStudioMembers where+  rnf PutStudioMembers' {..} =+    Prelude.rnf clientToken+      `Prelude.seq` Prelude.rnf identityStoreId+      `Prelude.seq` Prelude.rnf members+      `Prelude.seq` Prelude.rnf studioId++instance Data.ToHeaders PutStudioMembers where+  toHeaders PutStudioMembers' {..} =+    Prelude.mconcat+      [ "X-Amz-Client-Token" Data.=# clientToken,+        "Content-Type"+          Data.=# ("application/x-amz-json-1.1" :: Prelude.ByteString)+      ]++instance Data.ToJSON PutStudioMembers where+  toJSON PutStudioMembers' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("identityStoreId" Data..= identityStoreId),+            Prelude.Just ("members" Data..= members)+          ]+      )++instance Data.ToPath PutStudioMembers where+  toPath PutStudioMembers' {..} =+    Prelude.mconcat+      [ "/2020-08-01/studios/",+        Data.toBS studioId,+        "/membership"+      ]++instance Data.ToQuery PutStudioMembers where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newPutStudioMembersResponse' smart constructor.+data PutStudioMembersResponse = PutStudioMembersResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PutStudioMembersResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'putStudioMembersResponse_httpStatus' - The response's http status code.+newPutStudioMembersResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  PutStudioMembersResponse+newPutStudioMembersResponse pHttpStatus_ =+  PutStudioMembersResponse'+    { httpStatus =+        pHttpStatus_+    }++-- | The response's http status code.+putStudioMembersResponse_httpStatus :: Lens.Lens' PutStudioMembersResponse Prelude.Int+putStudioMembersResponse_httpStatus = Lens.lens (\PutStudioMembersResponse' {httpStatus} -> httpStatus) (\s@PutStudioMembersResponse' {} a -> s {httpStatus = a} :: PutStudioMembersResponse)++instance Prelude.NFData PutStudioMembersResponse where+  rnf PutStudioMembersResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/Nimble/StartStreamingSession.hs view
@@ -0,0 +1,220 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Nimble.StartStreamingSession+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Transitions sessions from the @STOPPED@ state into the @READY@ state.+-- The @START_IN_PROGRESS@ state is the intermediate state between the+-- @STOPPED@ and @READY@ states.+module Amazonka.Nimble.StartStreamingSession+  ( -- * Creating a Request+    StartStreamingSession (..),+    newStartStreamingSession,++    -- * Request Lenses+    startStreamingSession_backupId,+    startStreamingSession_clientToken,+    startStreamingSession_sessionId,+    startStreamingSession_studioId,++    -- * Destructuring the Response+    StartStreamingSessionResponse (..),+    newStartStreamingSessionResponse,++    -- * Response Lenses+    startStreamingSessionResponse_session,+    startStreamingSessionResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Nimble.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newStartStreamingSession' smart constructor.+data StartStreamingSession = StartStreamingSession'+  { -- | The ID of the backup.+    backupId :: Prelude.Maybe Prelude.Text,+    -- | Unique, case-sensitive identifier that you provide to ensure the+    -- idempotency of the request. If you don’t specify a client token, the+    -- Amazon Web Services SDK automatically generates a client token and uses+    -- it for the request to ensure idempotency.+    clientToken :: Prelude.Maybe Prelude.Text,+    -- | The streaming session ID for the @StartStreamingSessionRequest@.+    sessionId :: Prelude.Text,+    -- | The studio ID for the StartStreamingSessionRequest.+    studioId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StartStreamingSession' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'backupId', 'startStreamingSession_backupId' - The ID of the backup.+--+-- 'clientToken', 'startStreamingSession_clientToken' - Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request. If you don’t specify a client token, the+-- Amazon Web Services SDK automatically generates a client token and uses+-- it for the request to ensure idempotency.+--+-- 'sessionId', 'startStreamingSession_sessionId' - The streaming session ID for the @StartStreamingSessionRequest@.+--+-- 'studioId', 'startStreamingSession_studioId' - The studio ID for the StartStreamingSessionRequest.+newStartStreamingSession ::+  -- | 'sessionId'+  Prelude.Text ->+  -- | 'studioId'+  Prelude.Text ->+  StartStreamingSession+newStartStreamingSession pSessionId_ pStudioId_ =+  StartStreamingSession'+    { backupId = Prelude.Nothing,+      clientToken = Prelude.Nothing,+      sessionId = pSessionId_,+      studioId = pStudioId_+    }++-- | The ID of the backup.+startStreamingSession_backupId :: Lens.Lens' StartStreamingSession (Prelude.Maybe Prelude.Text)+startStreamingSession_backupId = Lens.lens (\StartStreamingSession' {backupId} -> backupId) (\s@StartStreamingSession' {} a -> s {backupId = a} :: StartStreamingSession)++-- | Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request. If you don’t specify a client token, the+-- Amazon Web Services SDK automatically generates a client token and uses+-- it for the request to ensure idempotency.+startStreamingSession_clientToken :: Lens.Lens' StartStreamingSession (Prelude.Maybe Prelude.Text)+startStreamingSession_clientToken = Lens.lens (\StartStreamingSession' {clientToken} -> clientToken) (\s@StartStreamingSession' {} a -> s {clientToken = a} :: StartStreamingSession)++-- | The streaming session ID for the @StartStreamingSessionRequest@.+startStreamingSession_sessionId :: Lens.Lens' StartStreamingSession Prelude.Text+startStreamingSession_sessionId = Lens.lens (\StartStreamingSession' {sessionId} -> sessionId) (\s@StartStreamingSession' {} a -> s {sessionId = a} :: StartStreamingSession)++-- | The studio ID for the StartStreamingSessionRequest.+startStreamingSession_studioId :: Lens.Lens' StartStreamingSession Prelude.Text+startStreamingSession_studioId = Lens.lens (\StartStreamingSession' {studioId} -> studioId) (\s@StartStreamingSession' {} a -> s {studioId = a} :: StartStreamingSession)++instance Core.AWSRequest StartStreamingSession where+  type+    AWSResponse StartStreamingSession =+      StartStreamingSessionResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          StartStreamingSessionResponse'+            Prelude.<$> (x Data..?> "session")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable StartStreamingSession where+  hashWithSalt _salt StartStreamingSession' {..} =+    _salt+      `Prelude.hashWithSalt` backupId+      `Prelude.hashWithSalt` clientToken+      `Prelude.hashWithSalt` sessionId+      `Prelude.hashWithSalt` studioId++instance Prelude.NFData StartStreamingSession where+  rnf StartStreamingSession' {..} =+    Prelude.rnf backupId+      `Prelude.seq` Prelude.rnf clientToken+      `Prelude.seq` Prelude.rnf sessionId+      `Prelude.seq` Prelude.rnf studioId++instance Data.ToHeaders StartStreamingSession where+  toHeaders StartStreamingSession' {..} =+    Prelude.mconcat+      [ "X-Amz-Client-Token" Data.=# clientToken,+        "Content-Type"+          Data.=# ("application/x-amz-json-1.1" :: Prelude.ByteString)+      ]++instance Data.ToJSON StartStreamingSession where+  toJSON StartStreamingSession' {..} =+    Data.object+      ( Prelude.catMaybes+          [("backupId" Data..=) Prelude.<$> backupId]+      )++instance Data.ToPath StartStreamingSession where+  toPath StartStreamingSession' {..} =+    Prelude.mconcat+      [ "/2020-08-01/studios/",+        Data.toBS studioId,+        "/streaming-sessions/",+        Data.toBS sessionId,+        "/start"+      ]++instance Data.ToQuery StartStreamingSession where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newStartStreamingSessionResponse' smart constructor.+data StartStreamingSessionResponse = StartStreamingSessionResponse'+  { session :: Prelude.Maybe StreamingSession,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StartStreamingSessionResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'session', 'startStreamingSessionResponse_session' - Undocumented member.+--+-- 'httpStatus', 'startStreamingSessionResponse_httpStatus' - The response's http status code.+newStartStreamingSessionResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  StartStreamingSessionResponse+newStartStreamingSessionResponse pHttpStatus_ =+  StartStreamingSessionResponse'+    { session =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Undocumented member.+startStreamingSessionResponse_session :: Lens.Lens' StartStreamingSessionResponse (Prelude.Maybe StreamingSession)+startStreamingSessionResponse_session = Lens.lens (\StartStreamingSessionResponse' {session} -> session) (\s@StartStreamingSessionResponse' {} a -> s {session = a} :: StartStreamingSessionResponse)++-- | The response's http status code.+startStreamingSessionResponse_httpStatus :: Lens.Lens' StartStreamingSessionResponse Prelude.Int+startStreamingSessionResponse_httpStatus = Lens.lens (\StartStreamingSessionResponse' {httpStatus} -> httpStatus) (\s@StartStreamingSessionResponse' {} a -> s {httpStatus = a} :: StartStreamingSessionResponse)++instance Prelude.NFData StartStreamingSessionResponse where+  rnf StartStreamingSessionResponse' {..} =+    Prelude.rnf session+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Nimble/StartStudioSSOConfigurationRepair.hs view
@@ -0,0 +1,230 @@+{-# 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.Nimble.StartStudioSSOConfigurationRepair+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Repairs the IAM Identity Center configuration for a given studio.+--+-- If the studio has a valid IAM Identity Center configuration currently+-- associated with it, this operation will fail with a validation error.+--+-- If the studio does not have a valid IAM Identity Center configuration+-- currently associated with it, then a new IAM Identity Center application+-- is created for the studio and the studio is changed to the @READY@+-- state.+--+-- After the IAM Identity Center application is repaired, you must use the+-- Amazon Nimble Studio console to add administrators and users to your+-- studio.+module Amazonka.Nimble.StartStudioSSOConfigurationRepair+  ( -- * Creating a Request+    StartStudioSSOConfigurationRepair (..),+    newStartStudioSSOConfigurationRepair,++    -- * Request Lenses+    startStudioSSOConfigurationRepair_clientToken,+    startStudioSSOConfigurationRepair_studioId,++    -- * Destructuring the Response+    StartStudioSSOConfigurationRepairResponse (..),+    newStartStudioSSOConfigurationRepairResponse,++    -- * Response Lenses+    startStudioSSOConfigurationRepairResponse_httpStatus,+    startStudioSSOConfigurationRepairResponse_studio,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Nimble.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newStartStudioSSOConfigurationRepair' smart constructor.+data StartStudioSSOConfigurationRepair = StartStudioSSOConfigurationRepair'+  { -- | Unique, case-sensitive identifier that you provide to ensure the+    -- idempotency of the request. If you don’t specify a client token, the+    -- Amazon Web Services SDK automatically generates a client token and uses+    -- it for the request to ensure idempotency.+    clientToken :: Prelude.Maybe Prelude.Text,+    -- | The studio ID.+    studioId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StartStudioSSOConfigurationRepair' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientToken', 'startStudioSSOConfigurationRepair_clientToken' - Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request. If you don’t specify a client token, the+-- Amazon Web Services SDK automatically generates a client token and uses+-- it for the request to ensure idempotency.+--+-- 'studioId', 'startStudioSSOConfigurationRepair_studioId' - The studio ID.+newStartStudioSSOConfigurationRepair ::+  -- | 'studioId'+  Prelude.Text ->+  StartStudioSSOConfigurationRepair+newStartStudioSSOConfigurationRepair pStudioId_ =+  StartStudioSSOConfigurationRepair'+    { clientToken =+        Prelude.Nothing,+      studioId = pStudioId_+    }++-- | Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request. If you don’t specify a client token, the+-- Amazon Web Services SDK automatically generates a client token and uses+-- it for the request to ensure idempotency.+startStudioSSOConfigurationRepair_clientToken :: Lens.Lens' StartStudioSSOConfigurationRepair (Prelude.Maybe Prelude.Text)+startStudioSSOConfigurationRepair_clientToken = Lens.lens (\StartStudioSSOConfigurationRepair' {clientToken} -> clientToken) (\s@StartStudioSSOConfigurationRepair' {} a -> s {clientToken = a} :: StartStudioSSOConfigurationRepair)++-- | The studio ID.+startStudioSSOConfigurationRepair_studioId :: Lens.Lens' StartStudioSSOConfigurationRepair Prelude.Text+startStudioSSOConfigurationRepair_studioId = Lens.lens (\StartStudioSSOConfigurationRepair' {studioId} -> studioId) (\s@StartStudioSSOConfigurationRepair' {} a -> s {studioId = a} :: StartStudioSSOConfigurationRepair)++instance+  Core.AWSRequest+    StartStudioSSOConfigurationRepair+  where+  type+    AWSResponse StartStudioSSOConfigurationRepair =+      StartStudioSSOConfigurationRepairResponse+  request overrides =+    Request.putJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          StartStudioSSOConfigurationRepairResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "studio")+      )++instance+  Prelude.Hashable+    StartStudioSSOConfigurationRepair+  where+  hashWithSalt+    _salt+    StartStudioSSOConfigurationRepair' {..} =+      _salt+        `Prelude.hashWithSalt` clientToken+        `Prelude.hashWithSalt` studioId++instance+  Prelude.NFData+    StartStudioSSOConfigurationRepair+  where+  rnf StartStudioSSOConfigurationRepair' {..} =+    Prelude.rnf clientToken+      `Prelude.seq` Prelude.rnf studioId++instance+  Data.ToHeaders+    StartStudioSSOConfigurationRepair+  where+  toHeaders StartStudioSSOConfigurationRepair' {..} =+    Prelude.mconcat+      [ "X-Amz-Client-Token" Data.=# clientToken,+        "Content-Type"+          Data.=# ("application/x-amz-json-1.1" :: Prelude.ByteString)+      ]++instance+  Data.ToJSON+    StartStudioSSOConfigurationRepair+  where+  toJSON = Prelude.const (Data.Object Prelude.mempty)++instance+  Data.ToPath+    StartStudioSSOConfigurationRepair+  where+  toPath StartStudioSSOConfigurationRepair' {..} =+    Prelude.mconcat+      [ "/2020-08-01/studios/",+        Data.toBS studioId,+        "/sso-configuration"+      ]++instance+  Data.ToQuery+    StartStudioSSOConfigurationRepair+  where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newStartStudioSSOConfigurationRepairResponse' smart constructor.+data StartStudioSSOConfigurationRepairResponse = StartStudioSSOConfigurationRepairResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | Information about a studio.+    studio :: Studio+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StartStudioSSOConfigurationRepairResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'startStudioSSOConfigurationRepairResponse_httpStatus' - The response's http status code.+--+-- 'studio', 'startStudioSSOConfigurationRepairResponse_studio' - Information about a studio.+newStartStudioSSOConfigurationRepairResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'studio'+  Studio ->+  StartStudioSSOConfigurationRepairResponse+newStartStudioSSOConfigurationRepairResponse+  pHttpStatus_+  pStudio_ =+    StartStudioSSOConfigurationRepairResponse'+      { httpStatus =+          pHttpStatus_,+        studio = pStudio_+      }++-- | The response's http status code.+startStudioSSOConfigurationRepairResponse_httpStatus :: Lens.Lens' StartStudioSSOConfigurationRepairResponse Prelude.Int+startStudioSSOConfigurationRepairResponse_httpStatus = Lens.lens (\StartStudioSSOConfigurationRepairResponse' {httpStatus} -> httpStatus) (\s@StartStudioSSOConfigurationRepairResponse' {} a -> s {httpStatus = a} :: StartStudioSSOConfigurationRepairResponse)++-- | Information about a studio.+startStudioSSOConfigurationRepairResponse_studio :: Lens.Lens' StartStudioSSOConfigurationRepairResponse Studio+startStudioSSOConfigurationRepairResponse_studio = Lens.lens (\StartStudioSSOConfigurationRepairResponse' {studio} -> studio) (\s@StartStudioSSOConfigurationRepairResponse' {} a -> s {studio = a} :: StartStudioSSOConfigurationRepairResponse)++instance+  Prelude.NFData+    StartStudioSSOConfigurationRepairResponse+  where+  rnf StartStudioSSOConfigurationRepairResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf studio
+ gen/Amazonka/Nimble/StopStreamingSession.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.Nimble.StopStreamingSession+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Transitions sessions from the @READY@ state into the @STOPPED@ state.+-- The @STOP_IN_PROGRESS@ state is the intermediate state between the+-- @READY@ and @STOPPED@ states.+module Amazonka.Nimble.StopStreamingSession+  ( -- * Creating a Request+    StopStreamingSession (..),+    newStopStreamingSession,++    -- * Request Lenses+    stopStreamingSession_clientToken,+    stopStreamingSession_volumeRetentionMode,+    stopStreamingSession_sessionId,+    stopStreamingSession_studioId,++    -- * Destructuring the Response+    StopStreamingSessionResponse (..),+    newStopStreamingSessionResponse,++    -- * Response Lenses+    stopStreamingSessionResponse_session,+    stopStreamingSessionResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Nimble.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newStopStreamingSession' smart constructor.+data StopStreamingSession = StopStreamingSession'+  { -- | Unique, case-sensitive identifier that you provide to ensure the+    -- idempotency of the request. If you don’t specify a client token, the+    -- Amazon Web Services SDK automatically generates a client token and uses+    -- it for the request to ensure idempotency.+    clientToken :: Prelude.Maybe Prelude.Text,+    -- | Adds additional instructions to a streaming session stop action to+    -- either retain the EBS volumes or delete the EBS volumes.+    volumeRetentionMode :: Prelude.Maybe VolumeRetentionMode,+    -- | The streaming session ID for the @StopStreamingSessionRequest@.+    sessionId :: Prelude.Text,+    -- | The studioId for the StopStreamingSessionRequest.+    studioId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StopStreamingSession' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientToken', 'stopStreamingSession_clientToken' - Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request. If you don’t specify a client token, the+-- Amazon Web Services SDK automatically generates a client token and uses+-- it for the request to ensure idempotency.+--+-- 'volumeRetentionMode', 'stopStreamingSession_volumeRetentionMode' - Adds additional instructions to a streaming session stop action to+-- either retain the EBS volumes or delete the EBS volumes.+--+-- 'sessionId', 'stopStreamingSession_sessionId' - The streaming session ID for the @StopStreamingSessionRequest@.+--+-- 'studioId', 'stopStreamingSession_studioId' - The studioId for the StopStreamingSessionRequest.+newStopStreamingSession ::+  -- | 'sessionId'+  Prelude.Text ->+  -- | 'studioId'+  Prelude.Text ->+  StopStreamingSession+newStopStreamingSession pSessionId_ pStudioId_ =+  StopStreamingSession'+    { clientToken =+        Prelude.Nothing,+      volumeRetentionMode = Prelude.Nothing,+      sessionId = pSessionId_,+      studioId = pStudioId_+    }++-- | Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request. If you don’t specify a client token, the+-- Amazon Web Services SDK automatically generates a client token and uses+-- it for the request to ensure idempotency.+stopStreamingSession_clientToken :: Lens.Lens' StopStreamingSession (Prelude.Maybe Prelude.Text)+stopStreamingSession_clientToken = Lens.lens (\StopStreamingSession' {clientToken} -> clientToken) (\s@StopStreamingSession' {} a -> s {clientToken = a} :: StopStreamingSession)++-- | Adds additional instructions to a streaming session stop action to+-- either retain the EBS volumes or delete the EBS volumes.+stopStreamingSession_volumeRetentionMode :: Lens.Lens' StopStreamingSession (Prelude.Maybe VolumeRetentionMode)+stopStreamingSession_volumeRetentionMode = Lens.lens (\StopStreamingSession' {volumeRetentionMode} -> volumeRetentionMode) (\s@StopStreamingSession' {} a -> s {volumeRetentionMode = a} :: StopStreamingSession)++-- | The streaming session ID for the @StopStreamingSessionRequest@.+stopStreamingSession_sessionId :: Lens.Lens' StopStreamingSession Prelude.Text+stopStreamingSession_sessionId = Lens.lens (\StopStreamingSession' {sessionId} -> sessionId) (\s@StopStreamingSession' {} a -> s {sessionId = a} :: StopStreamingSession)++-- | The studioId for the StopStreamingSessionRequest.+stopStreamingSession_studioId :: Lens.Lens' StopStreamingSession Prelude.Text+stopStreamingSession_studioId = Lens.lens (\StopStreamingSession' {studioId} -> studioId) (\s@StopStreamingSession' {} a -> s {studioId = a} :: StopStreamingSession)++instance Core.AWSRequest StopStreamingSession where+  type+    AWSResponse StopStreamingSession =+      StopStreamingSessionResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          StopStreamingSessionResponse'+            Prelude.<$> (x Data..?> "session")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable StopStreamingSession where+  hashWithSalt _salt StopStreamingSession' {..} =+    _salt+      `Prelude.hashWithSalt` clientToken+      `Prelude.hashWithSalt` volumeRetentionMode+      `Prelude.hashWithSalt` sessionId+      `Prelude.hashWithSalt` studioId++instance Prelude.NFData StopStreamingSession where+  rnf StopStreamingSession' {..} =+    Prelude.rnf clientToken+      `Prelude.seq` Prelude.rnf volumeRetentionMode+      `Prelude.seq` Prelude.rnf sessionId+      `Prelude.seq` Prelude.rnf studioId++instance Data.ToHeaders StopStreamingSession where+  toHeaders StopStreamingSession' {..} =+    Prelude.mconcat+      [ "X-Amz-Client-Token" Data.=# clientToken,+        "Content-Type"+          Data.=# ("application/x-amz-json-1.1" :: Prelude.ByteString)+      ]++instance Data.ToJSON StopStreamingSession where+  toJSON StopStreamingSession' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("volumeRetentionMode" Data..=)+              Prelude.<$> volumeRetentionMode+          ]+      )++instance Data.ToPath StopStreamingSession where+  toPath StopStreamingSession' {..} =+    Prelude.mconcat+      [ "/2020-08-01/studios/",+        Data.toBS studioId,+        "/streaming-sessions/",+        Data.toBS sessionId,+        "/stop"+      ]++instance Data.ToQuery StopStreamingSession where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newStopStreamingSessionResponse' smart constructor.+data StopStreamingSessionResponse = StopStreamingSessionResponse'+  { session :: Prelude.Maybe StreamingSession,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StopStreamingSessionResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'session', 'stopStreamingSessionResponse_session' - Undocumented member.+--+-- 'httpStatus', 'stopStreamingSessionResponse_httpStatus' - The response's http status code.+newStopStreamingSessionResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  StopStreamingSessionResponse+newStopStreamingSessionResponse pHttpStatus_ =+  StopStreamingSessionResponse'+    { session =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Undocumented member.+stopStreamingSessionResponse_session :: Lens.Lens' StopStreamingSessionResponse (Prelude.Maybe StreamingSession)+stopStreamingSessionResponse_session = Lens.lens (\StopStreamingSessionResponse' {session} -> session) (\s@StopStreamingSessionResponse' {} a -> s {session = a} :: StopStreamingSessionResponse)++-- | The response's http status code.+stopStreamingSessionResponse_httpStatus :: Lens.Lens' StopStreamingSessionResponse Prelude.Int+stopStreamingSessionResponse_httpStatus = Lens.lens (\StopStreamingSessionResponse' {httpStatus} -> httpStatus) (\s@StopStreamingSessionResponse' {} a -> s {httpStatus = a} :: StopStreamingSessionResponse)++instance Prelude.NFData StopStreamingSessionResponse where+  rnf StopStreamingSessionResponse' {..} =+    Prelude.rnf session+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Nimble/TagResource.hs view
@@ -0,0 +1,167 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Nimble.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)+--+-- Creates tags for a resource, given its ARN.+module Amazonka.Nimble.TagResource+  ( -- * Creating a Request+    TagResource (..),+    newTagResource,++    -- * Request Lenses+    tagResource_tags,+    tagResource_resourceArn,++    -- * Destructuring the Response+    TagResourceResponse (..),+    newTagResourceResponse,++    -- * Response Lenses+    tagResourceResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Nimble.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'+  { -- | A collection of labels, in the form of key-value pairs, that apply to+    -- this resource.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The Amazon Resource Name (ARN) of the resource you want to add tags to.+    resourceArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TagResource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'tags', 'tagResource_tags' - A collection of labels, in the form of key-value pairs, that apply to+-- this resource.+--+-- 'resourceArn', 'tagResource_resourceArn' - The Amazon Resource Name (ARN) of the resource you want to add tags to.+newTagResource ::+  -- | 'resourceArn'+  Prelude.Text ->+  TagResource+newTagResource pResourceArn_ =+  TagResource'+    { tags = Prelude.Nothing,+      resourceArn = pResourceArn_+    }++-- | A collection of labels, in the form of key-value pairs, that apply to+-- this resource.+tagResource_tags :: Lens.Lens' TagResource (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+tagResource_tags = Lens.lens (\TagResource' {tags} -> tags) (\s@TagResource' {} a -> s {tags = a} :: TagResource) Prelude.. Lens.mapping Lens.coerced++-- | The Amazon Resource Name (ARN) of the resource you want to add tags to.+tagResource_resourceArn :: Lens.Lens' TagResource Prelude.Text+tagResource_resourceArn = Lens.lens (\TagResource' {resourceArn} -> resourceArn) (\s@TagResource' {} a -> s {resourceArn = a} :: TagResource)++instance Core.AWSRequest TagResource where+  type AWSResponse TagResource = TagResourceResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          TagResourceResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable TagResource where+  hashWithSalt _salt TagResource' {..} =+    _salt+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` resourceArn++instance Prelude.NFData TagResource where+  rnf TagResource' {..} =+    Prelude.rnf tags+      `Prelude.seq` Prelude.rnf resourceArn++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+          [("tags" Data..=) Prelude.<$> tags]+      )++instance Data.ToPath TagResource where+  toPath TagResource' {..} =+    Prelude.mconcat+      ["/2020-08-01/tags/", Data.toBS resourceArn]++instance Data.ToQuery TagResource where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newTagResourceResponse' smart constructor.+data TagResourceResponse = TagResourceResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TagResourceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpStatus', 'tagResourceResponse_httpStatus' - The response's http status code.+newTagResourceResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  TagResourceResponse+newTagResourceResponse pHttpStatus_ =+  TagResourceResponse' {httpStatus = pHttpStatus_}++-- | The response's http status code.+tagResourceResponse_httpStatus :: Lens.Lens' TagResourceResponse Prelude.Int+tagResourceResponse_httpStatus = Lens.lens (\TagResourceResponse' {httpStatus} -> httpStatus) (\s@TagResourceResponse' {} a -> s {httpStatus = a} :: TagResourceResponse)++instance Prelude.NFData TagResourceResponse where+  rnf TagResourceResponse' {..} = Prelude.rnf httpStatus
+ gen/Amazonka/Nimble/Types.hs view
@@ -0,0 +1,678 @@+{-# 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.Nimble.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.Nimble.Types+  ( -- * Service Configuration+    defaultService,++    -- * Errors+    _AccessDeniedException,+    _ConflictException,+    _InternalServerErrorException,+    _ResourceNotFoundException,+    _ServiceQuotaExceededException,+    _ThrottlingException,+    _ValidationException,++    -- * AutomaticTerminationMode+    AutomaticTerminationMode (..),++    -- * LaunchProfilePersona+    LaunchProfilePersona (..),++    -- * LaunchProfilePlatform+    LaunchProfilePlatform (..),++    -- * LaunchProfileState+    LaunchProfileState (..),++    -- * LaunchProfileStatusCode+    LaunchProfileStatusCode (..),++    -- * LaunchProfileValidationState+    LaunchProfileValidationState (..),++    -- * LaunchProfileValidationStatusCode+    LaunchProfileValidationStatusCode (..),++    -- * LaunchProfileValidationType+    LaunchProfileValidationType (..),++    -- * SessionBackupMode+    SessionBackupMode (..),++    -- * SessionPersistenceMode+    SessionPersistenceMode (..),++    -- * StreamingClipboardMode+    StreamingClipboardMode (..),++    -- * StreamingImageEncryptionConfigurationKeyType+    StreamingImageEncryptionConfigurationKeyType (..),++    -- * StreamingImageState+    StreamingImageState (..),++    -- * StreamingImageStatusCode+    StreamingImageStatusCode (..),++    -- * StreamingInstanceType+    StreamingInstanceType (..),++    -- * StreamingSessionState+    StreamingSessionState (..),++    -- * StreamingSessionStatusCode+    StreamingSessionStatusCode (..),++    -- * StreamingSessionStorageMode+    StreamingSessionStorageMode (..),++    -- * StreamingSessionStreamState+    StreamingSessionStreamState (..),++    -- * StreamingSessionStreamStatusCode+    StreamingSessionStreamStatusCode (..),++    -- * StudioComponentInitializationScriptRunContext+    StudioComponentInitializationScriptRunContext (..),++    -- * StudioComponentState+    StudioComponentState (..),++    -- * StudioComponentStatusCode+    StudioComponentStatusCode (..),++    -- * StudioComponentSubtype+    StudioComponentSubtype (..),++    -- * StudioComponentType+    StudioComponentType (..),++    -- * StudioEncryptionConfigurationKeyType+    StudioEncryptionConfigurationKeyType (..),++    -- * StudioPersona+    StudioPersona (..),++    -- * StudioState+    StudioState (..),++    -- * StudioStatusCode+    StudioStatusCode (..),++    -- * VolumeRetentionMode+    VolumeRetentionMode (..),++    -- * ActiveDirectoryComputerAttribute+    ActiveDirectoryComputerAttribute (..),+    newActiveDirectoryComputerAttribute,+    activeDirectoryComputerAttribute_name,+    activeDirectoryComputerAttribute_value,++    -- * ActiveDirectoryConfiguration+    ActiveDirectoryConfiguration (..),+    newActiveDirectoryConfiguration,+    activeDirectoryConfiguration_computerAttributes,+    activeDirectoryConfiguration_directoryId,+    activeDirectoryConfiguration_organizationalUnitDistinguishedName,++    -- * ComputeFarmConfiguration+    ComputeFarmConfiguration (..),+    newComputeFarmConfiguration,+    computeFarmConfiguration_activeDirectoryUser,+    computeFarmConfiguration_endpoint,++    -- * Eula+    Eula (..),+    newEula,+    eula_content,+    eula_createdAt,+    eula_eulaId,+    eula_name,+    eula_updatedAt,++    -- * EulaAcceptance+    EulaAcceptance (..),+    newEulaAcceptance,+    eulaAcceptance_acceptedAt,+    eulaAcceptance_acceptedBy,+    eulaAcceptance_accepteeId,+    eulaAcceptance_eulaAcceptanceId,+    eulaAcceptance_eulaId,++    -- * LaunchProfile+    LaunchProfile (..),+    newLaunchProfile,+    launchProfile_arn,+    launchProfile_createdAt,+    launchProfile_createdBy,+    launchProfile_description,+    launchProfile_ec2SubnetIds,+    launchProfile_launchProfileId,+    launchProfile_launchProfileProtocolVersions,+    launchProfile_name,+    launchProfile_state,+    launchProfile_statusCode,+    launchProfile_statusMessage,+    launchProfile_streamConfiguration,+    launchProfile_studioComponentIds,+    launchProfile_tags,+    launchProfile_updatedAt,+    launchProfile_updatedBy,+    launchProfile_validationResults,++    -- * LaunchProfileInitialization+    LaunchProfileInitialization (..),+    newLaunchProfileInitialization,+    launchProfileInitialization_activeDirectory,+    launchProfileInitialization_ec2SecurityGroupIds,+    launchProfileInitialization_launchProfileId,+    launchProfileInitialization_launchProfileProtocolVersion,+    launchProfileInitialization_launchPurpose,+    launchProfileInitialization_name,+    launchProfileInitialization_platform,+    launchProfileInitialization_systemInitializationScripts,+    launchProfileInitialization_userInitializationScripts,++    -- * LaunchProfileInitializationActiveDirectory+    LaunchProfileInitializationActiveDirectory (..),+    newLaunchProfileInitializationActiveDirectory,+    launchProfileInitializationActiveDirectory_computerAttributes,+    launchProfileInitializationActiveDirectory_directoryId,+    launchProfileInitializationActiveDirectory_directoryName,+    launchProfileInitializationActiveDirectory_dnsIpAddresses,+    launchProfileInitializationActiveDirectory_organizationalUnitDistinguishedName,+    launchProfileInitializationActiveDirectory_studioComponentId,+    launchProfileInitializationActiveDirectory_studioComponentName,++    -- * LaunchProfileInitializationScript+    LaunchProfileInitializationScript (..),+    newLaunchProfileInitializationScript,+    launchProfileInitializationScript_runtimeRoleArn,+    launchProfileInitializationScript_script,+    launchProfileInitializationScript_secureInitializationRoleArn,+    launchProfileInitializationScript_studioComponentId,+    launchProfileInitializationScript_studioComponentName,++    -- * LaunchProfileMembership+    LaunchProfileMembership (..),+    newLaunchProfileMembership,+    launchProfileMembership_identityStoreId,+    launchProfileMembership_persona,+    launchProfileMembership_principalId,+    launchProfileMembership_sid,++    -- * LicenseServiceConfiguration+    LicenseServiceConfiguration (..),+    newLicenseServiceConfiguration,+    licenseServiceConfiguration_endpoint,++    -- * NewLaunchProfileMember+    NewLaunchProfileMember (..),+    newNewLaunchProfileMember,+    newLaunchProfileMember_persona,+    newLaunchProfileMember_principalId,++    -- * NewStudioMember+    NewStudioMember (..),+    newNewStudioMember,+    newStudioMember_persona,+    newStudioMember_principalId,++    -- * ScriptParameterKeyValue+    ScriptParameterKeyValue (..),+    newScriptParameterKeyValue,+    scriptParameterKeyValue_key,+    scriptParameterKeyValue_value,++    -- * SharedFileSystemConfiguration+    SharedFileSystemConfiguration (..),+    newSharedFileSystemConfiguration,+    sharedFileSystemConfiguration_endpoint,+    sharedFileSystemConfiguration_fileSystemId,+    sharedFileSystemConfiguration_linuxMountPoint,+    sharedFileSystemConfiguration_shareName,+    sharedFileSystemConfiguration_windowsMountDrive,++    -- * StreamConfiguration+    StreamConfiguration (..),+    newStreamConfiguration,+    streamConfiguration_automaticTerminationMode,+    streamConfiguration_maxSessionLengthInMinutes,+    streamConfiguration_maxStoppedSessionLengthInMinutes,+    streamConfiguration_sessionBackup,+    streamConfiguration_sessionPersistenceMode,+    streamConfiguration_sessionStorage,+    streamConfiguration_volumeConfiguration,+    streamConfiguration_clipboardMode,+    streamConfiguration_ec2InstanceTypes,+    streamConfiguration_streamingImageIds,++    -- * StreamConfigurationCreate+    StreamConfigurationCreate (..),+    newStreamConfigurationCreate,+    streamConfigurationCreate_automaticTerminationMode,+    streamConfigurationCreate_maxSessionLengthInMinutes,+    streamConfigurationCreate_maxStoppedSessionLengthInMinutes,+    streamConfigurationCreate_sessionBackup,+    streamConfigurationCreate_sessionPersistenceMode,+    streamConfigurationCreate_sessionStorage,+    streamConfigurationCreate_volumeConfiguration,+    streamConfigurationCreate_clipboardMode,+    streamConfigurationCreate_ec2InstanceTypes,+    streamConfigurationCreate_streamingImageIds,++    -- * StreamConfigurationSessionBackup+    StreamConfigurationSessionBackup (..),+    newStreamConfigurationSessionBackup,+    streamConfigurationSessionBackup_maxBackupsToRetain,+    streamConfigurationSessionBackup_mode,++    -- * StreamConfigurationSessionStorage+    StreamConfigurationSessionStorage (..),+    newStreamConfigurationSessionStorage,+    streamConfigurationSessionStorage_root,+    streamConfigurationSessionStorage_mode,++    -- * StreamingImage+    StreamingImage (..),+    newStreamingImage,+    streamingImage_arn,+    streamingImage_description,+    streamingImage_ec2ImageId,+    streamingImage_encryptionConfiguration,+    streamingImage_eulaIds,+    streamingImage_name,+    streamingImage_owner,+    streamingImage_platform,+    streamingImage_state,+    streamingImage_statusCode,+    streamingImage_statusMessage,+    streamingImage_streamingImageId,+    streamingImage_tags,++    -- * StreamingImageEncryptionConfiguration+    StreamingImageEncryptionConfiguration (..),+    newStreamingImageEncryptionConfiguration,+    streamingImageEncryptionConfiguration_keyArn,+    streamingImageEncryptionConfiguration_keyType,++    -- * StreamingSession+    StreamingSession (..),+    newStreamingSession,+    streamingSession_arn,+    streamingSession_automaticTerminationMode,+    streamingSession_backupMode,+    streamingSession_createdAt,+    streamingSession_createdBy,+    streamingSession_ec2InstanceType,+    streamingSession_launchProfileId,+    streamingSession_maxBackupsToRetain,+    streamingSession_ownedBy,+    streamingSession_sessionId,+    streamingSession_sessionPersistenceMode,+    streamingSession_startedAt,+    streamingSession_startedBy,+    streamingSession_startedFromBackupId,+    streamingSession_state,+    streamingSession_statusCode,+    streamingSession_statusMessage,+    streamingSession_stopAt,+    streamingSession_stoppedAt,+    streamingSession_stoppedBy,+    streamingSession_streamingImageId,+    streamingSession_tags,+    streamingSession_terminateAt,+    streamingSession_updatedAt,+    streamingSession_updatedBy,+    streamingSession_volumeConfiguration,+    streamingSession_volumeRetentionMode,++    -- * StreamingSessionBackup+    StreamingSessionBackup (..),+    newStreamingSessionBackup,+    streamingSessionBackup_arn,+    streamingSessionBackup_backupId,+    streamingSessionBackup_createdAt,+    streamingSessionBackup_launchProfileId,+    streamingSessionBackup_ownedBy,+    streamingSessionBackup_sessionId,+    streamingSessionBackup_state,+    streamingSessionBackup_statusCode,+    streamingSessionBackup_statusMessage,+    streamingSessionBackup_tags,++    -- * StreamingSessionStorageRoot+    StreamingSessionStorageRoot (..),+    newStreamingSessionStorageRoot,+    streamingSessionStorageRoot_linux,+    streamingSessionStorageRoot_windows,++    -- * StreamingSessionStream+    StreamingSessionStream (..),+    newStreamingSessionStream,+    streamingSessionStream_createdAt,+    streamingSessionStream_createdBy,+    streamingSessionStream_expiresAt,+    streamingSessionStream_ownedBy,+    streamingSessionStream_state,+    streamingSessionStream_statusCode,+    streamingSessionStream_streamId,+    streamingSessionStream_url,++    -- * Studio+    Studio (..),+    newStudio,+    studio_adminRoleArn,+    studio_arn,+    studio_createdAt,+    studio_displayName,+    studio_homeRegion,+    studio_ssoClientId,+    studio_state,+    studio_statusCode,+    studio_statusMessage,+    studio_studioEncryptionConfiguration,+    studio_studioId,+    studio_studioName,+    studio_studioUrl,+    studio_tags,+    studio_updatedAt,+    studio_userRoleArn,++    -- * StudioComponent+    StudioComponent (..),+    newStudioComponent,+    studioComponent_arn,+    studioComponent_configuration,+    studioComponent_createdAt,+    studioComponent_createdBy,+    studioComponent_description,+    studioComponent_ec2SecurityGroupIds,+    studioComponent_initializationScripts,+    studioComponent_name,+    studioComponent_runtimeRoleArn,+    studioComponent_scriptParameters,+    studioComponent_secureInitializationRoleArn,+    studioComponent_state,+    studioComponent_statusCode,+    studioComponent_statusMessage,+    studioComponent_studioComponentId,+    studioComponent_subtype,+    studioComponent_tags,+    studioComponent_type,+    studioComponent_updatedAt,+    studioComponent_updatedBy,++    -- * StudioComponentConfiguration+    StudioComponentConfiguration (..),+    newStudioComponentConfiguration,+    studioComponentConfiguration_activeDirectoryConfiguration,+    studioComponentConfiguration_computeFarmConfiguration,+    studioComponentConfiguration_licenseServiceConfiguration,+    studioComponentConfiguration_sharedFileSystemConfiguration,++    -- * StudioComponentInitializationScript+    StudioComponentInitializationScript (..),+    newStudioComponentInitializationScript,+    studioComponentInitializationScript_launchProfileProtocolVersion,+    studioComponentInitializationScript_platform,+    studioComponentInitializationScript_runContext,+    studioComponentInitializationScript_script,++    -- * StudioComponentSummary+    StudioComponentSummary (..),+    newStudioComponentSummary,+    studioComponentSummary_createdAt,+    studioComponentSummary_createdBy,+    studioComponentSummary_description,+    studioComponentSummary_name,+    studioComponentSummary_studioComponentId,+    studioComponentSummary_subtype,+    studioComponentSummary_type,+    studioComponentSummary_updatedAt,+    studioComponentSummary_updatedBy,++    -- * StudioEncryptionConfiguration+    StudioEncryptionConfiguration (..),+    newStudioEncryptionConfiguration,+    studioEncryptionConfiguration_keyArn,+    studioEncryptionConfiguration_keyType,++    -- * StudioMembership+    StudioMembership (..),+    newStudioMembership,+    studioMembership_identityStoreId,+    studioMembership_persona,+    studioMembership_principalId,+    studioMembership_sid,++    -- * ValidationResult+    ValidationResult (..),+    newValidationResult,+    validationResult_state,+    validationResult_statusCode,+    validationResult_statusMessage,+    validationResult_type,++    -- * VolumeConfiguration+    VolumeConfiguration (..),+    newVolumeConfiguration,+    volumeConfiguration_iops,+    volumeConfiguration_size,+    volumeConfiguration_throughput,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.Nimble.Types.ActiveDirectoryComputerAttribute+import Amazonka.Nimble.Types.ActiveDirectoryConfiguration+import Amazonka.Nimble.Types.AutomaticTerminationMode+import Amazonka.Nimble.Types.ComputeFarmConfiguration+import Amazonka.Nimble.Types.Eula+import Amazonka.Nimble.Types.EulaAcceptance+import Amazonka.Nimble.Types.LaunchProfile+import Amazonka.Nimble.Types.LaunchProfileInitialization+import Amazonka.Nimble.Types.LaunchProfileInitializationActiveDirectory+import Amazonka.Nimble.Types.LaunchProfileInitializationScript+import Amazonka.Nimble.Types.LaunchProfileMembership+import Amazonka.Nimble.Types.LaunchProfilePersona+import Amazonka.Nimble.Types.LaunchProfilePlatform+import Amazonka.Nimble.Types.LaunchProfileState+import Amazonka.Nimble.Types.LaunchProfileStatusCode+import Amazonka.Nimble.Types.LaunchProfileValidationState+import Amazonka.Nimble.Types.LaunchProfileValidationStatusCode+import Amazonka.Nimble.Types.LaunchProfileValidationType+import Amazonka.Nimble.Types.LicenseServiceConfiguration+import Amazonka.Nimble.Types.NewLaunchProfileMember+import Amazonka.Nimble.Types.NewStudioMember+import Amazonka.Nimble.Types.ScriptParameterKeyValue+import Amazonka.Nimble.Types.SessionBackupMode+import Amazonka.Nimble.Types.SessionPersistenceMode+import Amazonka.Nimble.Types.SharedFileSystemConfiguration+import Amazonka.Nimble.Types.StreamConfiguration+import Amazonka.Nimble.Types.StreamConfigurationCreate+import Amazonka.Nimble.Types.StreamConfigurationSessionBackup+import Amazonka.Nimble.Types.StreamConfigurationSessionStorage+import Amazonka.Nimble.Types.StreamingClipboardMode+import Amazonka.Nimble.Types.StreamingImage+import Amazonka.Nimble.Types.StreamingImageEncryptionConfiguration+import Amazonka.Nimble.Types.StreamingImageEncryptionConfigurationKeyType+import Amazonka.Nimble.Types.StreamingImageState+import Amazonka.Nimble.Types.StreamingImageStatusCode+import Amazonka.Nimble.Types.StreamingInstanceType+import Amazonka.Nimble.Types.StreamingSession+import Amazonka.Nimble.Types.StreamingSessionBackup+import Amazonka.Nimble.Types.StreamingSessionState+import Amazonka.Nimble.Types.StreamingSessionStatusCode+import Amazonka.Nimble.Types.StreamingSessionStorageMode+import Amazonka.Nimble.Types.StreamingSessionStorageRoot+import Amazonka.Nimble.Types.StreamingSessionStream+import Amazonka.Nimble.Types.StreamingSessionStreamState+import Amazonka.Nimble.Types.StreamingSessionStreamStatusCode+import Amazonka.Nimble.Types.Studio+import Amazonka.Nimble.Types.StudioComponent+import Amazonka.Nimble.Types.StudioComponentConfiguration+import Amazonka.Nimble.Types.StudioComponentInitializationScript+import Amazonka.Nimble.Types.StudioComponentInitializationScriptRunContext+import Amazonka.Nimble.Types.StudioComponentState+import Amazonka.Nimble.Types.StudioComponentStatusCode+import Amazonka.Nimble.Types.StudioComponentSubtype+import Amazonka.Nimble.Types.StudioComponentSummary+import Amazonka.Nimble.Types.StudioComponentType+import Amazonka.Nimble.Types.StudioEncryptionConfiguration+import Amazonka.Nimble.Types.StudioEncryptionConfigurationKeyType+import Amazonka.Nimble.Types.StudioMembership+import Amazonka.Nimble.Types.StudioPersona+import Amazonka.Nimble.Types.StudioState+import Amazonka.Nimble.Types.StudioStatusCode+import Amazonka.Nimble.Types.ValidationResult+import Amazonka.Nimble.Types.VolumeConfiguration+import Amazonka.Nimble.Types.VolumeRetentionMode+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Sign.V4 as Sign++-- | API version @2020-08-01@ of the Amazon NimbleStudio SDK configuration.+defaultService :: Core.Service+defaultService =+  Core.Service+    { Core.abbrev = "Nimble",+      Core.signer = Sign.v4,+      Core.endpointPrefix = "nimble",+      Core.signingName = "nimble",+      Core.version = "2020-08-01",+      Core.s3AddressingStyle = Core.S3AddressingStyleAuto,+      Core.endpoint = Core.defaultEndpoint defaultService,+      Core.timeout = Prelude.Just 70,+      Core.check = Core.statusSuccess,+      Core.error = Core.parseJSONError "Nimble",+      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++-- | You are not authorized to perform this operation. Check your IAM+-- policies, and ensure that you are using the correct access keys.+_AccessDeniedException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_AccessDeniedException =+  Core._MatchServiceError+    defaultService+    "AccessDeniedException"+    Prelude.. Core.hasStatus 403++-- | Another operation is in progress.+_ConflictException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ConflictException =+  Core._MatchServiceError+    defaultService+    "ConflictException"+    Prelude.. Core.hasStatus 409++-- | An internal error has occurred. Please retry your request.+_InternalServerErrorException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InternalServerErrorException =+  Core._MatchServiceError+    defaultService+    "InternalServerErrorException"+    Prelude.. Core.hasStatus 500++-- | The specified resource could not be found.+_ResourceNotFoundException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ResourceNotFoundException =+  Core._MatchServiceError+    defaultService+    "ResourceNotFoundException"+    Prelude.. Core.hasStatus 404++-- | Your current quota does not allow you to perform the request action. You+-- can request increases for some quotas, and other quotas cannot be+-- increased.+--+-- Please use Amazon Web Services Service Quotas to request an increase.+_ServiceQuotaExceededException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ServiceQuotaExceededException =+  Core._MatchServiceError+    defaultService+    "ServiceQuotaExceededException"+    Prelude.. Core.hasStatus 402++-- | The request throughput limit was exceeded.+_ThrottlingException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ThrottlingException =+  Core._MatchServiceError+    defaultService+    "ThrottlingException"+    Prelude.. Core.hasStatus 429++-- | One of the parameters in the request is invalid.+_ValidationException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ValidationException =+  Core._MatchServiceError+    defaultService+    "ValidationException"+    Prelude.. Core.hasStatus 400
+ gen/Amazonka/Nimble/Types/ActiveDirectoryComputerAttribute.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.Nimble.Types.ActiveDirectoryComputerAttribute+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Nimble.Types.ActiveDirectoryComputerAttribute where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | An LDAP attribute of an Active Directory computer account, in the form+-- of a name:value pair.+--+-- /See:/ 'newActiveDirectoryComputerAttribute' smart constructor.+data ActiveDirectoryComputerAttribute = ActiveDirectoryComputerAttribute'+  { -- | The name for the LDAP attribute.+    name :: Prelude.Maybe Prelude.Text,+    -- | The value for the LDAP attribute.+    value :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ActiveDirectoryComputerAttribute' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'activeDirectoryComputerAttribute_name' - The name for the LDAP attribute.+--+-- 'value', 'activeDirectoryComputerAttribute_value' - The value for the LDAP attribute.+newActiveDirectoryComputerAttribute ::+  ActiveDirectoryComputerAttribute+newActiveDirectoryComputerAttribute =+  ActiveDirectoryComputerAttribute'+    { name =+        Prelude.Nothing,+      value = Prelude.Nothing+    }++-- | The name for the LDAP attribute.+activeDirectoryComputerAttribute_name :: Lens.Lens' ActiveDirectoryComputerAttribute (Prelude.Maybe Prelude.Text)+activeDirectoryComputerAttribute_name = Lens.lens (\ActiveDirectoryComputerAttribute' {name} -> name) (\s@ActiveDirectoryComputerAttribute' {} a -> s {name = a} :: ActiveDirectoryComputerAttribute)++-- | The value for the LDAP attribute.+activeDirectoryComputerAttribute_value :: Lens.Lens' ActiveDirectoryComputerAttribute (Prelude.Maybe Prelude.Text)+activeDirectoryComputerAttribute_value = Lens.lens (\ActiveDirectoryComputerAttribute' {value} -> value) (\s@ActiveDirectoryComputerAttribute' {} a -> s {value = a} :: ActiveDirectoryComputerAttribute)++instance+  Data.FromJSON+    ActiveDirectoryComputerAttribute+  where+  parseJSON =+    Data.withObject+      "ActiveDirectoryComputerAttribute"+      ( \x ->+          ActiveDirectoryComputerAttribute'+            Prelude.<$> (x Data..:? "name")+            Prelude.<*> (x Data..:? "value")+      )++instance+  Prelude.Hashable+    ActiveDirectoryComputerAttribute+  where+  hashWithSalt+    _salt+    ActiveDirectoryComputerAttribute' {..} =+      _salt+        `Prelude.hashWithSalt` name+        `Prelude.hashWithSalt` value++instance+  Prelude.NFData+    ActiveDirectoryComputerAttribute+  where+  rnf ActiveDirectoryComputerAttribute' {..} =+    Prelude.rnf name `Prelude.seq` Prelude.rnf value++instance Data.ToJSON ActiveDirectoryComputerAttribute where+  toJSON ActiveDirectoryComputerAttribute' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("name" Data..=) Prelude.<$> name,+            ("value" Data..=) Prelude.<$> value+          ]+      )
+ gen/Amazonka/Nimble/Types/ActiveDirectoryConfiguration.hs view
@@ -0,0 +1,124 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Nimble.Types.ActiveDirectoryConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Nimble.Types.ActiveDirectoryConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Nimble.Types.ActiveDirectoryComputerAttribute+import qualified Amazonka.Prelude as Prelude++-- | The configuration for a Directory Service for Microsoft Active Directory+-- studio resource.+--+-- /See:/ 'newActiveDirectoryConfiguration' smart constructor.+data ActiveDirectoryConfiguration = ActiveDirectoryConfiguration'+  { -- | A collection of custom attributes for an Active Directory computer.+    computerAttributes :: Prelude.Maybe (Data.Sensitive [ActiveDirectoryComputerAttribute]),+    -- | The directory ID of the Directory Service for Microsoft Active Directory+    -- to access using this studio component.+    directoryId :: Prelude.Maybe Prelude.Text,+    -- | The distinguished name (DN) and organizational unit (OU) of an Active+    -- Directory computer.+    organizationalUnitDistinguishedName :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ActiveDirectoryConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'computerAttributes', 'activeDirectoryConfiguration_computerAttributes' - A collection of custom attributes for an Active Directory computer.+--+-- 'directoryId', 'activeDirectoryConfiguration_directoryId' - The directory ID of the Directory Service for Microsoft Active Directory+-- to access using this studio component.+--+-- 'organizationalUnitDistinguishedName', 'activeDirectoryConfiguration_organizationalUnitDistinguishedName' - The distinguished name (DN) and organizational unit (OU) of an Active+-- Directory computer.+newActiveDirectoryConfiguration ::+  ActiveDirectoryConfiguration+newActiveDirectoryConfiguration =+  ActiveDirectoryConfiguration'+    { computerAttributes =+        Prelude.Nothing,+      directoryId = Prelude.Nothing,+      organizationalUnitDistinguishedName =+        Prelude.Nothing+    }++-- | A collection of custom attributes for an Active Directory computer.+activeDirectoryConfiguration_computerAttributes :: Lens.Lens' ActiveDirectoryConfiguration (Prelude.Maybe [ActiveDirectoryComputerAttribute])+activeDirectoryConfiguration_computerAttributes = Lens.lens (\ActiveDirectoryConfiguration' {computerAttributes} -> computerAttributes) (\s@ActiveDirectoryConfiguration' {} a -> s {computerAttributes = a} :: ActiveDirectoryConfiguration) Prelude.. Lens.mapping (Data._Sensitive Prelude.. Lens.coerced)++-- | The directory ID of the Directory Service for Microsoft Active Directory+-- to access using this studio component.+activeDirectoryConfiguration_directoryId :: Lens.Lens' ActiveDirectoryConfiguration (Prelude.Maybe Prelude.Text)+activeDirectoryConfiguration_directoryId = Lens.lens (\ActiveDirectoryConfiguration' {directoryId} -> directoryId) (\s@ActiveDirectoryConfiguration' {} a -> s {directoryId = a} :: ActiveDirectoryConfiguration)++-- | The distinguished name (DN) and organizational unit (OU) of an Active+-- Directory computer.+activeDirectoryConfiguration_organizationalUnitDistinguishedName :: Lens.Lens' ActiveDirectoryConfiguration (Prelude.Maybe Prelude.Text)+activeDirectoryConfiguration_organizationalUnitDistinguishedName = Lens.lens (\ActiveDirectoryConfiguration' {organizationalUnitDistinguishedName} -> organizationalUnitDistinguishedName) (\s@ActiveDirectoryConfiguration' {} a -> s {organizationalUnitDistinguishedName = a} :: ActiveDirectoryConfiguration)++instance Data.FromJSON ActiveDirectoryConfiguration where+  parseJSON =+    Data.withObject+      "ActiveDirectoryConfiguration"+      ( \x ->+          ActiveDirectoryConfiguration'+            Prelude.<$> ( x+                            Data..:? "computerAttributes"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "directoryId")+            Prelude.<*> (x Data..:? "organizationalUnitDistinguishedName")+      )++instance+  Prelude.Hashable+    ActiveDirectoryConfiguration+  where+  hashWithSalt _salt ActiveDirectoryConfiguration' {..} =+    _salt+      `Prelude.hashWithSalt` computerAttributes+      `Prelude.hashWithSalt` directoryId+      `Prelude.hashWithSalt` organizationalUnitDistinguishedName++instance Prelude.NFData ActiveDirectoryConfiguration where+  rnf ActiveDirectoryConfiguration' {..} =+    Prelude.rnf computerAttributes+      `Prelude.seq` Prelude.rnf directoryId+      `Prelude.seq` Prelude.rnf organizationalUnitDistinguishedName++instance Data.ToJSON ActiveDirectoryConfiguration where+  toJSON ActiveDirectoryConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("computerAttributes" Data..=)+              Prelude.<$> computerAttributes,+            ("directoryId" Data..=) Prelude.<$> directoryId,+            ("organizationalUnitDistinguishedName" Data..=)+              Prelude.<$> organizationalUnitDistinguishedName+          ]+      )
+ gen/Amazonka/Nimble/Types/AutomaticTerminationMode.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.Nimble.Types.AutomaticTerminationMode+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Nimble.Types.AutomaticTerminationMode+  ( AutomaticTerminationMode+      ( ..,+        AutomaticTerminationMode_ACTIVATED,+        AutomaticTerminationMode_DEACTIVATED+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype AutomaticTerminationMode = AutomaticTerminationMode'+  { fromAutomaticTerminationMode ::+      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 AutomaticTerminationMode_ACTIVATED :: AutomaticTerminationMode+pattern AutomaticTerminationMode_ACTIVATED = AutomaticTerminationMode' "ACTIVATED"++pattern AutomaticTerminationMode_DEACTIVATED :: AutomaticTerminationMode+pattern AutomaticTerminationMode_DEACTIVATED = AutomaticTerminationMode' "DEACTIVATED"++{-# COMPLETE+  AutomaticTerminationMode_ACTIVATED,+  AutomaticTerminationMode_DEACTIVATED,+  AutomaticTerminationMode'+  #-}
+ gen/Amazonka/Nimble/Types/ComputeFarmConfiguration.hs view
@@ -0,0 +1,102 @@+{-# 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.Nimble.Types.ComputeFarmConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Nimble.Types.ComputeFarmConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The configuration for a render farm that is associated with a studio+-- resource.+--+-- /See:/ 'newComputeFarmConfiguration' smart constructor.+data ComputeFarmConfiguration = ComputeFarmConfiguration'+  { -- | The name of an Active Directory user that is used on ComputeFarm worker+    -- instances.+    activeDirectoryUser :: Prelude.Maybe Prelude.Text,+    -- | The endpoint of the ComputeFarm that is accessed by the studio component+    -- resource.+    endpoint :: Prelude.Maybe (Data.Sensitive Prelude.Text)+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ComputeFarmConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'activeDirectoryUser', 'computeFarmConfiguration_activeDirectoryUser' - The name of an Active Directory user that is used on ComputeFarm worker+-- instances.+--+-- 'endpoint', 'computeFarmConfiguration_endpoint' - The endpoint of the ComputeFarm that is accessed by the studio component+-- resource.+newComputeFarmConfiguration ::+  ComputeFarmConfiguration+newComputeFarmConfiguration =+  ComputeFarmConfiguration'+    { activeDirectoryUser =+        Prelude.Nothing,+      endpoint = Prelude.Nothing+    }++-- | The name of an Active Directory user that is used on ComputeFarm worker+-- instances.+computeFarmConfiguration_activeDirectoryUser :: Lens.Lens' ComputeFarmConfiguration (Prelude.Maybe Prelude.Text)+computeFarmConfiguration_activeDirectoryUser = Lens.lens (\ComputeFarmConfiguration' {activeDirectoryUser} -> activeDirectoryUser) (\s@ComputeFarmConfiguration' {} a -> s {activeDirectoryUser = a} :: ComputeFarmConfiguration)++-- | The endpoint of the ComputeFarm that is accessed by the studio component+-- resource.+computeFarmConfiguration_endpoint :: Lens.Lens' ComputeFarmConfiguration (Prelude.Maybe Prelude.Text)+computeFarmConfiguration_endpoint = Lens.lens (\ComputeFarmConfiguration' {endpoint} -> endpoint) (\s@ComputeFarmConfiguration' {} a -> s {endpoint = a} :: ComputeFarmConfiguration) Prelude.. Lens.mapping Data._Sensitive++instance Data.FromJSON ComputeFarmConfiguration where+  parseJSON =+    Data.withObject+      "ComputeFarmConfiguration"+      ( \x ->+          ComputeFarmConfiguration'+            Prelude.<$> (x Data..:? "activeDirectoryUser")+            Prelude.<*> (x Data..:? "endpoint")+      )++instance Prelude.Hashable ComputeFarmConfiguration where+  hashWithSalt _salt ComputeFarmConfiguration' {..} =+    _salt+      `Prelude.hashWithSalt` activeDirectoryUser+      `Prelude.hashWithSalt` endpoint++instance Prelude.NFData ComputeFarmConfiguration where+  rnf ComputeFarmConfiguration' {..} =+    Prelude.rnf activeDirectoryUser+      `Prelude.seq` Prelude.rnf endpoint++instance Data.ToJSON ComputeFarmConfiguration where+  toJSON ComputeFarmConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("activeDirectoryUser" Data..=)+              Prelude.<$> activeDirectoryUser,+            ("endpoint" Data..=) Prelude.<$> endpoint+          ]+      )
+ gen/Amazonka/Nimble/Types/Eula.hs view
@@ -0,0 +1,120 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Nimble.Types.Eula+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Nimble.Types.Eula where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Represents a EULA resource.+--+-- /See:/ 'newEula' smart constructor.+data Eula = Eula'+  { -- | The EULA content.+    content :: Prelude.Maybe Prelude.Text,+    -- | The ISO timestamp in seconds for when the resource was created.+    createdAt :: Prelude.Maybe Data.ISO8601,+    -- | The EULA ID.+    eulaId :: Prelude.Maybe Prelude.Text,+    -- | The name for the EULA.+    name :: Prelude.Maybe Prelude.Text,+    -- | The ISO timestamp in seconds for when the resource was updated.+    updatedAt :: Prelude.Maybe Data.ISO8601+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Eula' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'content', 'eula_content' - The EULA content.+--+-- 'createdAt', 'eula_createdAt' - The ISO timestamp in seconds for when the resource was created.+--+-- 'eulaId', 'eula_eulaId' - The EULA ID.+--+-- 'name', 'eula_name' - The name for the EULA.+--+-- 'updatedAt', 'eula_updatedAt' - The ISO timestamp in seconds for when the resource was updated.+newEula ::+  Eula+newEula =+  Eula'+    { content = Prelude.Nothing,+      createdAt = Prelude.Nothing,+      eulaId = Prelude.Nothing,+      name = Prelude.Nothing,+      updatedAt = Prelude.Nothing+    }++-- | The EULA content.+eula_content :: Lens.Lens' Eula (Prelude.Maybe Prelude.Text)+eula_content = Lens.lens (\Eula' {content} -> content) (\s@Eula' {} a -> s {content = a} :: Eula)++-- | The ISO timestamp in seconds for when the resource was created.+eula_createdAt :: Lens.Lens' Eula (Prelude.Maybe Prelude.UTCTime)+eula_createdAt = Lens.lens (\Eula' {createdAt} -> createdAt) (\s@Eula' {} a -> s {createdAt = a} :: Eula) Prelude.. Lens.mapping Data._Time++-- | The EULA ID.+eula_eulaId :: Lens.Lens' Eula (Prelude.Maybe Prelude.Text)+eula_eulaId = Lens.lens (\Eula' {eulaId} -> eulaId) (\s@Eula' {} a -> s {eulaId = a} :: Eula)++-- | The name for the EULA.+eula_name :: Lens.Lens' Eula (Prelude.Maybe Prelude.Text)+eula_name = Lens.lens (\Eula' {name} -> name) (\s@Eula' {} a -> s {name = a} :: Eula)++-- | The ISO timestamp in seconds for when the resource was updated.+eula_updatedAt :: Lens.Lens' Eula (Prelude.Maybe Prelude.UTCTime)+eula_updatedAt = Lens.lens (\Eula' {updatedAt} -> updatedAt) (\s@Eula' {} a -> s {updatedAt = a} :: Eula) Prelude.. Lens.mapping Data._Time++instance Data.FromJSON Eula where+  parseJSON =+    Data.withObject+      "Eula"+      ( \x ->+          Eula'+            Prelude.<$> (x Data..:? "content")+            Prelude.<*> (x Data..:? "createdAt")+            Prelude.<*> (x Data..:? "eulaId")+            Prelude.<*> (x Data..:? "name")+            Prelude.<*> (x Data..:? "updatedAt")+      )++instance Prelude.Hashable Eula where+  hashWithSalt _salt Eula' {..} =+    _salt+      `Prelude.hashWithSalt` content+      `Prelude.hashWithSalt` createdAt+      `Prelude.hashWithSalt` eulaId+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` updatedAt++instance Prelude.NFData Eula where+  rnf Eula' {..} =+    Prelude.rnf content+      `Prelude.seq` Prelude.rnf createdAt+      `Prelude.seq` Prelude.rnf eulaId+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf updatedAt
+ gen/Amazonka/Nimble/Types/EulaAcceptance.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.Nimble.Types.EulaAcceptance+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Nimble.Types.EulaAcceptance 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 acceptance of a EULA, required to use Amazon-provided streaming+-- images.+--+-- /See:/ 'newEulaAcceptance' smart constructor.+data EulaAcceptance = EulaAcceptance'+  { -- | The ISO timestamp in seconds for when the EULA was accepted.+    acceptedAt :: Prelude.Maybe Data.ISO8601,+    -- | The ID of the person who accepted the EULA.+    acceptedBy :: Prelude.Maybe Prelude.Text,+    -- | The ID of the acceptee.+    accepteeId :: Prelude.Maybe Prelude.Text,+    -- | The EULA acceptance ID.+    eulaAcceptanceId :: Prelude.Maybe Prelude.Text,+    -- | The EULA ID.+    eulaId :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'EulaAcceptance' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'acceptedAt', 'eulaAcceptance_acceptedAt' - The ISO timestamp in seconds for when the EULA was accepted.+--+-- 'acceptedBy', 'eulaAcceptance_acceptedBy' - The ID of the person who accepted the EULA.+--+-- 'accepteeId', 'eulaAcceptance_accepteeId' - The ID of the acceptee.+--+-- 'eulaAcceptanceId', 'eulaAcceptance_eulaAcceptanceId' - The EULA acceptance ID.+--+-- 'eulaId', 'eulaAcceptance_eulaId' - The EULA ID.+newEulaAcceptance ::+  EulaAcceptance+newEulaAcceptance =+  EulaAcceptance'+    { acceptedAt = Prelude.Nothing,+      acceptedBy = Prelude.Nothing,+      accepteeId = Prelude.Nothing,+      eulaAcceptanceId = Prelude.Nothing,+      eulaId = Prelude.Nothing+    }++-- | The ISO timestamp in seconds for when the EULA was accepted.+eulaAcceptance_acceptedAt :: Lens.Lens' EulaAcceptance (Prelude.Maybe Prelude.UTCTime)+eulaAcceptance_acceptedAt = Lens.lens (\EulaAcceptance' {acceptedAt} -> acceptedAt) (\s@EulaAcceptance' {} a -> s {acceptedAt = a} :: EulaAcceptance) Prelude.. Lens.mapping Data._Time++-- | The ID of the person who accepted the EULA.+eulaAcceptance_acceptedBy :: Lens.Lens' EulaAcceptance (Prelude.Maybe Prelude.Text)+eulaAcceptance_acceptedBy = Lens.lens (\EulaAcceptance' {acceptedBy} -> acceptedBy) (\s@EulaAcceptance' {} a -> s {acceptedBy = a} :: EulaAcceptance)++-- | The ID of the acceptee.+eulaAcceptance_accepteeId :: Lens.Lens' EulaAcceptance (Prelude.Maybe Prelude.Text)+eulaAcceptance_accepteeId = Lens.lens (\EulaAcceptance' {accepteeId} -> accepteeId) (\s@EulaAcceptance' {} a -> s {accepteeId = a} :: EulaAcceptance)++-- | The EULA acceptance ID.+eulaAcceptance_eulaAcceptanceId :: Lens.Lens' EulaAcceptance (Prelude.Maybe Prelude.Text)+eulaAcceptance_eulaAcceptanceId = Lens.lens (\EulaAcceptance' {eulaAcceptanceId} -> eulaAcceptanceId) (\s@EulaAcceptance' {} a -> s {eulaAcceptanceId = a} :: EulaAcceptance)++-- | The EULA ID.+eulaAcceptance_eulaId :: Lens.Lens' EulaAcceptance (Prelude.Maybe Prelude.Text)+eulaAcceptance_eulaId = Lens.lens (\EulaAcceptance' {eulaId} -> eulaId) (\s@EulaAcceptance' {} a -> s {eulaId = a} :: EulaAcceptance)++instance Data.FromJSON EulaAcceptance where+  parseJSON =+    Data.withObject+      "EulaAcceptance"+      ( \x ->+          EulaAcceptance'+            Prelude.<$> (x Data..:? "acceptedAt")+            Prelude.<*> (x Data..:? "acceptedBy")+            Prelude.<*> (x Data..:? "accepteeId")+            Prelude.<*> (x Data..:? "eulaAcceptanceId")+            Prelude.<*> (x Data..:? "eulaId")+      )++instance Prelude.Hashable EulaAcceptance where+  hashWithSalt _salt EulaAcceptance' {..} =+    _salt+      `Prelude.hashWithSalt` acceptedAt+      `Prelude.hashWithSalt` acceptedBy+      `Prelude.hashWithSalt` accepteeId+      `Prelude.hashWithSalt` eulaAcceptanceId+      `Prelude.hashWithSalt` eulaId++instance Prelude.NFData EulaAcceptance where+  rnf EulaAcceptance' {..} =+    Prelude.rnf acceptedAt+      `Prelude.seq` Prelude.rnf acceptedBy+      `Prelude.seq` Prelude.rnf accepteeId+      `Prelude.seq` Prelude.rnf eulaAcceptanceId+      `Prelude.seq` Prelude.rnf eulaId
+ gen/Amazonka/Nimble/Types/LaunchProfile.hs view
@@ -0,0 +1,298 @@+{-# 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.Nimble.Types.LaunchProfile+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Nimble.Types.LaunchProfile where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Nimble.Types.LaunchProfileState+import Amazonka.Nimble.Types.LaunchProfileStatusCode+import Amazonka.Nimble.Types.StreamConfiguration+import Amazonka.Nimble.Types.ValidationResult+import qualified Amazonka.Prelude as Prelude++-- | A launch profile controls your artist workforce’s access to studio+-- components, like compute farms, shared file systems, managed file+-- systems, and license server configurations, as well as instance types+-- and Amazon Machine Images (AMIs).+--+-- Studio administrators create launch profiles in the Nimble Studio+-- console. Artists can use their launch profiles to launch an instance+-- from the Nimble Studio portal. Each user’s launch profile defines how+-- they can launch a streaming session. By default, studio admins can use+-- all launch profiles.+--+-- /See:/ 'newLaunchProfile' smart constructor.+data LaunchProfile = LaunchProfile'+  { -- | The Amazon Resource Name (ARN) that is assigned to a studio resource and+    -- uniquely identifies it. ARNs are unique across all Regions.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The ISO timestamp in seconds for when the resource was created.+    createdAt :: Prelude.Maybe Data.ISO8601,+    -- | The user ID of the user that created the launch profile.+    createdBy :: Prelude.Maybe Prelude.Text,+    -- | A human-readable description of the launch profile.+    description :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | Unique identifiers for a collection of EC2 subnets.+    ec2SubnetIds :: Prelude.Maybe [Prelude.Text],+    -- | The ID of the launch profile used to control access from the streaming+    -- session.+    launchProfileId :: Prelude.Maybe Prelude.Text,+    -- | The version number of the protocol that is used by the launch profile.+    -- The only valid version is \"2021-03-31\".+    launchProfileProtocolVersions :: Prelude.Maybe [Prelude.Text],+    -- | A friendly name for the launch profile.+    name :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The current state.+    state :: Prelude.Maybe LaunchProfileState,+    -- | The status code.+    statusCode :: Prelude.Maybe LaunchProfileStatusCode,+    -- | The status message for the launch profile.+    statusMessage :: Prelude.Maybe Prelude.Text,+    -- | A configuration for a streaming session.+    streamConfiguration :: Prelude.Maybe StreamConfiguration,+    -- | Unique identifiers for a collection of studio components that can be+    -- used with this launch profile.+    studioComponentIds :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),+    -- | A collection of labels, in the form of key-value pairs, that apply to+    -- this resource.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The ISO timestamp in seconds for when the resource was updated.+    updatedAt :: Prelude.Maybe Data.ISO8601,+    -- | The user ID of the user that most recently updated the resource.+    updatedBy :: Prelude.Maybe Prelude.Text,+    -- | The list of the latest validation results.+    validationResults :: Prelude.Maybe [ValidationResult]+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'LaunchProfile' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'launchProfile_arn' - The Amazon Resource Name (ARN) that is assigned to a studio resource and+-- uniquely identifies it. ARNs are unique across all Regions.+--+-- 'createdAt', 'launchProfile_createdAt' - The ISO timestamp in seconds for when the resource was created.+--+-- 'createdBy', 'launchProfile_createdBy' - The user ID of the user that created the launch profile.+--+-- 'description', 'launchProfile_description' - A human-readable description of the launch profile.+--+-- 'ec2SubnetIds', 'launchProfile_ec2SubnetIds' - Unique identifiers for a collection of EC2 subnets.+--+-- 'launchProfileId', 'launchProfile_launchProfileId' - The ID of the launch profile used to control access from the streaming+-- session.+--+-- 'launchProfileProtocolVersions', 'launchProfile_launchProfileProtocolVersions' - The version number of the protocol that is used by the launch profile.+-- The only valid version is \"2021-03-31\".+--+-- 'name', 'launchProfile_name' - A friendly name for the launch profile.+--+-- 'state', 'launchProfile_state' - The current state.+--+-- 'statusCode', 'launchProfile_statusCode' - The status code.+--+-- 'statusMessage', 'launchProfile_statusMessage' - The status message for the launch profile.+--+-- 'streamConfiguration', 'launchProfile_streamConfiguration' - A configuration for a streaming session.+--+-- 'studioComponentIds', 'launchProfile_studioComponentIds' - Unique identifiers for a collection of studio components that can be+-- used with this launch profile.+--+-- 'tags', 'launchProfile_tags' - A collection of labels, in the form of key-value pairs, that apply to+-- this resource.+--+-- 'updatedAt', 'launchProfile_updatedAt' - The ISO timestamp in seconds for when the resource was updated.+--+-- 'updatedBy', 'launchProfile_updatedBy' - The user ID of the user that most recently updated the resource.+--+-- 'validationResults', 'launchProfile_validationResults' - The list of the latest validation results.+newLaunchProfile ::+  LaunchProfile+newLaunchProfile =+  LaunchProfile'+    { arn = Prelude.Nothing,+      createdAt = Prelude.Nothing,+      createdBy = Prelude.Nothing,+      description = Prelude.Nothing,+      ec2SubnetIds = Prelude.Nothing,+      launchProfileId = Prelude.Nothing,+      launchProfileProtocolVersions = Prelude.Nothing,+      name = Prelude.Nothing,+      state = Prelude.Nothing,+      statusCode = Prelude.Nothing,+      statusMessage = Prelude.Nothing,+      streamConfiguration = Prelude.Nothing,+      studioComponentIds = Prelude.Nothing,+      tags = Prelude.Nothing,+      updatedAt = Prelude.Nothing,+      updatedBy = Prelude.Nothing,+      validationResults = Prelude.Nothing+    }++-- | The Amazon Resource Name (ARN) that is assigned to a studio resource and+-- uniquely identifies it. ARNs are unique across all Regions.+launchProfile_arn :: Lens.Lens' LaunchProfile (Prelude.Maybe Prelude.Text)+launchProfile_arn = Lens.lens (\LaunchProfile' {arn} -> arn) (\s@LaunchProfile' {} a -> s {arn = a} :: LaunchProfile)++-- | The ISO timestamp in seconds for when the resource was created.+launchProfile_createdAt :: Lens.Lens' LaunchProfile (Prelude.Maybe Prelude.UTCTime)+launchProfile_createdAt = Lens.lens (\LaunchProfile' {createdAt} -> createdAt) (\s@LaunchProfile' {} a -> s {createdAt = a} :: LaunchProfile) Prelude.. Lens.mapping Data._Time++-- | The user ID of the user that created the launch profile.+launchProfile_createdBy :: Lens.Lens' LaunchProfile (Prelude.Maybe Prelude.Text)+launchProfile_createdBy = Lens.lens (\LaunchProfile' {createdBy} -> createdBy) (\s@LaunchProfile' {} a -> s {createdBy = a} :: LaunchProfile)++-- | A human-readable description of the launch profile.+launchProfile_description :: Lens.Lens' LaunchProfile (Prelude.Maybe Prelude.Text)+launchProfile_description = Lens.lens (\LaunchProfile' {description} -> description) (\s@LaunchProfile' {} a -> s {description = a} :: LaunchProfile) Prelude.. Lens.mapping Data._Sensitive++-- | Unique identifiers for a collection of EC2 subnets.+launchProfile_ec2SubnetIds :: Lens.Lens' LaunchProfile (Prelude.Maybe [Prelude.Text])+launchProfile_ec2SubnetIds = Lens.lens (\LaunchProfile' {ec2SubnetIds} -> ec2SubnetIds) (\s@LaunchProfile' {} a -> s {ec2SubnetIds = a} :: LaunchProfile) Prelude.. Lens.mapping Lens.coerced++-- | The ID of the launch profile used to control access from the streaming+-- session.+launchProfile_launchProfileId :: Lens.Lens' LaunchProfile (Prelude.Maybe Prelude.Text)+launchProfile_launchProfileId = Lens.lens (\LaunchProfile' {launchProfileId} -> launchProfileId) (\s@LaunchProfile' {} a -> s {launchProfileId = a} :: LaunchProfile)++-- | The version number of the protocol that is used by the launch profile.+-- The only valid version is \"2021-03-31\".+launchProfile_launchProfileProtocolVersions :: Lens.Lens' LaunchProfile (Prelude.Maybe [Prelude.Text])+launchProfile_launchProfileProtocolVersions = Lens.lens (\LaunchProfile' {launchProfileProtocolVersions} -> launchProfileProtocolVersions) (\s@LaunchProfile' {} a -> s {launchProfileProtocolVersions = a} :: LaunchProfile) Prelude.. Lens.mapping Lens.coerced++-- | A friendly name for the launch profile.+launchProfile_name :: Lens.Lens' LaunchProfile (Prelude.Maybe Prelude.Text)+launchProfile_name = Lens.lens (\LaunchProfile' {name} -> name) (\s@LaunchProfile' {} a -> s {name = a} :: LaunchProfile) Prelude.. Lens.mapping Data._Sensitive++-- | The current state.+launchProfile_state :: Lens.Lens' LaunchProfile (Prelude.Maybe LaunchProfileState)+launchProfile_state = Lens.lens (\LaunchProfile' {state} -> state) (\s@LaunchProfile' {} a -> s {state = a} :: LaunchProfile)++-- | The status code.+launchProfile_statusCode :: Lens.Lens' LaunchProfile (Prelude.Maybe LaunchProfileStatusCode)+launchProfile_statusCode = Lens.lens (\LaunchProfile' {statusCode} -> statusCode) (\s@LaunchProfile' {} a -> s {statusCode = a} :: LaunchProfile)++-- | The status message for the launch profile.+launchProfile_statusMessage :: Lens.Lens' LaunchProfile (Prelude.Maybe Prelude.Text)+launchProfile_statusMessage = Lens.lens (\LaunchProfile' {statusMessage} -> statusMessage) (\s@LaunchProfile' {} a -> s {statusMessage = a} :: LaunchProfile)++-- | A configuration for a streaming session.+launchProfile_streamConfiguration :: Lens.Lens' LaunchProfile (Prelude.Maybe StreamConfiguration)+launchProfile_streamConfiguration = Lens.lens (\LaunchProfile' {streamConfiguration} -> streamConfiguration) (\s@LaunchProfile' {} a -> s {streamConfiguration = a} :: LaunchProfile)++-- | Unique identifiers for a collection of studio components that can be+-- used with this launch profile.+launchProfile_studioComponentIds :: Lens.Lens' LaunchProfile (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+launchProfile_studioComponentIds = Lens.lens (\LaunchProfile' {studioComponentIds} -> studioComponentIds) (\s@LaunchProfile' {} a -> s {studioComponentIds = a} :: LaunchProfile) Prelude.. Lens.mapping Lens.coerced++-- | A collection of labels, in the form of key-value pairs, that apply to+-- this resource.+launchProfile_tags :: Lens.Lens' LaunchProfile (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+launchProfile_tags = Lens.lens (\LaunchProfile' {tags} -> tags) (\s@LaunchProfile' {} a -> s {tags = a} :: LaunchProfile) Prelude.. Lens.mapping Lens.coerced++-- | The ISO timestamp in seconds for when the resource was updated.+launchProfile_updatedAt :: Lens.Lens' LaunchProfile (Prelude.Maybe Prelude.UTCTime)+launchProfile_updatedAt = Lens.lens (\LaunchProfile' {updatedAt} -> updatedAt) (\s@LaunchProfile' {} a -> s {updatedAt = a} :: LaunchProfile) Prelude.. Lens.mapping Data._Time++-- | The user ID of the user that most recently updated the resource.+launchProfile_updatedBy :: Lens.Lens' LaunchProfile (Prelude.Maybe Prelude.Text)+launchProfile_updatedBy = Lens.lens (\LaunchProfile' {updatedBy} -> updatedBy) (\s@LaunchProfile' {} a -> s {updatedBy = a} :: LaunchProfile)++-- | The list of the latest validation results.+launchProfile_validationResults :: Lens.Lens' LaunchProfile (Prelude.Maybe [ValidationResult])+launchProfile_validationResults = Lens.lens (\LaunchProfile' {validationResults} -> validationResults) (\s@LaunchProfile' {} a -> s {validationResults = a} :: LaunchProfile) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON LaunchProfile where+  parseJSON =+    Data.withObject+      "LaunchProfile"+      ( \x ->+          LaunchProfile'+            Prelude.<$> (x Data..:? "arn")+            Prelude.<*> (x Data..:? "createdAt")+            Prelude.<*> (x Data..:? "createdBy")+            Prelude.<*> (x Data..:? "description")+            Prelude.<*> (x Data..:? "ec2SubnetIds" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "launchProfileId")+            Prelude.<*> ( x+                            Data..:? "launchProfileProtocolVersions"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "name")+            Prelude.<*> (x Data..:? "state")+            Prelude.<*> (x Data..:? "statusCode")+            Prelude.<*> (x Data..:? "statusMessage")+            Prelude.<*> (x Data..:? "streamConfiguration")+            Prelude.<*> (x Data..:? "studioComponentIds")+            Prelude.<*> (x Data..:? "tags" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "updatedAt")+            Prelude.<*> (x Data..:? "updatedBy")+            Prelude.<*> ( x+                            Data..:? "validationResults"+                            Data..!= Prelude.mempty+                        )+      )++instance Prelude.Hashable LaunchProfile where+  hashWithSalt _salt LaunchProfile' {..} =+    _salt+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` createdAt+      `Prelude.hashWithSalt` createdBy+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` ec2SubnetIds+      `Prelude.hashWithSalt` launchProfileId+      `Prelude.hashWithSalt` launchProfileProtocolVersions+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` state+      `Prelude.hashWithSalt` statusCode+      `Prelude.hashWithSalt` statusMessage+      `Prelude.hashWithSalt` streamConfiguration+      `Prelude.hashWithSalt` studioComponentIds+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` updatedAt+      `Prelude.hashWithSalt` updatedBy+      `Prelude.hashWithSalt` validationResults++instance Prelude.NFData LaunchProfile where+  rnf LaunchProfile' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf createdAt+      `Prelude.seq` Prelude.rnf createdBy+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf ec2SubnetIds+      `Prelude.seq` Prelude.rnf launchProfileId+      `Prelude.seq` Prelude.rnf launchProfileProtocolVersions+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf state+      `Prelude.seq` Prelude.rnf statusCode+      `Prelude.seq` Prelude.rnf statusMessage+      `Prelude.seq` Prelude.rnf streamConfiguration+      `Prelude.seq` Prelude.rnf studioComponentIds+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf updatedAt+      `Prelude.seq` Prelude.rnf updatedBy+      `Prelude.seq` Prelude.rnf validationResults
+ gen/Amazonka/Nimble/Types/LaunchProfileInitialization.hs view
@@ -0,0 +1,188 @@+{-# 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.Nimble.Types.LaunchProfileInitialization+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Nimble.Types.LaunchProfileInitialization where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Nimble.Types.LaunchProfileInitializationActiveDirectory+import Amazonka.Nimble.Types.LaunchProfileInitializationScript+import Amazonka.Nimble.Types.LaunchProfilePlatform+import qualified Amazonka.Prelude as Prelude++-- | A launch profile initialization contains information required for a+-- workstation or server to connect to a launch profile.+--+-- This includes scripts, endpoints, security groups, subnets, and other+-- configuration.+--+-- /See:/ 'newLaunchProfileInitialization' smart constructor.+data LaunchProfileInitialization = LaunchProfileInitialization'+  { -- | A @LaunchProfileInitializationActiveDirectory@ resource.+    activeDirectory :: Prelude.Maybe LaunchProfileInitializationActiveDirectory,+    -- | The EC2 security groups that control access to the studio component.+    ec2SecurityGroupIds :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),+    -- | The ID of the launch profile used to control access from the streaming+    -- session.+    launchProfileId :: Prelude.Maybe Prelude.Text,+    -- | The version number of the protocol that is used by the launch profile.+    -- The only valid version is \"2021-03-31\".+    launchProfileProtocolVersion :: Prelude.Maybe Prelude.Text,+    -- | The launch purpose.+    launchPurpose :: Prelude.Maybe Prelude.Text,+    -- | The name for the launch profile.+    name :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The platform of the launch platform, either Windows or Linux.+    platform :: Prelude.Maybe LaunchProfilePlatform,+    -- | The system initializtion scripts.+    systemInitializationScripts :: Prelude.Maybe [LaunchProfileInitializationScript],+    -- | The user initializtion scripts.+    userInitializationScripts :: Prelude.Maybe [LaunchProfileInitializationScript]+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'LaunchProfileInitialization' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'activeDirectory', 'launchProfileInitialization_activeDirectory' - A @LaunchProfileInitializationActiveDirectory@ resource.+--+-- 'ec2SecurityGroupIds', 'launchProfileInitialization_ec2SecurityGroupIds' - The EC2 security groups that control access to the studio component.+--+-- 'launchProfileId', 'launchProfileInitialization_launchProfileId' - The ID of the launch profile used to control access from the streaming+-- session.+--+-- 'launchProfileProtocolVersion', 'launchProfileInitialization_launchProfileProtocolVersion' - The version number of the protocol that is used by the launch profile.+-- The only valid version is \"2021-03-31\".+--+-- 'launchPurpose', 'launchProfileInitialization_launchPurpose' - The launch purpose.+--+-- 'name', 'launchProfileInitialization_name' - The name for the launch profile.+--+-- 'platform', 'launchProfileInitialization_platform' - The platform of the launch platform, either Windows or Linux.+--+-- 'systemInitializationScripts', 'launchProfileInitialization_systemInitializationScripts' - The system initializtion scripts.+--+-- 'userInitializationScripts', 'launchProfileInitialization_userInitializationScripts' - The user initializtion scripts.+newLaunchProfileInitialization ::+  LaunchProfileInitialization+newLaunchProfileInitialization =+  LaunchProfileInitialization'+    { activeDirectory =+        Prelude.Nothing,+      ec2SecurityGroupIds = Prelude.Nothing,+      launchProfileId = Prelude.Nothing,+      launchProfileProtocolVersion = Prelude.Nothing,+      launchPurpose = Prelude.Nothing,+      name = Prelude.Nothing,+      platform = Prelude.Nothing,+      systemInitializationScripts = Prelude.Nothing,+      userInitializationScripts = Prelude.Nothing+    }++-- | A @LaunchProfileInitializationActiveDirectory@ resource.+launchProfileInitialization_activeDirectory :: Lens.Lens' LaunchProfileInitialization (Prelude.Maybe LaunchProfileInitializationActiveDirectory)+launchProfileInitialization_activeDirectory = Lens.lens (\LaunchProfileInitialization' {activeDirectory} -> activeDirectory) (\s@LaunchProfileInitialization' {} a -> s {activeDirectory = a} :: LaunchProfileInitialization)++-- | The EC2 security groups that control access to the studio component.+launchProfileInitialization_ec2SecurityGroupIds :: Lens.Lens' LaunchProfileInitialization (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+launchProfileInitialization_ec2SecurityGroupIds = Lens.lens (\LaunchProfileInitialization' {ec2SecurityGroupIds} -> ec2SecurityGroupIds) (\s@LaunchProfileInitialization' {} a -> s {ec2SecurityGroupIds = a} :: LaunchProfileInitialization) Prelude.. Lens.mapping Lens.coerced++-- | The ID of the launch profile used to control access from the streaming+-- session.+launchProfileInitialization_launchProfileId :: Lens.Lens' LaunchProfileInitialization (Prelude.Maybe Prelude.Text)+launchProfileInitialization_launchProfileId = Lens.lens (\LaunchProfileInitialization' {launchProfileId} -> launchProfileId) (\s@LaunchProfileInitialization' {} a -> s {launchProfileId = a} :: LaunchProfileInitialization)++-- | The version number of the protocol that is used by the launch profile.+-- The only valid version is \"2021-03-31\".+launchProfileInitialization_launchProfileProtocolVersion :: Lens.Lens' LaunchProfileInitialization (Prelude.Maybe Prelude.Text)+launchProfileInitialization_launchProfileProtocolVersion = Lens.lens (\LaunchProfileInitialization' {launchProfileProtocolVersion} -> launchProfileProtocolVersion) (\s@LaunchProfileInitialization' {} a -> s {launchProfileProtocolVersion = a} :: LaunchProfileInitialization)++-- | The launch purpose.+launchProfileInitialization_launchPurpose :: Lens.Lens' LaunchProfileInitialization (Prelude.Maybe Prelude.Text)+launchProfileInitialization_launchPurpose = Lens.lens (\LaunchProfileInitialization' {launchPurpose} -> launchPurpose) (\s@LaunchProfileInitialization' {} a -> s {launchPurpose = a} :: LaunchProfileInitialization)++-- | The name for the launch profile.+launchProfileInitialization_name :: Lens.Lens' LaunchProfileInitialization (Prelude.Maybe Prelude.Text)+launchProfileInitialization_name = Lens.lens (\LaunchProfileInitialization' {name} -> name) (\s@LaunchProfileInitialization' {} a -> s {name = a} :: LaunchProfileInitialization) Prelude.. Lens.mapping Data._Sensitive++-- | The platform of the launch platform, either Windows or Linux.+launchProfileInitialization_platform :: Lens.Lens' LaunchProfileInitialization (Prelude.Maybe LaunchProfilePlatform)+launchProfileInitialization_platform = Lens.lens (\LaunchProfileInitialization' {platform} -> platform) (\s@LaunchProfileInitialization' {} a -> s {platform = a} :: LaunchProfileInitialization)++-- | The system initializtion scripts.+launchProfileInitialization_systemInitializationScripts :: Lens.Lens' LaunchProfileInitialization (Prelude.Maybe [LaunchProfileInitializationScript])+launchProfileInitialization_systemInitializationScripts = Lens.lens (\LaunchProfileInitialization' {systemInitializationScripts} -> systemInitializationScripts) (\s@LaunchProfileInitialization' {} a -> s {systemInitializationScripts = a} :: LaunchProfileInitialization) Prelude.. Lens.mapping Lens.coerced++-- | The user initializtion scripts.+launchProfileInitialization_userInitializationScripts :: Lens.Lens' LaunchProfileInitialization (Prelude.Maybe [LaunchProfileInitializationScript])+launchProfileInitialization_userInitializationScripts = Lens.lens (\LaunchProfileInitialization' {userInitializationScripts} -> userInitializationScripts) (\s@LaunchProfileInitialization' {} a -> s {userInitializationScripts = a} :: LaunchProfileInitialization) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON LaunchProfileInitialization where+  parseJSON =+    Data.withObject+      "LaunchProfileInitialization"+      ( \x ->+          LaunchProfileInitialization'+            Prelude.<$> (x Data..:? "activeDirectory")+            Prelude.<*> (x Data..:? "ec2SecurityGroupIds")+            Prelude.<*> (x Data..:? "launchProfileId")+            Prelude.<*> (x Data..:? "launchProfileProtocolVersion")+            Prelude.<*> (x Data..:? "launchPurpose")+            Prelude.<*> (x Data..:? "name")+            Prelude.<*> (x Data..:? "platform")+            Prelude.<*> ( x+                            Data..:? "systemInitializationScripts"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> ( x+                            Data..:? "userInitializationScripts"+                            Data..!= Prelude.mempty+                        )+      )++instance Prelude.Hashable LaunchProfileInitialization where+  hashWithSalt _salt LaunchProfileInitialization' {..} =+    _salt+      `Prelude.hashWithSalt` activeDirectory+      `Prelude.hashWithSalt` ec2SecurityGroupIds+      `Prelude.hashWithSalt` launchProfileId+      `Prelude.hashWithSalt` launchProfileProtocolVersion+      `Prelude.hashWithSalt` launchPurpose+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` platform+      `Prelude.hashWithSalt` systemInitializationScripts+      `Prelude.hashWithSalt` userInitializationScripts++instance Prelude.NFData LaunchProfileInitialization where+  rnf LaunchProfileInitialization' {..} =+    Prelude.rnf activeDirectory+      `Prelude.seq` Prelude.rnf ec2SecurityGroupIds+      `Prelude.seq` Prelude.rnf launchProfileId+      `Prelude.seq` Prelude.rnf launchProfileProtocolVersion+      `Prelude.seq` Prelude.rnf launchPurpose+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf platform+      `Prelude.seq` Prelude.rnf systemInitializationScripts+      `Prelude.seq` Prelude.rnf userInitializationScripts
+ gen/Amazonka/Nimble/Types/LaunchProfileInitializationActiveDirectory.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.Nimble.Types.LaunchProfileInitializationActiveDirectory+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Nimble.Types.LaunchProfileInitializationActiveDirectory where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Nimble.Types.ActiveDirectoryComputerAttribute+import qualified Amazonka.Prelude as Prelude++-- | The launch profile initialization Active Directory contains information+-- required for the launch profile to connect to the Active Directory.+--+-- /See:/ 'newLaunchProfileInitializationActiveDirectory' smart constructor.+data LaunchProfileInitializationActiveDirectory = LaunchProfileInitializationActiveDirectory'+  { -- | A collection of custom attributes for an Active Directory computer.+    computerAttributes :: Prelude.Maybe (Data.Sensitive [ActiveDirectoryComputerAttribute]),+    -- | The directory ID of the Directory Service for Microsoft Active Directory+    -- to access using this launch profile.+    directoryId :: Prelude.Maybe Prelude.Text,+    -- | The directory name.+    directoryName :: Prelude.Maybe Prelude.Text,+    -- | The DNS IP address.+    dnsIpAddresses :: Prelude.Maybe [Prelude.Text],+    -- | The name for the organizational unit distinguished name.+    organizationalUnitDistinguishedName :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier for a studio component resource.+    studioComponentId :: Prelude.Maybe Prelude.Text,+    -- | The name for the studio component.+    studioComponentName :: Prelude.Maybe (Data.Sensitive Prelude.Text)+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'LaunchProfileInitializationActiveDirectory' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'computerAttributes', 'launchProfileInitializationActiveDirectory_computerAttributes' - A collection of custom attributes for an Active Directory computer.+--+-- 'directoryId', 'launchProfileInitializationActiveDirectory_directoryId' - The directory ID of the Directory Service for Microsoft Active Directory+-- to access using this launch profile.+--+-- 'directoryName', 'launchProfileInitializationActiveDirectory_directoryName' - The directory name.+--+-- 'dnsIpAddresses', 'launchProfileInitializationActiveDirectory_dnsIpAddresses' - The DNS IP address.+--+-- 'organizationalUnitDistinguishedName', 'launchProfileInitializationActiveDirectory_organizationalUnitDistinguishedName' - The name for the organizational unit distinguished name.+--+-- 'studioComponentId', 'launchProfileInitializationActiveDirectory_studioComponentId' - The unique identifier for a studio component resource.+--+-- 'studioComponentName', 'launchProfileInitializationActiveDirectory_studioComponentName' - The name for the studio component.+newLaunchProfileInitializationActiveDirectory ::+  LaunchProfileInitializationActiveDirectory+newLaunchProfileInitializationActiveDirectory =+  LaunchProfileInitializationActiveDirectory'+    { computerAttributes =+        Prelude.Nothing,+      directoryId = Prelude.Nothing,+      directoryName = Prelude.Nothing,+      dnsIpAddresses =+        Prelude.Nothing,+      organizationalUnitDistinguishedName =+        Prelude.Nothing,+      studioComponentId =+        Prelude.Nothing,+      studioComponentName =+        Prelude.Nothing+    }++-- | A collection of custom attributes for an Active Directory computer.+launchProfileInitializationActiveDirectory_computerAttributes :: Lens.Lens' LaunchProfileInitializationActiveDirectory (Prelude.Maybe [ActiveDirectoryComputerAttribute])+launchProfileInitializationActiveDirectory_computerAttributes = Lens.lens (\LaunchProfileInitializationActiveDirectory' {computerAttributes} -> computerAttributes) (\s@LaunchProfileInitializationActiveDirectory' {} a -> s {computerAttributes = a} :: LaunchProfileInitializationActiveDirectory) Prelude.. Lens.mapping (Data._Sensitive Prelude.. Lens.coerced)++-- | The directory ID of the Directory Service for Microsoft Active Directory+-- to access using this launch profile.+launchProfileInitializationActiveDirectory_directoryId :: Lens.Lens' LaunchProfileInitializationActiveDirectory (Prelude.Maybe Prelude.Text)+launchProfileInitializationActiveDirectory_directoryId = Lens.lens (\LaunchProfileInitializationActiveDirectory' {directoryId} -> directoryId) (\s@LaunchProfileInitializationActiveDirectory' {} a -> s {directoryId = a} :: LaunchProfileInitializationActiveDirectory)++-- | The directory name.+launchProfileInitializationActiveDirectory_directoryName :: Lens.Lens' LaunchProfileInitializationActiveDirectory (Prelude.Maybe Prelude.Text)+launchProfileInitializationActiveDirectory_directoryName = Lens.lens (\LaunchProfileInitializationActiveDirectory' {directoryName} -> directoryName) (\s@LaunchProfileInitializationActiveDirectory' {} a -> s {directoryName = a} :: LaunchProfileInitializationActiveDirectory)++-- | The DNS IP address.+launchProfileInitializationActiveDirectory_dnsIpAddresses :: Lens.Lens' LaunchProfileInitializationActiveDirectory (Prelude.Maybe [Prelude.Text])+launchProfileInitializationActiveDirectory_dnsIpAddresses = Lens.lens (\LaunchProfileInitializationActiveDirectory' {dnsIpAddresses} -> dnsIpAddresses) (\s@LaunchProfileInitializationActiveDirectory' {} a -> s {dnsIpAddresses = a} :: LaunchProfileInitializationActiveDirectory) Prelude.. Lens.mapping Lens.coerced++-- | The name for the organizational unit distinguished name.+launchProfileInitializationActiveDirectory_organizationalUnitDistinguishedName :: Lens.Lens' LaunchProfileInitializationActiveDirectory (Prelude.Maybe Prelude.Text)+launchProfileInitializationActiveDirectory_organizationalUnitDistinguishedName = Lens.lens (\LaunchProfileInitializationActiveDirectory' {organizationalUnitDistinguishedName} -> organizationalUnitDistinguishedName) (\s@LaunchProfileInitializationActiveDirectory' {} a -> s {organizationalUnitDistinguishedName = a} :: LaunchProfileInitializationActiveDirectory)++-- | The unique identifier for a studio component resource.+launchProfileInitializationActiveDirectory_studioComponentId :: Lens.Lens' LaunchProfileInitializationActiveDirectory (Prelude.Maybe Prelude.Text)+launchProfileInitializationActiveDirectory_studioComponentId = Lens.lens (\LaunchProfileInitializationActiveDirectory' {studioComponentId} -> studioComponentId) (\s@LaunchProfileInitializationActiveDirectory' {} a -> s {studioComponentId = a} :: LaunchProfileInitializationActiveDirectory)++-- | The name for the studio component.+launchProfileInitializationActiveDirectory_studioComponentName :: Lens.Lens' LaunchProfileInitializationActiveDirectory (Prelude.Maybe Prelude.Text)+launchProfileInitializationActiveDirectory_studioComponentName = Lens.lens (\LaunchProfileInitializationActiveDirectory' {studioComponentName} -> studioComponentName) (\s@LaunchProfileInitializationActiveDirectory' {} a -> s {studioComponentName = a} :: LaunchProfileInitializationActiveDirectory) Prelude.. Lens.mapping Data._Sensitive++instance+  Data.FromJSON+    LaunchProfileInitializationActiveDirectory+  where+  parseJSON =+    Data.withObject+      "LaunchProfileInitializationActiveDirectory"+      ( \x ->+          LaunchProfileInitializationActiveDirectory'+            Prelude.<$> ( x+                            Data..:? "computerAttributes"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "directoryId")+            Prelude.<*> (x Data..:? "directoryName")+            Prelude.<*> (x Data..:? "dnsIpAddresses" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "organizationalUnitDistinguishedName")+            Prelude.<*> (x Data..:? "studioComponentId")+            Prelude.<*> (x Data..:? "studioComponentName")+      )++instance+  Prelude.Hashable+    LaunchProfileInitializationActiveDirectory+  where+  hashWithSalt+    _salt+    LaunchProfileInitializationActiveDirectory' {..} =+      _salt+        `Prelude.hashWithSalt` computerAttributes+        `Prelude.hashWithSalt` directoryId+        `Prelude.hashWithSalt` directoryName+        `Prelude.hashWithSalt` dnsIpAddresses+        `Prelude.hashWithSalt` organizationalUnitDistinguishedName+        `Prelude.hashWithSalt` studioComponentId+        `Prelude.hashWithSalt` studioComponentName++instance+  Prelude.NFData+    LaunchProfileInitializationActiveDirectory+  where+  rnf LaunchProfileInitializationActiveDirectory' {..} =+    Prelude.rnf computerAttributes+      `Prelude.seq` Prelude.rnf directoryId+      `Prelude.seq` Prelude.rnf directoryName+      `Prelude.seq` Prelude.rnf dnsIpAddresses+      `Prelude.seq` Prelude.rnf organizationalUnitDistinguishedName+      `Prelude.seq` Prelude.rnf studioComponentId+      `Prelude.seq` Prelude.rnf studioComponentName
+ gen/Amazonka/Nimble/Types/LaunchProfileInitializationScript.hs view
@@ -0,0 +1,146 @@+{-# 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.Nimble.Types.LaunchProfileInitializationScript+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Nimble.Types.LaunchProfileInitializationScript 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 launch profile initialization script is used when start streaming+-- session runs.+--+-- /See:/ 'newLaunchProfileInitializationScript' smart constructor.+data LaunchProfileInitializationScript = LaunchProfileInitializationScript'+  { -- | An IAM role attached to a Studio Component that gives the studio+    -- component access to Amazon Web Services resources at anytime while the+    -- instance is running.+    runtimeRoleArn :: Prelude.Maybe Prelude.Text,+    -- | The initialization script.+    script :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | An IAM role attached to Studio Component when the system initialization+    -- script runs which give the studio component access to Amazon Web+    -- Services resources when the system initialization script runs.+    secureInitializationRoleArn :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier for a studio component resource.+    studioComponentId :: Prelude.Maybe Prelude.Text,+    -- | The name for the studio component.+    studioComponentName :: Prelude.Maybe (Data.Sensitive Prelude.Text)+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'LaunchProfileInitializationScript' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'runtimeRoleArn', 'launchProfileInitializationScript_runtimeRoleArn' - An IAM role attached to a Studio Component that gives the studio+-- component access to Amazon Web Services resources at anytime while the+-- instance is running.+--+-- 'script', 'launchProfileInitializationScript_script' - The initialization script.+--+-- 'secureInitializationRoleArn', 'launchProfileInitializationScript_secureInitializationRoleArn' - An IAM role attached to Studio Component when the system initialization+-- script runs which give the studio component access to Amazon Web+-- Services resources when the system initialization script runs.+--+-- 'studioComponentId', 'launchProfileInitializationScript_studioComponentId' - The unique identifier for a studio component resource.+--+-- 'studioComponentName', 'launchProfileInitializationScript_studioComponentName' - The name for the studio component.+newLaunchProfileInitializationScript ::+  LaunchProfileInitializationScript+newLaunchProfileInitializationScript =+  LaunchProfileInitializationScript'+    { runtimeRoleArn =+        Prelude.Nothing,+      script = Prelude.Nothing,+      secureInitializationRoleArn =+        Prelude.Nothing,+      studioComponentId = Prelude.Nothing,+      studioComponentName = Prelude.Nothing+    }++-- | An IAM role attached to a Studio Component that gives the studio+-- component access to Amazon Web Services resources at anytime while the+-- instance is running.+launchProfileInitializationScript_runtimeRoleArn :: Lens.Lens' LaunchProfileInitializationScript (Prelude.Maybe Prelude.Text)+launchProfileInitializationScript_runtimeRoleArn = Lens.lens (\LaunchProfileInitializationScript' {runtimeRoleArn} -> runtimeRoleArn) (\s@LaunchProfileInitializationScript' {} a -> s {runtimeRoleArn = a} :: LaunchProfileInitializationScript)++-- | The initialization script.+launchProfileInitializationScript_script :: Lens.Lens' LaunchProfileInitializationScript (Prelude.Maybe Prelude.Text)+launchProfileInitializationScript_script = Lens.lens (\LaunchProfileInitializationScript' {script} -> script) (\s@LaunchProfileInitializationScript' {} a -> s {script = a} :: LaunchProfileInitializationScript) Prelude.. Lens.mapping Data._Sensitive++-- | An IAM role attached to Studio Component when the system initialization+-- script runs which give the studio component access to Amazon Web+-- Services resources when the system initialization script runs.+launchProfileInitializationScript_secureInitializationRoleArn :: Lens.Lens' LaunchProfileInitializationScript (Prelude.Maybe Prelude.Text)+launchProfileInitializationScript_secureInitializationRoleArn = Lens.lens (\LaunchProfileInitializationScript' {secureInitializationRoleArn} -> secureInitializationRoleArn) (\s@LaunchProfileInitializationScript' {} a -> s {secureInitializationRoleArn = a} :: LaunchProfileInitializationScript)++-- | The unique identifier for a studio component resource.+launchProfileInitializationScript_studioComponentId :: Lens.Lens' LaunchProfileInitializationScript (Prelude.Maybe Prelude.Text)+launchProfileInitializationScript_studioComponentId = Lens.lens (\LaunchProfileInitializationScript' {studioComponentId} -> studioComponentId) (\s@LaunchProfileInitializationScript' {} a -> s {studioComponentId = a} :: LaunchProfileInitializationScript)++-- | The name for the studio component.+launchProfileInitializationScript_studioComponentName :: Lens.Lens' LaunchProfileInitializationScript (Prelude.Maybe Prelude.Text)+launchProfileInitializationScript_studioComponentName = Lens.lens (\LaunchProfileInitializationScript' {studioComponentName} -> studioComponentName) (\s@LaunchProfileInitializationScript' {} a -> s {studioComponentName = a} :: LaunchProfileInitializationScript) Prelude.. Lens.mapping Data._Sensitive++instance+  Data.FromJSON+    LaunchProfileInitializationScript+  where+  parseJSON =+    Data.withObject+      "LaunchProfileInitializationScript"+      ( \x ->+          LaunchProfileInitializationScript'+            Prelude.<$> (x Data..:? "runtimeRoleArn")+            Prelude.<*> (x Data..:? "script")+            Prelude.<*> (x Data..:? "secureInitializationRoleArn")+            Prelude.<*> (x Data..:? "studioComponentId")+            Prelude.<*> (x Data..:? "studioComponentName")+      )++instance+  Prelude.Hashable+    LaunchProfileInitializationScript+  where+  hashWithSalt+    _salt+    LaunchProfileInitializationScript' {..} =+      _salt+        `Prelude.hashWithSalt` runtimeRoleArn+        `Prelude.hashWithSalt` script+        `Prelude.hashWithSalt` secureInitializationRoleArn+        `Prelude.hashWithSalt` studioComponentId+        `Prelude.hashWithSalt` studioComponentName++instance+  Prelude.NFData+    LaunchProfileInitializationScript+  where+  rnf LaunchProfileInitializationScript' {..} =+    Prelude.rnf runtimeRoleArn+      `Prelude.seq` Prelude.rnf script+      `Prelude.seq` Prelude.rnf secureInitializationRoleArn+      `Prelude.seq` Prelude.rnf studioComponentId+      `Prelude.seq` Prelude.rnf studioComponentName
+ gen/Amazonka/Nimble/Types/LaunchProfileMembership.hs view
@@ -0,0 +1,129 @@+{-# 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.Nimble.Types.LaunchProfileMembership+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Nimble.Types.LaunchProfileMembership where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Nimble.Types.LaunchProfilePersona+import qualified Amazonka.Prelude as Prelude++-- | Studio admins can use launch profile membership to delegate launch+-- profile access to studio users in the Nimble Studio portal without+-- writing or maintaining complex IAM policies. A launch profile member is+-- a user association from your studio identity source who is granted+-- permissions to a launch profile.+--+-- A launch profile member (type USER) provides the following permissions+-- to that launch profile:+--+-- -   GetLaunchProfile+--+-- -   GetLaunchProfileInitialization+--+-- -   GetLaunchProfileMembers+--+-- -   GetLaunchProfileMember+--+-- -   CreateStreamingSession+--+-- -   GetLaunchProfileDetails+--+-- /See:/ 'newLaunchProfileMembership' smart constructor.+data LaunchProfileMembership = LaunchProfileMembership'+  { -- | The ID of the identity store.+    identityStoreId :: Prelude.Maybe Prelude.Text,+    -- | The persona.+    persona :: Prelude.Maybe LaunchProfilePersona,+    -- | The principal ID.+    principalId :: Prelude.Maybe Prelude.Text,+    -- | The Active Directory Security Identifier for this user, if available.+    sid :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'LaunchProfileMembership' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'identityStoreId', 'launchProfileMembership_identityStoreId' - The ID of the identity store.+--+-- 'persona', 'launchProfileMembership_persona' - The persona.+--+-- 'principalId', 'launchProfileMembership_principalId' - The principal ID.+--+-- 'sid', 'launchProfileMembership_sid' - The Active Directory Security Identifier for this user, if available.+newLaunchProfileMembership ::+  LaunchProfileMembership+newLaunchProfileMembership =+  LaunchProfileMembership'+    { identityStoreId =+        Prelude.Nothing,+      persona = Prelude.Nothing,+      principalId = Prelude.Nothing,+      sid = Prelude.Nothing+    }++-- | The ID of the identity store.+launchProfileMembership_identityStoreId :: Lens.Lens' LaunchProfileMembership (Prelude.Maybe Prelude.Text)+launchProfileMembership_identityStoreId = Lens.lens (\LaunchProfileMembership' {identityStoreId} -> identityStoreId) (\s@LaunchProfileMembership' {} a -> s {identityStoreId = a} :: LaunchProfileMembership)++-- | The persona.+launchProfileMembership_persona :: Lens.Lens' LaunchProfileMembership (Prelude.Maybe LaunchProfilePersona)+launchProfileMembership_persona = Lens.lens (\LaunchProfileMembership' {persona} -> persona) (\s@LaunchProfileMembership' {} a -> s {persona = a} :: LaunchProfileMembership)++-- | The principal ID.+launchProfileMembership_principalId :: Lens.Lens' LaunchProfileMembership (Prelude.Maybe Prelude.Text)+launchProfileMembership_principalId = Lens.lens (\LaunchProfileMembership' {principalId} -> principalId) (\s@LaunchProfileMembership' {} a -> s {principalId = a} :: LaunchProfileMembership)++-- | The Active Directory Security Identifier for this user, if available.+launchProfileMembership_sid :: Lens.Lens' LaunchProfileMembership (Prelude.Maybe Prelude.Text)+launchProfileMembership_sid = Lens.lens (\LaunchProfileMembership' {sid} -> sid) (\s@LaunchProfileMembership' {} a -> s {sid = a} :: LaunchProfileMembership)++instance Data.FromJSON LaunchProfileMembership where+  parseJSON =+    Data.withObject+      "LaunchProfileMembership"+      ( \x ->+          LaunchProfileMembership'+            Prelude.<$> (x Data..:? "identityStoreId")+            Prelude.<*> (x Data..:? "persona")+            Prelude.<*> (x Data..:? "principalId")+            Prelude.<*> (x Data..:? "sid")+      )++instance Prelude.Hashable LaunchProfileMembership where+  hashWithSalt _salt LaunchProfileMembership' {..} =+    _salt+      `Prelude.hashWithSalt` identityStoreId+      `Prelude.hashWithSalt` persona+      `Prelude.hashWithSalt` principalId+      `Prelude.hashWithSalt` sid++instance Prelude.NFData LaunchProfileMembership where+  rnf LaunchProfileMembership' {..} =+    Prelude.rnf identityStoreId+      `Prelude.seq` Prelude.rnf persona+      `Prelude.seq` Prelude.rnf principalId+      `Prelude.seq` Prelude.rnf sid
+ gen/Amazonka/Nimble/Types/LaunchProfilePersona.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.Nimble.Types.LaunchProfilePersona+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Nimble.Types.LaunchProfilePersona+  ( LaunchProfilePersona+      ( ..,+        LaunchProfilePersona_USER+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype LaunchProfilePersona = LaunchProfilePersona'+  { fromLaunchProfilePersona ::+      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 LaunchProfilePersona_USER :: LaunchProfilePersona+pattern LaunchProfilePersona_USER = LaunchProfilePersona' "USER"++{-# COMPLETE+  LaunchProfilePersona_USER,+  LaunchProfilePersona'+  #-}
+ gen/Amazonka/Nimble/Types/LaunchProfilePlatform.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.Nimble.Types.LaunchProfilePlatform+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Nimble.Types.LaunchProfilePlatform+  ( LaunchProfilePlatform+      ( ..,+        LaunchProfilePlatform_LINUX,+        LaunchProfilePlatform_WINDOWS+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype LaunchProfilePlatform = LaunchProfilePlatform'+  { fromLaunchProfilePlatform ::+      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 LaunchProfilePlatform_LINUX :: LaunchProfilePlatform+pattern LaunchProfilePlatform_LINUX = LaunchProfilePlatform' "LINUX"++pattern LaunchProfilePlatform_WINDOWS :: LaunchProfilePlatform+pattern LaunchProfilePlatform_WINDOWS = LaunchProfilePlatform' "WINDOWS"++{-# COMPLETE+  LaunchProfilePlatform_LINUX,+  LaunchProfilePlatform_WINDOWS,+  LaunchProfilePlatform'+  #-}
+ gen/Amazonka/Nimble/Types/LaunchProfileState.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.Nimble.Types.LaunchProfileState+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Nimble.Types.LaunchProfileState+  ( LaunchProfileState+      ( ..,+        LaunchProfileState_CREATE_FAILED,+        LaunchProfileState_CREATE_IN_PROGRESS,+        LaunchProfileState_DELETED,+        LaunchProfileState_DELETE_FAILED,+        LaunchProfileState_DELETE_IN_PROGRESS,+        LaunchProfileState_READY,+        LaunchProfileState_UPDATE_FAILED,+        LaunchProfileState_UPDATE_IN_PROGRESS+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype LaunchProfileState = LaunchProfileState'+  { fromLaunchProfileState ::+      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 LaunchProfileState_CREATE_FAILED :: LaunchProfileState+pattern LaunchProfileState_CREATE_FAILED = LaunchProfileState' "CREATE_FAILED"++pattern LaunchProfileState_CREATE_IN_PROGRESS :: LaunchProfileState+pattern LaunchProfileState_CREATE_IN_PROGRESS = LaunchProfileState' "CREATE_IN_PROGRESS"++pattern LaunchProfileState_DELETED :: LaunchProfileState+pattern LaunchProfileState_DELETED = LaunchProfileState' "DELETED"++pattern LaunchProfileState_DELETE_FAILED :: LaunchProfileState+pattern LaunchProfileState_DELETE_FAILED = LaunchProfileState' "DELETE_FAILED"++pattern LaunchProfileState_DELETE_IN_PROGRESS :: LaunchProfileState+pattern LaunchProfileState_DELETE_IN_PROGRESS = LaunchProfileState' "DELETE_IN_PROGRESS"++pattern LaunchProfileState_READY :: LaunchProfileState+pattern LaunchProfileState_READY = LaunchProfileState' "READY"++pattern LaunchProfileState_UPDATE_FAILED :: LaunchProfileState+pattern LaunchProfileState_UPDATE_FAILED = LaunchProfileState' "UPDATE_FAILED"++pattern LaunchProfileState_UPDATE_IN_PROGRESS :: LaunchProfileState+pattern LaunchProfileState_UPDATE_IN_PROGRESS = LaunchProfileState' "UPDATE_IN_PROGRESS"++{-# COMPLETE+  LaunchProfileState_CREATE_FAILED,+  LaunchProfileState_CREATE_IN_PROGRESS,+  LaunchProfileState_DELETED,+  LaunchProfileState_DELETE_FAILED,+  LaunchProfileState_DELETE_IN_PROGRESS,+  LaunchProfileState_READY,+  LaunchProfileState_UPDATE_FAILED,+  LaunchProfileState_UPDATE_IN_PROGRESS,+  LaunchProfileState'+  #-}
+ gen/Amazonka/Nimble/Types/LaunchProfileStatusCode.hs view
@@ -0,0 +1,136 @@+{-# 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.Nimble.Types.LaunchProfileStatusCode+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Nimble.Types.LaunchProfileStatusCode+  ( LaunchProfileStatusCode+      ( ..,+        LaunchProfileStatusCode_ENCRYPTION_KEY_ACCESS_DENIED,+        LaunchProfileStatusCode_ENCRYPTION_KEY_NOT_FOUND,+        LaunchProfileStatusCode_INTERNAL_ERROR,+        LaunchProfileStatusCode_INVALID_INSTANCE_TYPES_PROVIDED,+        LaunchProfileStatusCode_INVALID_SUBNETS_COMBINATION,+        LaunchProfileStatusCode_INVALID_SUBNETS_PROVIDED,+        LaunchProfileStatusCode_LAUNCH_PROFILE_CREATED,+        LaunchProfileStatusCode_LAUNCH_PROFILE_CREATE_IN_PROGRESS,+        LaunchProfileStatusCode_LAUNCH_PROFILE_DELETED,+        LaunchProfileStatusCode_LAUNCH_PROFILE_DELETE_IN_PROGRESS,+        LaunchProfileStatusCode_LAUNCH_PROFILE_UPDATED,+        LaunchProfileStatusCode_LAUNCH_PROFILE_UPDATE_IN_PROGRESS,+        LaunchProfileStatusCode_LAUNCH_PROFILE_WITH_STREAM_SESSIONS_NOT_DELETED,+        LaunchProfileStatusCode_STREAMING_IMAGE_NOT_FOUND,+        LaunchProfileStatusCode_STREAMING_IMAGE_NOT_READY+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype LaunchProfileStatusCode = LaunchProfileStatusCode'+  { fromLaunchProfileStatusCode ::+      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 LaunchProfileStatusCode_ENCRYPTION_KEY_ACCESS_DENIED :: LaunchProfileStatusCode+pattern LaunchProfileStatusCode_ENCRYPTION_KEY_ACCESS_DENIED = LaunchProfileStatusCode' "ENCRYPTION_KEY_ACCESS_DENIED"++pattern LaunchProfileStatusCode_ENCRYPTION_KEY_NOT_FOUND :: LaunchProfileStatusCode+pattern LaunchProfileStatusCode_ENCRYPTION_KEY_NOT_FOUND = LaunchProfileStatusCode' "ENCRYPTION_KEY_NOT_FOUND"++pattern LaunchProfileStatusCode_INTERNAL_ERROR :: LaunchProfileStatusCode+pattern LaunchProfileStatusCode_INTERNAL_ERROR = LaunchProfileStatusCode' "INTERNAL_ERROR"++pattern LaunchProfileStatusCode_INVALID_INSTANCE_TYPES_PROVIDED :: LaunchProfileStatusCode+pattern LaunchProfileStatusCode_INVALID_INSTANCE_TYPES_PROVIDED = LaunchProfileStatusCode' "INVALID_INSTANCE_TYPES_PROVIDED"++pattern LaunchProfileStatusCode_INVALID_SUBNETS_COMBINATION :: LaunchProfileStatusCode+pattern LaunchProfileStatusCode_INVALID_SUBNETS_COMBINATION = LaunchProfileStatusCode' "INVALID_SUBNETS_COMBINATION"++pattern LaunchProfileStatusCode_INVALID_SUBNETS_PROVIDED :: LaunchProfileStatusCode+pattern LaunchProfileStatusCode_INVALID_SUBNETS_PROVIDED = LaunchProfileStatusCode' "INVALID_SUBNETS_PROVIDED"++pattern LaunchProfileStatusCode_LAUNCH_PROFILE_CREATED :: LaunchProfileStatusCode+pattern LaunchProfileStatusCode_LAUNCH_PROFILE_CREATED = LaunchProfileStatusCode' "LAUNCH_PROFILE_CREATED"++pattern LaunchProfileStatusCode_LAUNCH_PROFILE_CREATE_IN_PROGRESS :: LaunchProfileStatusCode+pattern LaunchProfileStatusCode_LAUNCH_PROFILE_CREATE_IN_PROGRESS = LaunchProfileStatusCode' "LAUNCH_PROFILE_CREATE_IN_PROGRESS"++pattern LaunchProfileStatusCode_LAUNCH_PROFILE_DELETED :: LaunchProfileStatusCode+pattern LaunchProfileStatusCode_LAUNCH_PROFILE_DELETED = LaunchProfileStatusCode' "LAUNCH_PROFILE_DELETED"++pattern LaunchProfileStatusCode_LAUNCH_PROFILE_DELETE_IN_PROGRESS :: LaunchProfileStatusCode+pattern LaunchProfileStatusCode_LAUNCH_PROFILE_DELETE_IN_PROGRESS = LaunchProfileStatusCode' "LAUNCH_PROFILE_DELETE_IN_PROGRESS"++pattern LaunchProfileStatusCode_LAUNCH_PROFILE_UPDATED :: LaunchProfileStatusCode+pattern LaunchProfileStatusCode_LAUNCH_PROFILE_UPDATED = LaunchProfileStatusCode' "LAUNCH_PROFILE_UPDATED"++pattern LaunchProfileStatusCode_LAUNCH_PROFILE_UPDATE_IN_PROGRESS :: LaunchProfileStatusCode+pattern LaunchProfileStatusCode_LAUNCH_PROFILE_UPDATE_IN_PROGRESS = LaunchProfileStatusCode' "LAUNCH_PROFILE_UPDATE_IN_PROGRESS"++pattern LaunchProfileStatusCode_LAUNCH_PROFILE_WITH_STREAM_SESSIONS_NOT_DELETED :: LaunchProfileStatusCode+pattern LaunchProfileStatusCode_LAUNCH_PROFILE_WITH_STREAM_SESSIONS_NOT_DELETED = LaunchProfileStatusCode' "LAUNCH_PROFILE_WITH_STREAM_SESSIONS_NOT_DELETED"++pattern LaunchProfileStatusCode_STREAMING_IMAGE_NOT_FOUND :: LaunchProfileStatusCode+pattern LaunchProfileStatusCode_STREAMING_IMAGE_NOT_FOUND = LaunchProfileStatusCode' "STREAMING_IMAGE_NOT_FOUND"++pattern LaunchProfileStatusCode_STREAMING_IMAGE_NOT_READY :: LaunchProfileStatusCode+pattern LaunchProfileStatusCode_STREAMING_IMAGE_NOT_READY = LaunchProfileStatusCode' "STREAMING_IMAGE_NOT_READY"++{-# COMPLETE+  LaunchProfileStatusCode_ENCRYPTION_KEY_ACCESS_DENIED,+  LaunchProfileStatusCode_ENCRYPTION_KEY_NOT_FOUND,+  LaunchProfileStatusCode_INTERNAL_ERROR,+  LaunchProfileStatusCode_INVALID_INSTANCE_TYPES_PROVIDED,+  LaunchProfileStatusCode_INVALID_SUBNETS_COMBINATION,+  LaunchProfileStatusCode_INVALID_SUBNETS_PROVIDED,+  LaunchProfileStatusCode_LAUNCH_PROFILE_CREATED,+  LaunchProfileStatusCode_LAUNCH_PROFILE_CREATE_IN_PROGRESS,+  LaunchProfileStatusCode_LAUNCH_PROFILE_DELETED,+  LaunchProfileStatusCode_LAUNCH_PROFILE_DELETE_IN_PROGRESS,+  LaunchProfileStatusCode_LAUNCH_PROFILE_UPDATED,+  LaunchProfileStatusCode_LAUNCH_PROFILE_UPDATE_IN_PROGRESS,+  LaunchProfileStatusCode_LAUNCH_PROFILE_WITH_STREAM_SESSIONS_NOT_DELETED,+  LaunchProfileStatusCode_STREAMING_IMAGE_NOT_FOUND,+  LaunchProfileStatusCode_STREAMING_IMAGE_NOT_READY,+  LaunchProfileStatusCode'+  #-}
+ gen/Amazonka/Nimble/Types/LaunchProfileValidationState.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.Nimble.Types.LaunchProfileValidationState+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Nimble.Types.LaunchProfileValidationState+  ( LaunchProfileValidationState+      ( ..,+        LaunchProfileValidationState_VALIDATION_FAILED,+        LaunchProfileValidationState_VALIDATION_FAILED_INTERNAL_SERVER_ERROR,+        LaunchProfileValidationState_VALIDATION_IN_PROGRESS,+        LaunchProfileValidationState_VALIDATION_NOT_STARTED,+        LaunchProfileValidationState_VALIDATION_SUCCESS+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype LaunchProfileValidationState = LaunchProfileValidationState'+  { fromLaunchProfileValidationState ::+      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 LaunchProfileValidationState_VALIDATION_FAILED :: LaunchProfileValidationState+pattern LaunchProfileValidationState_VALIDATION_FAILED = LaunchProfileValidationState' "VALIDATION_FAILED"++pattern LaunchProfileValidationState_VALIDATION_FAILED_INTERNAL_SERVER_ERROR :: LaunchProfileValidationState+pattern LaunchProfileValidationState_VALIDATION_FAILED_INTERNAL_SERVER_ERROR = LaunchProfileValidationState' "VALIDATION_FAILED_INTERNAL_SERVER_ERROR"++pattern LaunchProfileValidationState_VALIDATION_IN_PROGRESS :: LaunchProfileValidationState+pattern LaunchProfileValidationState_VALIDATION_IN_PROGRESS = LaunchProfileValidationState' "VALIDATION_IN_PROGRESS"++pattern LaunchProfileValidationState_VALIDATION_NOT_STARTED :: LaunchProfileValidationState+pattern LaunchProfileValidationState_VALIDATION_NOT_STARTED = LaunchProfileValidationState' "VALIDATION_NOT_STARTED"++pattern LaunchProfileValidationState_VALIDATION_SUCCESS :: LaunchProfileValidationState+pattern LaunchProfileValidationState_VALIDATION_SUCCESS = LaunchProfileValidationState' "VALIDATION_SUCCESS"++{-# COMPLETE+  LaunchProfileValidationState_VALIDATION_FAILED,+  LaunchProfileValidationState_VALIDATION_FAILED_INTERNAL_SERVER_ERROR,+  LaunchProfileValidationState_VALIDATION_IN_PROGRESS,+  LaunchProfileValidationState_VALIDATION_NOT_STARTED,+  LaunchProfileValidationState_VALIDATION_SUCCESS,+  LaunchProfileValidationState'+  #-}
+ gen/Amazonka/Nimble/Types/LaunchProfileValidationStatusCode.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.Nimble.Types.LaunchProfileValidationStatusCode+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Nimble.Types.LaunchProfileValidationStatusCode+  ( LaunchProfileValidationStatusCode+      ( ..,+        LaunchProfileValidationStatusCode_VALIDATION_FAILED_INTERNAL_SERVER_ERROR,+        LaunchProfileValidationStatusCode_VALIDATION_FAILED_INVALID_ACTIVE_DIRECTORY,+        LaunchProfileValidationStatusCode_VALIDATION_FAILED_INVALID_SECURITY_GROUP_ASSOCIATION,+        LaunchProfileValidationStatusCode_VALIDATION_FAILED_INVALID_SUBNET_ROUTE_TABLE_ASSOCIATION,+        LaunchProfileValidationStatusCode_VALIDATION_FAILED_SUBNET_NOT_FOUND,+        LaunchProfileValidationStatusCode_VALIDATION_FAILED_UNAUTHORIZED,+        LaunchProfileValidationStatusCode_VALIDATION_IN_PROGRESS,+        LaunchProfileValidationStatusCode_VALIDATION_NOT_STARTED,+        LaunchProfileValidationStatusCode_VALIDATION_SUCCESS+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype LaunchProfileValidationStatusCode = LaunchProfileValidationStatusCode'+  { fromLaunchProfileValidationStatusCode ::+      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 LaunchProfileValidationStatusCode_VALIDATION_FAILED_INTERNAL_SERVER_ERROR :: LaunchProfileValidationStatusCode+pattern LaunchProfileValidationStatusCode_VALIDATION_FAILED_INTERNAL_SERVER_ERROR = LaunchProfileValidationStatusCode' "VALIDATION_FAILED_INTERNAL_SERVER_ERROR"++pattern LaunchProfileValidationStatusCode_VALIDATION_FAILED_INVALID_ACTIVE_DIRECTORY :: LaunchProfileValidationStatusCode+pattern LaunchProfileValidationStatusCode_VALIDATION_FAILED_INVALID_ACTIVE_DIRECTORY = LaunchProfileValidationStatusCode' "VALIDATION_FAILED_INVALID_ACTIVE_DIRECTORY"++pattern LaunchProfileValidationStatusCode_VALIDATION_FAILED_INVALID_SECURITY_GROUP_ASSOCIATION :: LaunchProfileValidationStatusCode+pattern LaunchProfileValidationStatusCode_VALIDATION_FAILED_INVALID_SECURITY_GROUP_ASSOCIATION = LaunchProfileValidationStatusCode' "VALIDATION_FAILED_INVALID_SECURITY_GROUP_ASSOCIATION"++pattern LaunchProfileValidationStatusCode_VALIDATION_FAILED_INVALID_SUBNET_ROUTE_TABLE_ASSOCIATION :: LaunchProfileValidationStatusCode+pattern LaunchProfileValidationStatusCode_VALIDATION_FAILED_INVALID_SUBNET_ROUTE_TABLE_ASSOCIATION = LaunchProfileValidationStatusCode' "VALIDATION_FAILED_INVALID_SUBNET_ROUTE_TABLE_ASSOCIATION"++pattern LaunchProfileValidationStatusCode_VALIDATION_FAILED_SUBNET_NOT_FOUND :: LaunchProfileValidationStatusCode+pattern LaunchProfileValidationStatusCode_VALIDATION_FAILED_SUBNET_NOT_FOUND = LaunchProfileValidationStatusCode' "VALIDATION_FAILED_SUBNET_NOT_FOUND"++pattern LaunchProfileValidationStatusCode_VALIDATION_FAILED_UNAUTHORIZED :: LaunchProfileValidationStatusCode+pattern LaunchProfileValidationStatusCode_VALIDATION_FAILED_UNAUTHORIZED = LaunchProfileValidationStatusCode' "VALIDATION_FAILED_UNAUTHORIZED"++pattern LaunchProfileValidationStatusCode_VALIDATION_IN_PROGRESS :: LaunchProfileValidationStatusCode+pattern LaunchProfileValidationStatusCode_VALIDATION_IN_PROGRESS = LaunchProfileValidationStatusCode' "VALIDATION_IN_PROGRESS"++pattern LaunchProfileValidationStatusCode_VALIDATION_NOT_STARTED :: LaunchProfileValidationStatusCode+pattern LaunchProfileValidationStatusCode_VALIDATION_NOT_STARTED = LaunchProfileValidationStatusCode' "VALIDATION_NOT_STARTED"++pattern LaunchProfileValidationStatusCode_VALIDATION_SUCCESS :: LaunchProfileValidationStatusCode+pattern LaunchProfileValidationStatusCode_VALIDATION_SUCCESS = LaunchProfileValidationStatusCode' "VALIDATION_SUCCESS"++{-# COMPLETE+  LaunchProfileValidationStatusCode_VALIDATION_FAILED_INTERNAL_SERVER_ERROR,+  LaunchProfileValidationStatusCode_VALIDATION_FAILED_INVALID_ACTIVE_DIRECTORY,+  LaunchProfileValidationStatusCode_VALIDATION_FAILED_INVALID_SECURITY_GROUP_ASSOCIATION,+  LaunchProfileValidationStatusCode_VALIDATION_FAILED_INVALID_SUBNET_ROUTE_TABLE_ASSOCIATION,+  LaunchProfileValidationStatusCode_VALIDATION_FAILED_SUBNET_NOT_FOUND,+  LaunchProfileValidationStatusCode_VALIDATION_FAILED_UNAUTHORIZED,+  LaunchProfileValidationStatusCode_VALIDATION_IN_PROGRESS,+  LaunchProfileValidationStatusCode_VALIDATION_NOT_STARTED,+  LaunchProfileValidationStatusCode_VALIDATION_SUCCESS,+  LaunchProfileValidationStatusCode'+  #-}
+ gen/Amazonka/Nimble/Types/LaunchProfileValidationType.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.Nimble.Types.LaunchProfileValidationType+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Nimble.Types.LaunchProfileValidationType+  ( LaunchProfileValidationType+      ( ..,+        LaunchProfileValidationType_VALIDATE_ACTIVE_DIRECTORY_STUDIO_COMPONENT,+        LaunchProfileValidationType_VALIDATE_NETWORK_ACL_ASSOCIATION,+        LaunchProfileValidationType_VALIDATE_SECURITY_GROUP_ASSOCIATION,+        LaunchProfileValidationType_VALIDATE_SUBNET_ASSOCIATION+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype LaunchProfileValidationType = LaunchProfileValidationType'+  { fromLaunchProfileValidationType ::+      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 LaunchProfileValidationType_VALIDATE_ACTIVE_DIRECTORY_STUDIO_COMPONENT :: LaunchProfileValidationType+pattern LaunchProfileValidationType_VALIDATE_ACTIVE_DIRECTORY_STUDIO_COMPONENT = LaunchProfileValidationType' "VALIDATE_ACTIVE_DIRECTORY_STUDIO_COMPONENT"++pattern LaunchProfileValidationType_VALIDATE_NETWORK_ACL_ASSOCIATION :: LaunchProfileValidationType+pattern LaunchProfileValidationType_VALIDATE_NETWORK_ACL_ASSOCIATION = LaunchProfileValidationType' "VALIDATE_NETWORK_ACL_ASSOCIATION"++pattern LaunchProfileValidationType_VALIDATE_SECURITY_GROUP_ASSOCIATION :: LaunchProfileValidationType+pattern LaunchProfileValidationType_VALIDATE_SECURITY_GROUP_ASSOCIATION = LaunchProfileValidationType' "VALIDATE_SECURITY_GROUP_ASSOCIATION"++pattern LaunchProfileValidationType_VALIDATE_SUBNET_ASSOCIATION :: LaunchProfileValidationType+pattern LaunchProfileValidationType_VALIDATE_SUBNET_ASSOCIATION = LaunchProfileValidationType' "VALIDATE_SUBNET_ASSOCIATION"++{-# COMPLETE+  LaunchProfileValidationType_VALIDATE_ACTIVE_DIRECTORY_STUDIO_COMPONENT,+  LaunchProfileValidationType_VALIDATE_NETWORK_ACL_ASSOCIATION,+  LaunchProfileValidationType_VALIDATE_SECURITY_GROUP_ASSOCIATION,+  LaunchProfileValidationType_VALIDATE_SUBNET_ASSOCIATION,+  LaunchProfileValidationType'+  #-}
+ gen/Amazonka/Nimble/Types/LicenseServiceConfiguration.hs view
@@ -0,0 +1,83 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Nimble.Types.LicenseServiceConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Nimble.Types.LicenseServiceConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The configuration for a license service that is associated with a studio+-- resource.+--+-- /See:/ 'newLicenseServiceConfiguration' smart constructor.+data LicenseServiceConfiguration = LicenseServiceConfiguration'+  { -- | The endpoint of the license service that is accessed by the studio+    -- component resource.+    endpoint :: Prelude.Maybe (Data.Sensitive Prelude.Text)+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'LicenseServiceConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'endpoint', 'licenseServiceConfiguration_endpoint' - The endpoint of the license service that is accessed by the studio+-- component resource.+newLicenseServiceConfiguration ::+  LicenseServiceConfiguration+newLicenseServiceConfiguration =+  LicenseServiceConfiguration'+    { endpoint =+        Prelude.Nothing+    }++-- | The endpoint of the license service that is accessed by the studio+-- component resource.+licenseServiceConfiguration_endpoint :: Lens.Lens' LicenseServiceConfiguration (Prelude.Maybe Prelude.Text)+licenseServiceConfiguration_endpoint = Lens.lens (\LicenseServiceConfiguration' {endpoint} -> endpoint) (\s@LicenseServiceConfiguration' {} a -> s {endpoint = a} :: LicenseServiceConfiguration) Prelude.. Lens.mapping Data._Sensitive++instance Data.FromJSON LicenseServiceConfiguration where+  parseJSON =+    Data.withObject+      "LicenseServiceConfiguration"+      ( \x ->+          LicenseServiceConfiguration'+            Prelude.<$> (x Data..:? "endpoint")+      )++instance Prelude.Hashable LicenseServiceConfiguration where+  hashWithSalt _salt LicenseServiceConfiguration' {..} =+    _salt `Prelude.hashWithSalt` endpoint++instance Prelude.NFData LicenseServiceConfiguration where+  rnf LicenseServiceConfiguration' {..} =+    Prelude.rnf endpoint++instance Data.ToJSON LicenseServiceConfiguration where+  toJSON LicenseServiceConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [("endpoint" Data..=) Prelude.<$> endpoint]+      )
+ gen/Amazonka/Nimble/Types/NewLaunchProfileMember.hs view
@@ -0,0 +1,88 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Nimble.Types.NewLaunchProfileMember+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Nimble.Types.NewLaunchProfileMember where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Nimble.Types.LaunchProfilePersona+import qualified Amazonka.Prelude as Prelude++-- | A new member that is added to a launch profile.+--+-- /See:/ 'newNewLaunchProfileMember' smart constructor.+data NewLaunchProfileMember = NewLaunchProfileMember'+  { -- | The persona.+    persona :: LaunchProfilePersona,+    -- | The principal ID.+    principalId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'NewLaunchProfileMember' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'persona', 'newLaunchProfileMember_persona' - The persona.+--+-- 'principalId', 'newLaunchProfileMember_principalId' - The principal ID.+newNewLaunchProfileMember ::+  -- | 'persona'+  LaunchProfilePersona ->+  -- | 'principalId'+  Prelude.Text ->+  NewLaunchProfileMember+newNewLaunchProfileMember pPersona_ pPrincipalId_ =+  NewLaunchProfileMember'+    { persona = pPersona_,+      principalId = pPrincipalId_+    }++-- | The persona.+newLaunchProfileMember_persona :: Lens.Lens' NewLaunchProfileMember LaunchProfilePersona+newLaunchProfileMember_persona = Lens.lens (\NewLaunchProfileMember' {persona} -> persona) (\s@NewLaunchProfileMember' {} a -> s {persona = a} :: NewLaunchProfileMember)++-- | The principal ID.+newLaunchProfileMember_principalId :: Lens.Lens' NewLaunchProfileMember Prelude.Text+newLaunchProfileMember_principalId = Lens.lens (\NewLaunchProfileMember' {principalId} -> principalId) (\s@NewLaunchProfileMember' {} a -> s {principalId = a} :: NewLaunchProfileMember)++instance Prelude.Hashable NewLaunchProfileMember where+  hashWithSalt _salt NewLaunchProfileMember' {..} =+    _salt+      `Prelude.hashWithSalt` persona+      `Prelude.hashWithSalt` principalId++instance Prelude.NFData NewLaunchProfileMember where+  rnf NewLaunchProfileMember' {..} =+    Prelude.rnf persona+      `Prelude.seq` Prelude.rnf principalId++instance Data.ToJSON NewLaunchProfileMember where+  toJSON NewLaunchProfileMember' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("persona" Data..= persona),+            Prelude.Just ("principalId" Data..= principalId)+          ]+      )
+ gen/Amazonka/Nimble/Types/NewStudioMember.hs view
@@ -0,0 +1,88 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Nimble.Types.NewStudioMember+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Nimble.Types.NewStudioMember where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Nimble.Types.StudioPersona+import qualified Amazonka.Prelude as Prelude++-- | A new studio user\'s membership.+--+-- /See:/ 'newNewStudioMember' smart constructor.+data NewStudioMember = NewStudioMember'+  { -- | The persona.+    persona :: StudioPersona,+    -- | The principal ID.+    principalId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'NewStudioMember' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'persona', 'newStudioMember_persona' - The persona.+--+-- 'principalId', 'newStudioMember_principalId' - The principal ID.+newNewStudioMember ::+  -- | 'persona'+  StudioPersona ->+  -- | 'principalId'+  Prelude.Text ->+  NewStudioMember+newNewStudioMember pPersona_ pPrincipalId_ =+  NewStudioMember'+    { persona = pPersona_,+      principalId = pPrincipalId_+    }++-- | The persona.+newStudioMember_persona :: Lens.Lens' NewStudioMember StudioPersona+newStudioMember_persona = Lens.lens (\NewStudioMember' {persona} -> persona) (\s@NewStudioMember' {} a -> s {persona = a} :: NewStudioMember)++-- | The principal ID.+newStudioMember_principalId :: Lens.Lens' NewStudioMember Prelude.Text+newStudioMember_principalId = Lens.lens (\NewStudioMember' {principalId} -> principalId) (\s@NewStudioMember' {} a -> s {principalId = a} :: NewStudioMember)++instance Prelude.Hashable NewStudioMember where+  hashWithSalt _salt NewStudioMember' {..} =+    _salt+      `Prelude.hashWithSalt` persona+      `Prelude.hashWithSalt` principalId++instance Prelude.NFData NewStudioMember where+  rnf NewStudioMember' {..} =+    Prelude.rnf persona+      `Prelude.seq` Prelude.rnf principalId++instance Data.ToJSON NewStudioMember where+  toJSON NewStudioMember' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("persona" Data..= persona),+            Prelude.Just ("principalId" Data..= principalId)+          ]+      )
+ gen/Amazonka/Nimble/Types/ScriptParameterKeyValue.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.Nimble.Types.ScriptParameterKeyValue+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Nimble.Types.ScriptParameterKeyValue where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | A parameter for a studio component script, in the form of a key-value+-- pair.+--+-- /See:/ 'newScriptParameterKeyValue' smart constructor.+data ScriptParameterKeyValue = ScriptParameterKeyValue'+  { -- | A script parameter key.+    key :: Prelude.Maybe Prelude.Text,+    -- | A script parameter value.+    value :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ScriptParameterKeyValue' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'key', 'scriptParameterKeyValue_key' - A script parameter key.+--+-- 'value', 'scriptParameterKeyValue_value' - A script parameter value.+newScriptParameterKeyValue ::+  ScriptParameterKeyValue+newScriptParameterKeyValue =+  ScriptParameterKeyValue'+    { key = Prelude.Nothing,+      value = Prelude.Nothing+    }++-- | A script parameter key.+scriptParameterKeyValue_key :: Lens.Lens' ScriptParameterKeyValue (Prelude.Maybe Prelude.Text)+scriptParameterKeyValue_key = Lens.lens (\ScriptParameterKeyValue' {key} -> key) (\s@ScriptParameterKeyValue' {} a -> s {key = a} :: ScriptParameterKeyValue)++-- | A script parameter value.+scriptParameterKeyValue_value :: Lens.Lens' ScriptParameterKeyValue (Prelude.Maybe Prelude.Text)+scriptParameterKeyValue_value = Lens.lens (\ScriptParameterKeyValue' {value} -> value) (\s@ScriptParameterKeyValue' {} a -> s {value = a} :: ScriptParameterKeyValue)++instance Data.FromJSON ScriptParameterKeyValue where+  parseJSON =+    Data.withObject+      "ScriptParameterKeyValue"+      ( \x ->+          ScriptParameterKeyValue'+            Prelude.<$> (x Data..:? "key")+            Prelude.<*> (x Data..:? "value")+      )++instance Prelude.Hashable ScriptParameterKeyValue where+  hashWithSalt _salt ScriptParameterKeyValue' {..} =+    _salt+      `Prelude.hashWithSalt` key+      `Prelude.hashWithSalt` value++instance Prelude.NFData ScriptParameterKeyValue where+  rnf ScriptParameterKeyValue' {..} =+    Prelude.rnf key `Prelude.seq` Prelude.rnf value++instance Data.ToJSON ScriptParameterKeyValue where+  toJSON ScriptParameterKeyValue' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("key" Data..=) Prelude.<$> key,+            ("value" Data..=) Prelude.<$> value+          ]+      )
+ gen/Amazonka/Nimble/Types/SessionBackupMode.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.Nimble.Types.SessionBackupMode+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Nimble.Types.SessionBackupMode+  ( SessionBackupMode+      ( ..,+        SessionBackupMode_AUTOMATIC,+        SessionBackupMode_DEACTIVATED+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype SessionBackupMode = SessionBackupMode'+  { fromSessionBackupMode ::+      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 SessionBackupMode_AUTOMATIC :: SessionBackupMode+pattern SessionBackupMode_AUTOMATIC = SessionBackupMode' "AUTOMATIC"++pattern SessionBackupMode_DEACTIVATED :: SessionBackupMode+pattern SessionBackupMode_DEACTIVATED = SessionBackupMode' "DEACTIVATED"++{-# COMPLETE+  SessionBackupMode_AUTOMATIC,+  SessionBackupMode_DEACTIVATED,+  SessionBackupMode'+  #-}
+ gen/Amazonka/Nimble/Types/SessionPersistenceMode.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.Nimble.Types.SessionPersistenceMode+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Nimble.Types.SessionPersistenceMode+  ( SessionPersistenceMode+      ( ..,+        SessionPersistenceMode_ACTIVATED,+        SessionPersistenceMode_DEACTIVATED+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype SessionPersistenceMode = SessionPersistenceMode'+  { fromSessionPersistenceMode ::+      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 SessionPersistenceMode_ACTIVATED :: SessionPersistenceMode+pattern SessionPersistenceMode_ACTIVATED = SessionPersistenceMode' "ACTIVATED"++pattern SessionPersistenceMode_DEACTIVATED :: SessionPersistenceMode+pattern SessionPersistenceMode_DEACTIVATED = SessionPersistenceMode' "DEACTIVATED"++{-# COMPLETE+  SessionPersistenceMode_ACTIVATED,+  SessionPersistenceMode_DEACTIVATED,+  SessionPersistenceMode'+  #-}
+ gen/Amazonka/Nimble/Types/SharedFileSystemConfiguration.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.Nimble.Types.SharedFileSystemConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Nimble.Types.SharedFileSystemConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The configuration for a shared file storage system that is associated+-- with a studio resource.+--+-- /See:/ 'newSharedFileSystemConfiguration' smart constructor.+data SharedFileSystemConfiguration = SharedFileSystemConfiguration'+  { -- | The endpoint of the shared file system that is accessed by the studio+    -- component resource.+    endpoint :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The unique identifier for a file system.+    fileSystemId :: Prelude.Maybe Prelude.Text,+    -- | The mount location for a shared file system on a Linux virtual+    -- workstation.+    linuxMountPoint :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The name of the file share.+    shareName :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The mount location for a shared file system on a Windows virtual+    -- workstation.+    windowsMountDrive :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SharedFileSystemConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'endpoint', 'sharedFileSystemConfiguration_endpoint' - The endpoint of the shared file system that is accessed by the studio+-- component resource.+--+-- 'fileSystemId', 'sharedFileSystemConfiguration_fileSystemId' - The unique identifier for a file system.+--+-- 'linuxMountPoint', 'sharedFileSystemConfiguration_linuxMountPoint' - The mount location for a shared file system on a Linux virtual+-- workstation.+--+-- 'shareName', 'sharedFileSystemConfiguration_shareName' - The name of the file share.+--+-- 'windowsMountDrive', 'sharedFileSystemConfiguration_windowsMountDrive' - The mount location for a shared file system on a Windows virtual+-- workstation.+newSharedFileSystemConfiguration ::+  SharedFileSystemConfiguration+newSharedFileSystemConfiguration =+  SharedFileSystemConfiguration'+    { endpoint =+        Prelude.Nothing,+      fileSystemId = Prelude.Nothing,+      linuxMountPoint = Prelude.Nothing,+      shareName = Prelude.Nothing,+      windowsMountDrive = Prelude.Nothing+    }++-- | The endpoint of the shared file system that is accessed by the studio+-- component resource.+sharedFileSystemConfiguration_endpoint :: Lens.Lens' SharedFileSystemConfiguration (Prelude.Maybe Prelude.Text)+sharedFileSystemConfiguration_endpoint = Lens.lens (\SharedFileSystemConfiguration' {endpoint} -> endpoint) (\s@SharedFileSystemConfiguration' {} a -> s {endpoint = a} :: SharedFileSystemConfiguration) Prelude.. Lens.mapping Data._Sensitive++-- | The unique identifier for a file system.+sharedFileSystemConfiguration_fileSystemId :: Lens.Lens' SharedFileSystemConfiguration (Prelude.Maybe Prelude.Text)+sharedFileSystemConfiguration_fileSystemId = Lens.lens (\SharedFileSystemConfiguration' {fileSystemId} -> fileSystemId) (\s@SharedFileSystemConfiguration' {} a -> s {fileSystemId = a} :: SharedFileSystemConfiguration)++-- | The mount location for a shared file system on a Linux virtual+-- workstation.+sharedFileSystemConfiguration_linuxMountPoint :: Lens.Lens' SharedFileSystemConfiguration (Prelude.Maybe Prelude.Text)+sharedFileSystemConfiguration_linuxMountPoint = Lens.lens (\SharedFileSystemConfiguration' {linuxMountPoint} -> linuxMountPoint) (\s@SharedFileSystemConfiguration' {} a -> s {linuxMountPoint = a} :: SharedFileSystemConfiguration) Prelude.. Lens.mapping Data._Sensitive++-- | The name of the file share.+sharedFileSystemConfiguration_shareName :: Lens.Lens' SharedFileSystemConfiguration (Prelude.Maybe Prelude.Text)+sharedFileSystemConfiguration_shareName = Lens.lens (\SharedFileSystemConfiguration' {shareName} -> shareName) (\s@SharedFileSystemConfiguration' {} a -> s {shareName = a} :: SharedFileSystemConfiguration) Prelude.. Lens.mapping Data._Sensitive++-- | The mount location for a shared file system on a Windows virtual+-- workstation.+sharedFileSystemConfiguration_windowsMountDrive :: Lens.Lens' SharedFileSystemConfiguration (Prelude.Maybe Prelude.Text)+sharedFileSystemConfiguration_windowsMountDrive = Lens.lens (\SharedFileSystemConfiguration' {windowsMountDrive} -> windowsMountDrive) (\s@SharedFileSystemConfiguration' {} a -> s {windowsMountDrive = a} :: SharedFileSystemConfiguration)++instance Data.FromJSON SharedFileSystemConfiguration where+  parseJSON =+    Data.withObject+      "SharedFileSystemConfiguration"+      ( \x ->+          SharedFileSystemConfiguration'+            Prelude.<$> (x Data..:? "endpoint")+            Prelude.<*> (x Data..:? "fileSystemId")+            Prelude.<*> (x Data..:? "linuxMountPoint")+            Prelude.<*> (x Data..:? "shareName")+            Prelude.<*> (x Data..:? "windowsMountDrive")+      )++instance+  Prelude.Hashable+    SharedFileSystemConfiguration+  where+  hashWithSalt _salt SharedFileSystemConfiguration' {..} =+    _salt+      `Prelude.hashWithSalt` endpoint+      `Prelude.hashWithSalt` fileSystemId+      `Prelude.hashWithSalt` linuxMountPoint+      `Prelude.hashWithSalt` shareName+      `Prelude.hashWithSalt` windowsMountDrive++instance Prelude.NFData SharedFileSystemConfiguration where+  rnf SharedFileSystemConfiguration' {..} =+    Prelude.rnf endpoint+      `Prelude.seq` Prelude.rnf fileSystemId+      `Prelude.seq` Prelude.rnf linuxMountPoint+      `Prelude.seq` Prelude.rnf shareName+      `Prelude.seq` Prelude.rnf windowsMountDrive++instance Data.ToJSON SharedFileSystemConfiguration where+  toJSON SharedFileSystemConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("endpoint" Data..=) Prelude.<$> endpoint,+            ("fileSystemId" Data..=) Prelude.<$> fileSystemId,+            ("linuxMountPoint" Data..=)+              Prelude.<$> linuxMountPoint,+            ("shareName" Data..=) Prelude.<$> shareName,+            ("windowsMountDrive" Data..=)+              Prelude.<$> windowsMountDrive+          ]+      )
+ gen/Amazonka/Nimble/Types/StreamConfiguration.hs view
@@ -0,0 +1,325 @@+{-# 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.Nimble.Types.StreamConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Nimble.Types.StreamConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Nimble.Types.AutomaticTerminationMode+import Amazonka.Nimble.Types.SessionPersistenceMode+import Amazonka.Nimble.Types.StreamConfigurationSessionBackup+import Amazonka.Nimble.Types.StreamConfigurationSessionStorage+import Amazonka.Nimble.Types.StreamingClipboardMode+import Amazonka.Nimble.Types.StreamingInstanceType+import Amazonka.Nimble.Types.VolumeConfiguration+import qualified Amazonka.Prelude as Prelude++-- | A configuration for a streaming session.+--+-- /See:/ 'newStreamConfiguration' smart constructor.+data StreamConfiguration = StreamConfiguration'+  { -- | Indicates if a streaming session created from this launch profile should+    -- be terminated automatically or retained without termination after being+    -- in a @STOPPED@ state.+    --+    -- -   When @ACTIVATED@, the streaming session is scheduled for termination+    --     after being in the @STOPPED@ state for the time specified in+    --     @maxStoppedSessionLengthInMinutes@.+    --+    -- -   When @DEACTIVATED@, the streaming session can remain in the+    --     @STOPPED@ state indefinitely.+    --+    -- This parameter is only allowed when @sessionPersistenceMode@ is+    -- @ACTIVATED@. When allowed, the default value for this parameter is+    -- @DEACTIVATED@.+    automaticTerminationMode :: Prelude.Maybe AutomaticTerminationMode,+    -- | The length of time, in minutes, that a streaming session can be active+    -- before it is stopped or terminated. After this point, Nimble Studio+    -- automatically terminates or stops the session. The default length of+    -- time is 690 minutes, and the maximum length of time is 30 days.+    maxSessionLengthInMinutes :: Prelude.Maybe Prelude.Natural,+    -- | Integer that determines if you can start and stop your sessions and how+    -- long a session can stay in the @STOPPED@ state. The default value is 0.+    -- The maximum value is 5760.+    --+    -- This field is allowed only when @sessionPersistenceMode@ is @ACTIVATED@+    -- and @automaticTerminationMode@ is @ACTIVATED@.+    --+    -- If the value is set to 0, your sessions can’t be @STOPPED@. If you then+    -- call @StopStreamingSession@, the session fails. If the time that a+    -- session stays in the @READY@ state exceeds the+    -- @maxSessionLengthInMinutes@ value, the session will automatically be+    -- terminated (instead of @STOPPED@).+    --+    -- If the value is set to a positive number, the session can be stopped.+    -- You can call @StopStreamingSession@ to stop sessions in the @READY@+    -- state. If the time that a session stays in the @READY@ state exceeds the+    -- @maxSessionLengthInMinutes@ value, the session will automatically be+    -- stopped (instead of terminated).+    maxStoppedSessionLengthInMinutes :: Prelude.Maybe Prelude.Natural,+    -- | Information about the streaming session backup.+    sessionBackup :: Prelude.Maybe StreamConfigurationSessionBackup,+    -- | Determine if a streaming session created from this launch profile can+    -- configure persistent storage. This means that @volumeConfiguration@ and+    -- @automaticTerminationMode@ are configured.+    sessionPersistenceMode :: Prelude.Maybe SessionPersistenceMode,+    -- | The upload storage for a streaming session.+    sessionStorage :: Prelude.Maybe StreamConfigurationSessionStorage,+    -- | Custom volume configuration for the root volumes that are attached to+    -- streaming sessions.+    --+    -- This parameter is only allowed when @sessionPersistenceMode@ is+    -- @ACTIVATED@.+    volumeConfiguration :: Prelude.Maybe VolumeConfiguration,+    -- | Allows or deactivates the use of the system clipboard to copy and paste+    -- between the streaming session and streaming client.+    clipboardMode :: StreamingClipboardMode,+    -- | The EC2 instance types that users can select from when launching a+    -- streaming session with this launch profile.+    ec2InstanceTypes :: Prelude.NonEmpty StreamingInstanceType,+    -- | The streaming images that users can select from when launching a+    -- streaming session with this launch profile.+    streamingImageIds :: Prelude.NonEmpty Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StreamConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'automaticTerminationMode', 'streamConfiguration_automaticTerminationMode' - Indicates if a streaming session created from this launch profile should+-- be terminated automatically or retained without termination after being+-- in a @STOPPED@ state.+--+-- -   When @ACTIVATED@, the streaming session is scheduled for termination+--     after being in the @STOPPED@ state for the time specified in+--     @maxStoppedSessionLengthInMinutes@.+--+-- -   When @DEACTIVATED@, the streaming session can remain in the+--     @STOPPED@ state indefinitely.+--+-- This parameter is only allowed when @sessionPersistenceMode@ is+-- @ACTIVATED@. When allowed, the default value for this parameter is+-- @DEACTIVATED@.+--+-- 'maxSessionLengthInMinutes', 'streamConfiguration_maxSessionLengthInMinutes' - The length of time, in minutes, that a streaming session can be active+-- before it is stopped or terminated. After this point, Nimble Studio+-- automatically terminates or stops the session. The default length of+-- time is 690 minutes, and the maximum length of time is 30 days.+--+-- 'maxStoppedSessionLengthInMinutes', 'streamConfiguration_maxStoppedSessionLengthInMinutes' - Integer that determines if you can start and stop your sessions and how+-- long a session can stay in the @STOPPED@ state. The default value is 0.+-- The maximum value is 5760.+--+-- This field is allowed only when @sessionPersistenceMode@ is @ACTIVATED@+-- and @automaticTerminationMode@ is @ACTIVATED@.+--+-- If the value is set to 0, your sessions can’t be @STOPPED@. If you then+-- call @StopStreamingSession@, the session fails. If the time that a+-- session stays in the @READY@ state exceeds the+-- @maxSessionLengthInMinutes@ value, the session will automatically be+-- terminated (instead of @STOPPED@).+--+-- If the value is set to a positive number, the session can be stopped.+-- You can call @StopStreamingSession@ to stop sessions in the @READY@+-- state. If the time that a session stays in the @READY@ state exceeds the+-- @maxSessionLengthInMinutes@ value, the session will automatically be+-- stopped (instead of terminated).+--+-- 'sessionBackup', 'streamConfiguration_sessionBackup' - Information about the streaming session backup.+--+-- 'sessionPersistenceMode', 'streamConfiguration_sessionPersistenceMode' - Determine if a streaming session created from this launch profile can+-- configure persistent storage. This means that @volumeConfiguration@ and+-- @automaticTerminationMode@ are configured.+--+-- 'sessionStorage', 'streamConfiguration_sessionStorage' - The upload storage for a streaming session.+--+-- 'volumeConfiguration', 'streamConfiguration_volumeConfiguration' - Custom volume configuration for the root volumes that are attached to+-- streaming sessions.+--+-- This parameter is only allowed when @sessionPersistenceMode@ is+-- @ACTIVATED@.+--+-- 'clipboardMode', 'streamConfiguration_clipboardMode' - Allows or deactivates the use of the system clipboard to copy and paste+-- between the streaming session and streaming client.+--+-- 'ec2InstanceTypes', 'streamConfiguration_ec2InstanceTypes' - The EC2 instance types that users can select from when launching a+-- streaming session with this launch profile.+--+-- 'streamingImageIds', 'streamConfiguration_streamingImageIds' - The streaming images that users can select from when launching a+-- streaming session with this launch profile.+newStreamConfiguration ::+  -- | 'clipboardMode'+  StreamingClipboardMode ->+  -- | 'ec2InstanceTypes'+  Prelude.NonEmpty StreamingInstanceType ->+  -- | 'streamingImageIds'+  Prelude.NonEmpty Prelude.Text ->+  StreamConfiguration+newStreamConfiguration+  pClipboardMode_+  pEc2InstanceTypes_+  pStreamingImageIds_ =+    StreamConfiguration'+      { automaticTerminationMode =+          Prelude.Nothing,+        maxSessionLengthInMinutes = Prelude.Nothing,+        maxStoppedSessionLengthInMinutes = Prelude.Nothing,+        sessionBackup = Prelude.Nothing,+        sessionPersistenceMode = Prelude.Nothing,+        sessionStorage = Prelude.Nothing,+        volumeConfiguration = Prelude.Nothing,+        clipboardMode = pClipboardMode_,+        ec2InstanceTypes =+          Lens.coerced Lens.# pEc2InstanceTypes_,+        streamingImageIds =+          Lens.coerced Lens.# pStreamingImageIds_+      }++-- | Indicates if a streaming session created from this launch profile should+-- be terminated automatically or retained without termination after being+-- in a @STOPPED@ state.+--+-- -   When @ACTIVATED@, the streaming session is scheduled for termination+--     after being in the @STOPPED@ state for the time specified in+--     @maxStoppedSessionLengthInMinutes@.+--+-- -   When @DEACTIVATED@, the streaming session can remain in the+--     @STOPPED@ state indefinitely.+--+-- This parameter is only allowed when @sessionPersistenceMode@ is+-- @ACTIVATED@. When allowed, the default value for this parameter is+-- @DEACTIVATED@.+streamConfiguration_automaticTerminationMode :: Lens.Lens' StreamConfiguration (Prelude.Maybe AutomaticTerminationMode)+streamConfiguration_automaticTerminationMode = Lens.lens (\StreamConfiguration' {automaticTerminationMode} -> automaticTerminationMode) (\s@StreamConfiguration' {} a -> s {automaticTerminationMode = a} :: StreamConfiguration)++-- | The length of time, in minutes, that a streaming session can be active+-- before it is stopped or terminated. After this point, Nimble Studio+-- automatically terminates or stops the session. The default length of+-- time is 690 minutes, and the maximum length of time is 30 days.+streamConfiguration_maxSessionLengthInMinutes :: Lens.Lens' StreamConfiguration (Prelude.Maybe Prelude.Natural)+streamConfiguration_maxSessionLengthInMinutes = Lens.lens (\StreamConfiguration' {maxSessionLengthInMinutes} -> maxSessionLengthInMinutes) (\s@StreamConfiguration' {} a -> s {maxSessionLengthInMinutes = a} :: StreamConfiguration)++-- | Integer that determines if you can start and stop your sessions and how+-- long a session can stay in the @STOPPED@ state. The default value is 0.+-- The maximum value is 5760.+--+-- This field is allowed only when @sessionPersistenceMode@ is @ACTIVATED@+-- and @automaticTerminationMode@ is @ACTIVATED@.+--+-- If the value is set to 0, your sessions can’t be @STOPPED@. If you then+-- call @StopStreamingSession@, the session fails. If the time that a+-- session stays in the @READY@ state exceeds the+-- @maxSessionLengthInMinutes@ value, the session will automatically be+-- terminated (instead of @STOPPED@).+--+-- If the value is set to a positive number, the session can be stopped.+-- You can call @StopStreamingSession@ to stop sessions in the @READY@+-- state. If the time that a session stays in the @READY@ state exceeds the+-- @maxSessionLengthInMinutes@ value, the session will automatically be+-- stopped (instead of terminated).+streamConfiguration_maxStoppedSessionLengthInMinutes :: Lens.Lens' StreamConfiguration (Prelude.Maybe Prelude.Natural)+streamConfiguration_maxStoppedSessionLengthInMinutes = Lens.lens (\StreamConfiguration' {maxStoppedSessionLengthInMinutes} -> maxStoppedSessionLengthInMinutes) (\s@StreamConfiguration' {} a -> s {maxStoppedSessionLengthInMinutes = a} :: StreamConfiguration)++-- | Information about the streaming session backup.+streamConfiguration_sessionBackup :: Lens.Lens' StreamConfiguration (Prelude.Maybe StreamConfigurationSessionBackup)+streamConfiguration_sessionBackup = Lens.lens (\StreamConfiguration' {sessionBackup} -> sessionBackup) (\s@StreamConfiguration' {} a -> s {sessionBackup = a} :: StreamConfiguration)++-- | Determine if a streaming session created from this launch profile can+-- configure persistent storage. This means that @volumeConfiguration@ and+-- @automaticTerminationMode@ are configured.+streamConfiguration_sessionPersistenceMode :: Lens.Lens' StreamConfiguration (Prelude.Maybe SessionPersistenceMode)+streamConfiguration_sessionPersistenceMode = Lens.lens (\StreamConfiguration' {sessionPersistenceMode} -> sessionPersistenceMode) (\s@StreamConfiguration' {} a -> s {sessionPersistenceMode = a} :: StreamConfiguration)++-- | The upload storage for a streaming session.+streamConfiguration_sessionStorage :: Lens.Lens' StreamConfiguration (Prelude.Maybe StreamConfigurationSessionStorage)+streamConfiguration_sessionStorage = Lens.lens (\StreamConfiguration' {sessionStorage} -> sessionStorage) (\s@StreamConfiguration' {} a -> s {sessionStorage = a} :: StreamConfiguration)++-- | Custom volume configuration for the root volumes that are attached to+-- streaming sessions.+--+-- This parameter is only allowed when @sessionPersistenceMode@ is+-- @ACTIVATED@.+streamConfiguration_volumeConfiguration :: Lens.Lens' StreamConfiguration (Prelude.Maybe VolumeConfiguration)+streamConfiguration_volumeConfiguration = Lens.lens (\StreamConfiguration' {volumeConfiguration} -> volumeConfiguration) (\s@StreamConfiguration' {} a -> s {volumeConfiguration = a} :: StreamConfiguration)++-- | Allows or deactivates the use of the system clipboard to copy and paste+-- between the streaming session and streaming client.+streamConfiguration_clipboardMode :: Lens.Lens' StreamConfiguration StreamingClipboardMode+streamConfiguration_clipboardMode = Lens.lens (\StreamConfiguration' {clipboardMode} -> clipboardMode) (\s@StreamConfiguration' {} a -> s {clipboardMode = a} :: StreamConfiguration)++-- | The EC2 instance types that users can select from when launching a+-- streaming session with this launch profile.+streamConfiguration_ec2InstanceTypes :: Lens.Lens' StreamConfiguration (Prelude.NonEmpty StreamingInstanceType)+streamConfiguration_ec2InstanceTypes = Lens.lens (\StreamConfiguration' {ec2InstanceTypes} -> ec2InstanceTypes) (\s@StreamConfiguration' {} a -> s {ec2InstanceTypes = a} :: StreamConfiguration) Prelude.. Lens.coerced++-- | The streaming images that users can select from when launching a+-- streaming session with this launch profile.+streamConfiguration_streamingImageIds :: Lens.Lens' StreamConfiguration (Prelude.NonEmpty Prelude.Text)+streamConfiguration_streamingImageIds = Lens.lens (\StreamConfiguration' {streamingImageIds} -> streamingImageIds) (\s@StreamConfiguration' {} a -> s {streamingImageIds = a} :: StreamConfiguration) Prelude.. Lens.coerced++instance Data.FromJSON StreamConfiguration where+  parseJSON =+    Data.withObject+      "StreamConfiguration"+      ( \x ->+          StreamConfiguration'+            Prelude.<$> (x Data..:? "automaticTerminationMode")+            Prelude.<*> (x Data..:? "maxSessionLengthInMinutes")+            Prelude.<*> (x Data..:? "maxStoppedSessionLengthInMinutes")+            Prelude.<*> (x Data..:? "sessionBackup")+            Prelude.<*> (x Data..:? "sessionPersistenceMode")+            Prelude.<*> (x Data..:? "sessionStorage")+            Prelude.<*> (x Data..:? "volumeConfiguration")+            Prelude.<*> (x Data..: "clipboardMode")+            Prelude.<*> (x Data..: "ec2InstanceTypes")+            Prelude.<*> (x Data..: "streamingImageIds")+      )++instance Prelude.Hashable StreamConfiguration where+  hashWithSalt _salt StreamConfiguration' {..} =+    _salt+      `Prelude.hashWithSalt` automaticTerminationMode+      `Prelude.hashWithSalt` maxSessionLengthInMinutes+      `Prelude.hashWithSalt` maxStoppedSessionLengthInMinutes+      `Prelude.hashWithSalt` sessionBackup+      `Prelude.hashWithSalt` sessionPersistenceMode+      `Prelude.hashWithSalt` sessionStorage+      `Prelude.hashWithSalt` volumeConfiguration+      `Prelude.hashWithSalt` clipboardMode+      `Prelude.hashWithSalt` ec2InstanceTypes+      `Prelude.hashWithSalt` streamingImageIds++instance Prelude.NFData StreamConfiguration where+  rnf StreamConfiguration' {..} =+    Prelude.rnf automaticTerminationMode+      `Prelude.seq` Prelude.rnf maxSessionLengthInMinutes+      `Prelude.seq` Prelude.rnf maxStoppedSessionLengthInMinutes+      `Prelude.seq` Prelude.rnf sessionBackup+      `Prelude.seq` Prelude.rnf sessionPersistenceMode+      `Prelude.seq` Prelude.rnf sessionStorage+      `Prelude.seq` Prelude.rnf volumeConfiguration+      `Prelude.seq` Prelude.rnf clipboardMode+      `Prelude.seq` Prelude.rnf ec2InstanceTypes+      `Prelude.seq` Prelude.rnf streamingImageIds
+ gen/Amazonka/Nimble/Types/StreamConfigurationCreate.hs view
@@ -0,0 +1,340 @@+{-# 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.Nimble.Types.StreamConfigurationCreate+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Nimble.Types.StreamConfigurationCreate where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Nimble.Types.AutomaticTerminationMode+import Amazonka.Nimble.Types.SessionPersistenceMode+import Amazonka.Nimble.Types.StreamConfigurationSessionBackup+import Amazonka.Nimble.Types.StreamConfigurationSessionStorage+import Amazonka.Nimble.Types.StreamingClipboardMode+import Amazonka.Nimble.Types.StreamingInstanceType+import Amazonka.Nimble.Types.VolumeConfiguration+import qualified Amazonka.Prelude as Prelude++-- | Configuration for streaming workstations created using this launch+-- profile.+--+-- /See:/ 'newStreamConfigurationCreate' smart constructor.+data StreamConfigurationCreate = StreamConfigurationCreate'+  { -- | Indicates if a streaming session created from this launch profile should+    -- be terminated automatically or retained without termination after being+    -- in a @STOPPED@ state.+    --+    -- -   When @ACTIVATED@, the streaming session is scheduled for termination+    --     after being in the @STOPPED@ state for the time specified in+    --     @maxStoppedSessionLengthInMinutes@.+    --+    -- -   When @DEACTIVATED@, the streaming session can remain in the+    --     @STOPPED@ state indefinitely.+    --+    -- This parameter is only allowed when @sessionPersistenceMode@ is+    -- @ACTIVATED@. When allowed, the default value for this parameter is+    -- @DEACTIVATED@.+    automaticTerminationMode :: Prelude.Maybe AutomaticTerminationMode,+    -- | The length of time, in minutes, that a streaming session can be active+    -- before it is stopped or terminated. After this point, Nimble Studio+    -- automatically terminates or stops the session. The default length of+    -- time is 690 minutes, and the maximum length of time is 30 days.+    maxSessionLengthInMinutes :: Prelude.Maybe Prelude.Natural,+    -- | Integer that determines if you can start and stop your sessions and how+    -- long a session can stay in the @STOPPED@ state. The default value is 0.+    -- The maximum value is 5760.+    --+    -- This field is allowed only when @sessionPersistenceMode@ is @ACTIVATED@+    -- and @automaticTerminationMode@ is @ACTIVATED@.+    --+    -- If the value is set to 0, your sessions can’t be @STOPPED@. If you then+    -- call @StopStreamingSession@, the session fails. If the time that a+    -- session stays in the @READY@ state exceeds the+    -- @maxSessionLengthInMinutes@ value, the session will automatically be+    -- terminated (instead of @STOPPED@).+    --+    -- If the value is set to a positive number, the session can be stopped.+    -- You can call @StopStreamingSession@ to stop sessions in the @READY@+    -- state. If the time that a session stays in the @READY@ state exceeds the+    -- @maxSessionLengthInMinutes@ value, the session will automatically be+    -- stopped (instead of terminated).+    maxStoppedSessionLengthInMinutes :: Prelude.Maybe Prelude.Natural,+    -- | Configures how streaming sessions are backed up when launched from this+    -- launch profile.+    sessionBackup :: Prelude.Maybe StreamConfigurationSessionBackup,+    -- | Determine if a streaming session created from this launch profile can+    -- configure persistent storage. This means that @volumeConfiguration@ and+    -- @automaticTerminationMode@ are configured.+    sessionPersistenceMode :: Prelude.Maybe SessionPersistenceMode,+    -- | The upload storage for a streaming workstation that is created using+    -- this launch profile.+    sessionStorage :: Prelude.Maybe StreamConfigurationSessionStorage,+    -- | Custom volume configuration for the root volumes that are attached to+    -- streaming sessions.+    --+    -- This parameter is only allowed when @sessionPersistenceMode@ is+    -- @ACTIVATED@.+    volumeConfiguration :: Prelude.Maybe VolumeConfiguration,+    -- | Allows or deactivates the use of the system clipboard to copy and paste+    -- between the streaming session and streaming client.+    clipboardMode :: StreamingClipboardMode,+    -- | The EC2 instance types that users can select from when launching a+    -- streaming session with this launch profile.+    ec2InstanceTypes :: Prelude.NonEmpty StreamingInstanceType,+    -- | The streaming images that users can select from when launching a+    -- streaming session with this launch profile.+    streamingImageIds :: Prelude.NonEmpty Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StreamConfigurationCreate' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'automaticTerminationMode', 'streamConfigurationCreate_automaticTerminationMode' - Indicates if a streaming session created from this launch profile should+-- be terminated automatically or retained without termination after being+-- in a @STOPPED@ state.+--+-- -   When @ACTIVATED@, the streaming session is scheduled for termination+--     after being in the @STOPPED@ state for the time specified in+--     @maxStoppedSessionLengthInMinutes@.+--+-- -   When @DEACTIVATED@, the streaming session can remain in the+--     @STOPPED@ state indefinitely.+--+-- This parameter is only allowed when @sessionPersistenceMode@ is+-- @ACTIVATED@. When allowed, the default value for this parameter is+-- @DEACTIVATED@.+--+-- 'maxSessionLengthInMinutes', 'streamConfigurationCreate_maxSessionLengthInMinutes' - The length of time, in minutes, that a streaming session can be active+-- before it is stopped or terminated. After this point, Nimble Studio+-- automatically terminates or stops the session. The default length of+-- time is 690 minutes, and the maximum length of time is 30 days.+--+-- 'maxStoppedSessionLengthInMinutes', 'streamConfigurationCreate_maxStoppedSessionLengthInMinutes' - Integer that determines if you can start and stop your sessions and how+-- long a session can stay in the @STOPPED@ state. The default value is 0.+-- The maximum value is 5760.+--+-- This field is allowed only when @sessionPersistenceMode@ is @ACTIVATED@+-- and @automaticTerminationMode@ is @ACTIVATED@.+--+-- If the value is set to 0, your sessions can’t be @STOPPED@. If you then+-- call @StopStreamingSession@, the session fails. If the time that a+-- session stays in the @READY@ state exceeds the+-- @maxSessionLengthInMinutes@ value, the session will automatically be+-- terminated (instead of @STOPPED@).+--+-- If the value is set to a positive number, the session can be stopped.+-- You can call @StopStreamingSession@ to stop sessions in the @READY@+-- state. If the time that a session stays in the @READY@ state exceeds the+-- @maxSessionLengthInMinutes@ value, the session will automatically be+-- stopped (instead of terminated).+--+-- 'sessionBackup', 'streamConfigurationCreate_sessionBackup' - Configures how streaming sessions are backed up when launched from this+-- launch profile.+--+-- 'sessionPersistenceMode', 'streamConfigurationCreate_sessionPersistenceMode' - Determine if a streaming session created from this launch profile can+-- configure persistent storage. This means that @volumeConfiguration@ and+-- @automaticTerminationMode@ are configured.+--+-- 'sessionStorage', 'streamConfigurationCreate_sessionStorage' - The upload storage for a streaming workstation that is created using+-- this launch profile.+--+-- 'volumeConfiguration', 'streamConfigurationCreate_volumeConfiguration' - Custom volume configuration for the root volumes that are attached to+-- streaming sessions.+--+-- This parameter is only allowed when @sessionPersistenceMode@ is+-- @ACTIVATED@.+--+-- 'clipboardMode', 'streamConfigurationCreate_clipboardMode' - Allows or deactivates the use of the system clipboard to copy and paste+-- between the streaming session and streaming client.+--+-- 'ec2InstanceTypes', 'streamConfigurationCreate_ec2InstanceTypes' - The EC2 instance types that users can select from when launching a+-- streaming session with this launch profile.+--+-- 'streamingImageIds', 'streamConfigurationCreate_streamingImageIds' - The streaming images that users can select from when launching a+-- streaming session with this launch profile.+newStreamConfigurationCreate ::+  -- | 'clipboardMode'+  StreamingClipboardMode ->+  -- | 'ec2InstanceTypes'+  Prelude.NonEmpty StreamingInstanceType ->+  -- | 'streamingImageIds'+  Prelude.NonEmpty Prelude.Text ->+  StreamConfigurationCreate+newStreamConfigurationCreate+  pClipboardMode_+  pEc2InstanceTypes_+  pStreamingImageIds_ =+    StreamConfigurationCreate'+      { automaticTerminationMode =+          Prelude.Nothing,+        maxSessionLengthInMinutes = Prelude.Nothing,+        maxStoppedSessionLengthInMinutes =+          Prelude.Nothing,+        sessionBackup = Prelude.Nothing,+        sessionPersistenceMode = Prelude.Nothing,+        sessionStorage = Prelude.Nothing,+        volumeConfiguration = Prelude.Nothing,+        clipboardMode = pClipboardMode_,+        ec2InstanceTypes =+          Lens.coerced Lens.# pEc2InstanceTypes_,+        streamingImageIds =+          Lens.coerced Lens.# pStreamingImageIds_+      }++-- | Indicates if a streaming session created from this launch profile should+-- be terminated automatically or retained without termination after being+-- in a @STOPPED@ state.+--+-- -   When @ACTIVATED@, the streaming session is scheduled for termination+--     after being in the @STOPPED@ state for the time specified in+--     @maxStoppedSessionLengthInMinutes@.+--+-- -   When @DEACTIVATED@, the streaming session can remain in the+--     @STOPPED@ state indefinitely.+--+-- This parameter is only allowed when @sessionPersistenceMode@ is+-- @ACTIVATED@. When allowed, the default value for this parameter is+-- @DEACTIVATED@.+streamConfigurationCreate_automaticTerminationMode :: Lens.Lens' StreamConfigurationCreate (Prelude.Maybe AutomaticTerminationMode)+streamConfigurationCreate_automaticTerminationMode = Lens.lens (\StreamConfigurationCreate' {automaticTerminationMode} -> automaticTerminationMode) (\s@StreamConfigurationCreate' {} a -> s {automaticTerminationMode = a} :: StreamConfigurationCreate)++-- | The length of time, in minutes, that a streaming session can be active+-- before it is stopped or terminated. After this point, Nimble Studio+-- automatically terminates or stops the session. The default length of+-- time is 690 minutes, and the maximum length of time is 30 days.+streamConfigurationCreate_maxSessionLengthInMinutes :: Lens.Lens' StreamConfigurationCreate (Prelude.Maybe Prelude.Natural)+streamConfigurationCreate_maxSessionLengthInMinutes = Lens.lens (\StreamConfigurationCreate' {maxSessionLengthInMinutes} -> maxSessionLengthInMinutes) (\s@StreamConfigurationCreate' {} a -> s {maxSessionLengthInMinutes = a} :: StreamConfigurationCreate)++-- | Integer that determines if you can start and stop your sessions and how+-- long a session can stay in the @STOPPED@ state. The default value is 0.+-- The maximum value is 5760.+--+-- This field is allowed only when @sessionPersistenceMode@ is @ACTIVATED@+-- and @automaticTerminationMode@ is @ACTIVATED@.+--+-- If the value is set to 0, your sessions can’t be @STOPPED@. If you then+-- call @StopStreamingSession@, the session fails. If the time that a+-- session stays in the @READY@ state exceeds the+-- @maxSessionLengthInMinutes@ value, the session will automatically be+-- terminated (instead of @STOPPED@).+--+-- If the value is set to a positive number, the session can be stopped.+-- You can call @StopStreamingSession@ to stop sessions in the @READY@+-- state. If the time that a session stays in the @READY@ state exceeds the+-- @maxSessionLengthInMinutes@ value, the session will automatically be+-- stopped (instead of terminated).+streamConfigurationCreate_maxStoppedSessionLengthInMinutes :: Lens.Lens' StreamConfigurationCreate (Prelude.Maybe Prelude.Natural)+streamConfigurationCreate_maxStoppedSessionLengthInMinutes = Lens.lens (\StreamConfigurationCreate' {maxStoppedSessionLengthInMinutes} -> maxStoppedSessionLengthInMinutes) (\s@StreamConfigurationCreate' {} a -> s {maxStoppedSessionLengthInMinutes = a} :: StreamConfigurationCreate)++-- | Configures how streaming sessions are backed up when launched from this+-- launch profile.+streamConfigurationCreate_sessionBackup :: Lens.Lens' StreamConfigurationCreate (Prelude.Maybe StreamConfigurationSessionBackup)+streamConfigurationCreate_sessionBackup = Lens.lens (\StreamConfigurationCreate' {sessionBackup} -> sessionBackup) (\s@StreamConfigurationCreate' {} a -> s {sessionBackup = a} :: StreamConfigurationCreate)++-- | Determine if a streaming session created from this launch profile can+-- configure persistent storage. This means that @volumeConfiguration@ and+-- @automaticTerminationMode@ are configured.+streamConfigurationCreate_sessionPersistenceMode :: Lens.Lens' StreamConfigurationCreate (Prelude.Maybe SessionPersistenceMode)+streamConfigurationCreate_sessionPersistenceMode = Lens.lens (\StreamConfigurationCreate' {sessionPersistenceMode} -> sessionPersistenceMode) (\s@StreamConfigurationCreate' {} a -> s {sessionPersistenceMode = a} :: StreamConfigurationCreate)++-- | The upload storage for a streaming workstation that is created using+-- this launch profile.+streamConfigurationCreate_sessionStorage :: Lens.Lens' StreamConfigurationCreate (Prelude.Maybe StreamConfigurationSessionStorage)+streamConfigurationCreate_sessionStorage = Lens.lens (\StreamConfigurationCreate' {sessionStorage} -> sessionStorage) (\s@StreamConfigurationCreate' {} a -> s {sessionStorage = a} :: StreamConfigurationCreate)++-- | Custom volume configuration for the root volumes that are attached to+-- streaming sessions.+--+-- This parameter is only allowed when @sessionPersistenceMode@ is+-- @ACTIVATED@.+streamConfigurationCreate_volumeConfiguration :: Lens.Lens' StreamConfigurationCreate (Prelude.Maybe VolumeConfiguration)+streamConfigurationCreate_volumeConfiguration = Lens.lens (\StreamConfigurationCreate' {volumeConfiguration} -> volumeConfiguration) (\s@StreamConfigurationCreate' {} a -> s {volumeConfiguration = a} :: StreamConfigurationCreate)++-- | Allows or deactivates the use of the system clipboard to copy and paste+-- between the streaming session and streaming client.+streamConfigurationCreate_clipboardMode :: Lens.Lens' StreamConfigurationCreate StreamingClipboardMode+streamConfigurationCreate_clipboardMode = Lens.lens (\StreamConfigurationCreate' {clipboardMode} -> clipboardMode) (\s@StreamConfigurationCreate' {} a -> s {clipboardMode = a} :: StreamConfigurationCreate)++-- | The EC2 instance types that users can select from when launching a+-- streaming session with this launch profile.+streamConfigurationCreate_ec2InstanceTypes :: Lens.Lens' StreamConfigurationCreate (Prelude.NonEmpty StreamingInstanceType)+streamConfigurationCreate_ec2InstanceTypes = Lens.lens (\StreamConfigurationCreate' {ec2InstanceTypes} -> ec2InstanceTypes) (\s@StreamConfigurationCreate' {} a -> s {ec2InstanceTypes = a} :: StreamConfigurationCreate) Prelude.. Lens.coerced++-- | The streaming images that users can select from when launching a+-- streaming session with this launch profile.+streamConfigurationCreate_streamingImageIds :: Lens.Lens' StreamConfigurationCreate (Prelude.NonEmpty Prelude.Text)+streamConfigurationCreate_streamingImageIds = Lens.lens (\StreamConfigurationCreate' {streamingImageIds} -> streamingImageIds) (\s@StreamConfigurationCreate' {} a -> s {streamingImageIds = a} :: StreamConfigurationCreate) Prelude.. Lens.coerced++instance Prelude.Hashable StreamConfigurationCreate where+  hashWithSalt _salt StreamConfigurationCreate' {..} =+    _salt+      `Prelude.hashWithSalt` automaticTerminationMode+      `Prelude.hashWithSalt` maxSessionLengthInMinutes+      `Prelude.hashWithSalt` maxStoppedSessionLengthInMinutes+      `Prelude.hashWithSalt` sessionBackup+      `Prelude.hashWithSalt` sessionPersistenceMode+      `Prelude.hashWithSalt` sessionStorage+      `Prelude.hashWithSalt` volumeConfiguration+      `Prelude.hashWithSalt` clipboardMode+      `Prelude.hashWithSalt` ec2InstanceTypes+      `Prelude.hashWithSalt` streamingImageIds++instance Prelude.NFData StreamConfigurationCreate where+  rnf StreamConfigurationCreate' {..} =+    Prelude.rnf automaticTerminationMode+      `Prelude.seq` Prelude.rnf maxSessionLengthInMinutes+      `Prelude.seq` Prelude.rnf maxStoppedSessionLengthInMinutes+      `Prelude.seq` Prelude.rnf sessionBackup+      `Prelude.seq` Prelude.rnf sessionPersistenceMode+      `Prelude.seq` Prelude.rnf sessionStorage+      `Prelude.seq` Prelude.rnf volumeConfiguration+      `Prelude.seq` Prelude.rnf clipboardMode+      `Prelude.seq` Prelude.rnf ec2InstanceTypes+      `Prelude.seq` Prelude.rnf streamingImageIds++instance Data.ToJSON StreamConfigurationCreate where+  toJSON StreamConfigurationCreate' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("automaticTerminationMode" Data..=)+              Prelude.<$> automaticTerminationMode,+            ("maxSessionLengthInMinutes" Data..=)+              Prelude.<$> maxSessionLengthInMinutes,+            ("maxStoppedSessionLengthInMinutes" Data..=)+              Prelude.<$> maxStoppedSessionLengthInMinutes,+            ("sessionBackup" Data..=) Prelude.<$> sessionBackup,+            ("sessionPersistenceMode" Data..=)+              Prelude.<$> sessionPersistenceMode,+            ("sessionStorage" Data..=)+              Prelude.<$> sessionStorage,+            ("volumeConfiguration" Data..=)+              Prelude.<$> volumeConfiguration,+            Prelude.Just ("clipboardMode" Data..= clipboardMode),+            Prelude.Just+              ("ec2InstanceTypes" Data..= ec2InstanceTypes),+            Prelude.Just+              ("streamingImageIds" Data..= streamingImageIds)+          ]+      )
+ gen/Amazonka/Nimble/Types/StreamConfigurationSessionBackup.hs view
@@ -0,0 +1,123 @@+{-# 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.Nimble.Types.StreamConfigurationSessionBackup+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Nimble.Types.StreamConfigurationSessionBackup where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Nimble.Types.SessionBackupMode+import qualified Amazonka.Prelude as Prelude++-- | Configures how streaming sessions are backed up when launched from this+-- launch profile.+--+-- /See:/ 'newStreamConfigurationSessionBackup' smart constructor.+data StreamConfigurationSessionBackup = StreamConfigurationSessionBackup'+  { -- | The maximum number of backups that each streaming session created from+    -- this launch profile can have.+    maxBackupsToRetain :: Prelude.Maybe Prelude.Natural,+    -- | Specifies how artists sessions are backed up.+    --+    -- Configures backups for streaming sessions launched with this launch+    -- profile. The default value is @DEACTIVATED@, which means that backups+    -- are deactivated. To allow backups, set this value to @AUTOMATIC@.+    mode :: Prelude.Maybe SessionBackupMode+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StreamConfigurationSessionBackup' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'maxBackupsToRetain', 'streamConfigurationSessionBackup_maxBackupsToRetain' - The maximum number of backups that each streaming session created from+-- this launch profile can have.+--+-- 'mode', 'streamConfigurationSessionBackup_mode' - Specifies how artists sessions are backed up.+--+-- Configures backups for streaming sessions launched with this launch+-- profile. The default value is @DEACTIVATED@, which means that backups+-- are deactivated. To allow backups, set this value to @AUTOMATIC@.+newStreamConfigurationSessionBackup ::+  StreamConfigurationSessionBackup+newStreamConfigurationSessionBackup =+  StreamConfigurationSessionBackup'+    { maxBackupsToRetain =+        Prelude.Nothing,+      mode = Prelude.Nothing+    }++-- | The maximum number of backups that each streaming session created from+-- this launch profile can have.+streamConfigurationSessionBackup_maxBackupsToRetain :: Lens.Lens' StreamConfigurationSessionBackup (Prelude.Maybe Prelude.Natural)+streamConfigurationSessionBackup_maxBackupsToRetain = Lens.lens (\StreamConfigurationSessionBackup' {maxBackupsToRetain} -> maxBackupsToRetain) (\s@StreamConfigurationSessionBackup' {} a -> s {maxBackupsToRetain = a} :: StreamConfigurationSessionBackup)++-- | Specifies how artists sessions are backed up.+--+-- Configures backups for streaming sessions launched with this launch+-- profile. The default value is @DEACTIVATED@, which means that backups+-- are deactivated. To allow backups, set this value to @AUTOMATIC@.+streamConfigurationSessionBackup_mode :: Lens.Lens' StreamConfigurationSessionBackup (Prelude.Maybe SessionBackupMode)+streamConfigurationSessionBackup_mode = Lens.lens (\StreamConfigurationSessionBackup' {mode} -> mode) (\s@StreamConfigurationSessionBackup' {} a -> s {mode = a} :: StreamConfigurationSessionBackup)++instance+  Data.FromJSON+    StreamConfigurationSessionBackup+  where+  parseJSON =+    Data.withObject+      "StreamConfigurationSessionBackup"+      ( \x ->+          StreamConfigurationSessionBackup'+            Prelude.<$> (x Data..:? "maxBackupsToRetain")+            Prelude.<*> (x Data..:? "mode")+      )++instance+  Prelude.Hashable+    StreamConfigurationSessionBackup+  where+  hashWithSalt+    _salt+    StreamConfigurationSessionBackup' {..} =+      _salt+        `Prelude.hashWithSalt` maxBackupsToRetain+        `Prelude.hashWithSalt` mode++instance+  Prelude.NFData+    StreamConfigurationSessionBackup+  where+  rnf StreamConfigurationSessionBackup' {..} =+    Prelude.rnf maxBackupsToRetain+      `Prelude.seq` Prelude.rnf mode++instance Data.ToJSON StreamConfigurationSessionBackup where+  toJSON StreamConfigurationSessionBackup' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("maxBackupsToRetain" Data..=)+              Prelude.<$> maxBackupsToRetain,+            ("mode" Data..=) Prelude.<$> mode+          ]+      )
+ gen/Amazonka/Nimble/Types/StreamConfigurationSessionStorage.hs view
@@ -0,0 +1,114 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Nimble.Types.StreamConfigurationSessionStorage+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Nimble.Types.StreamConfigurationSessionStorage where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Nimble.Types.StreamingSessionStorageMode+import Amazonka.Nimble.Types.StreamingSessionStorageRoot+import qualified Amazonka.Prelude as Prelude++-- | The configuration for a streaming session’s upload storage.+--+-- /See:/ 'newStreamConfigurationSessionStorage' smart constructor.+data StreamConfigurationSessionStorage = StreamConfigurationSessionStorage'+  { -- | The configuration for the upload storage root of the streaming session.+    root :: Prelude.Maybe StreamingSessionStorageRoot,+    -- | Allows artists to upload files to their workstations. The only valid+    -- option is @UPLOAD@.+    mode :: Prelude.NonEmpty StreamingSessionStorageMode+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StreamConfigurationSessionStorage' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'root', 'streamConfigurationSessionStorage_root' - The configuration for the upload storage root of the streaming session.+--+-- 'mode', 'streamConfigurationSessionStorage_mode' - Allows artists to upload files to their workstations. The only valid+-- option is @UPLOAD@.+newStreamConfigurationSessionStorage ::+  -- | 'mode'+  Prelude.NonEmpty StreamingSessionStorageMode ->+  StreamConfigurationSessionStorage+newStreamConfigurationSessionStorage pMode_ =+  StreamConfigurationSessionStorage'+    { root =+        Prelude.Nothing,+      mode = Lens.coerced Lens.# pMode_+    }++-- | The configuration for the upload storage root of the streaming session.+streamConfigurationSessionStorage_root :: Lens.Lens' StreamConfigurationSessionStorage (Prelude.Maybe StreamingSessionStorageRoot)+streamConfigurationSessionStorage_root = Lens.lens (\StreamConfigurationSessionStorage' {root} -> root) (\s@StreamConfigurationSessionStorage' {} a -> s {root = a} :: StreamConfigurationSessionStorage)++-- | Allows artists to upload files to their workstations. The only valid+-- option is @UPLOAD@.+streamConfigurationSessionStorage_mode :: Lens.Lens' StreamConfigurationSessionStorage (Prelude.NonEmpty StreamingSessionStorageMode)+streamConfigurationSessionStorage_mode = Lens.lens (\StreamConfigurationSessionStorage' {mode} -> mode) (\s@StreamConfigurationSessionStorage' {} a -> s {mode = a} :: StreamConfigurationSessionStorage) Prelude.. Lens.coerced++instance+  Data.FromJSON+    StreamConfigurationSessionStorage+  where+  parseJSON =+    Data.withObject+      "StreamConfigurationSessionStorage"+      ( \x ->+          StreamConfigurationSessionStorage'+            Prelude.<$> (x Data..:? "root")+            Prelude.<*> (x Data..: "mode")+      )++instance+  Prelude.Hashable+    StreamConfigurationSessionStorage+  where+  hashWithSalt+    _salt+    StreamConfigurationSessionStorage' {..} =+      _salt+        `Prelude.hashWithSalt` root+        `Prelude.hashWithSalt` mode++instance+  Prelude.NFData+    StreamConfigurationSessionStorage+  where+  rnf StreamConfigurationSessionStorage' {..} =+    Prelude.rnf root `Prelude.seq` Prelude.rnf mode++instance+  Data.ToJSON+    StreamConfigurationSessionStorage+  where+  toJSON StreamConfigurationSessionStorage' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("root" Data..=) Prelude.<$> root,+            Prelude.Just ("mode" Data..= mode)+          ]+      )
+ gen/Amazonka/Nimble/Types/StreamingClipboardMode.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.Nimble.Types.StreamingClipboardMode+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Nimble.Types.StreamingClipboardMode+  ( StreamingClipboardMode+      ( ..,+        StreamingClipboardMode_DISABLED,+        StreamingClipboardMode_ENABLED+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype StreamingClipboardMode = StreamingClipboardMode'+  { fromStreamingClipboardMode ::+      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 StreamingClipboardMode_DISABLED :: StreamingClipboardMode+pattern StreamingClipboardMode_DISABLED = StreamingClipboardMode' "DISABLED"++pattern StreamingClipboardMode_ENABLED :: StreamingClipboardMode+pattern StreamingClipboardMode_ENABLED = StreamingClipboardMode' "ENABLED"++{-# COMPLETE+  StreamingClipboardMode_DISABLED,+  StreamingClipboardMode_ENABLED,+  StreamingClipboardMode'+  #-}
+ gen/Amazonka/Nimble/Types/StreamingImage.hs view
@@ -0,0 +1,245 @@+{-# 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.Nimble.Types.StreamingImage+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Nimble.Types.StreamingImage where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Nimble.Types.StreamingImageEncryptionConfiguration+import Amazonka.Nimble.Types.StreamingImageState+import Amazonka.Nimble.Types.StreamingImageStatusCode+import qualified Amazonka.Prelude as Prelude++-- | Represents a streaming image resource.+--+-- Streaming images are used by studio users to select which operating+-- system and software they want to use in a Nimble Studio streaming+-- session.+--+-- Amazon provides a number of streaming images that include popular+-- 3rd-party software.+--+-- You can create your own streaming images using an Amazon EC2 machine+-- image that you create for this purpose. You can also include software+-- that your users require.+--+-- /See:/ 'newStreamingImage' smart constructor.+data StreamingImage = StreamingImage'+  { -- | The Amazon Resource Name (ARN) that is assigned to a studio resource and+    -- uniquely identifies it. ARNs are unique across all Regions.+    arn :: Prelude.Maybe Prelude.Text,+    -- | A human-readable description of the streaming image.+    description :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The ID of an EC2 machine image with which to create the streaming image.+    ec2ImageId :: Prelude.Maybe Prelude.Text,+    -- | The encryption configuration.+    encryptionConfiguration :: Prelude.Maybe StreamingImageEncryptionConfiguration,+    -- | The list of EULAs that must be accepted before a Streaming Session can+    -- be started using this streaming image.+    eulaIds :: Prelude.Maybe [Prelude.Text],+    -- | A friendly name for a streaming image resource.+    name :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The owner of the streaming image, either the @studioId@ that contains+    -- the streaming image, or @amazon@ for images that are provided by Amazon+    -- Nimble Studio.+    owner :: Prelude.Maybe Prelude.Text,+    -- | The platform of the streaming image, either Windows or Linux.+    platform :: Prelude.Maybe Prelude.Text,+    -- | The current state.+    state :: Prelude.Maybe StreamingImageState,+    -- | The status code.+    statusCode :: Prelude.Maybe StreamingImageStatusCode,+    -- | The status message for the streaming image.+    statusMessage :: Prelude.Maybe Prelude.Text,+    -- | The ID of the streaming image.+    streamingImageId :: Prelude.Maybe Prelude.Text,+    -- | A collection of labels, in the form of key-value pairs, that apply to+    -- this resource.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text)+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StreamingImage' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'streamingImage_arn' - The Amazon Resource Name (ARN) that is assigned to a studio resource and+-- uniquely identifies it. ARNs are unique across all Regions.+--+-- 'description', 'streamingImage_description' - A human-readable description of the streaming image.+--+-- 'ec2ImageId', 'streamingImage_ec2ImageId' - The ID of an EC2 machine image with which to create the streaming image.+--+-- 'encryptionConfiguration', 'streamingImage_encryptionConfiguration' - The encryption configuration.+--+-- 'eulaIds', 'streamingImage_eulaIds' - The list of EULAs that must be accepted before a Streaming Session can+-- be started using this streaming image.+--+-- 'name', 'streamingImage_name' - A friendly name for a streaming image resource.+--+-- 'owner', 'streamingImage_owner' - The owner of the streaming image, either the @studioId@ that contains+-- the streaming image, or @amazon@ for images that are provided by Amazon+-- Nimble Studio.+--+-- 'platform', 'streamingImage_platform' - The platform of the streaming image, either Windows or Linux.+--+-- 'state', 'streamingImage_state' - The current state.+--+-- 'statusCode', 'streamingImage_statusCode' - The status code.+--+-- 'statusMessage', 'streamingImage_statusMessage' - The status message for the streaming image.+--+-- 'streamingImageId', 'streamingImage_streamingImageId' - The ID of the streaming image.+--+-- 'tags', 'streamingImage_tags' - A collection of labels, in the form of key-value pairs, that apply to+-- this resource.+newStreamingImage ::+  StreamingImage+newStreamingImage =+  StreamingImage'+    { arn = Prelude.Nothing,+      description = Prelude.Nothing,+      ec2ImageId = Prelude.Nothing,+      encryptionConfiguration = Prelude.Nothing,+      eulaIds = Prelude.Nothing,+      name = Prelude.Nothing,+      owner = Prelude.Nothing,+      platform = Prelude.Nothing,+      state = Prelude.Nothing,+      statusCode = Prelude.Nothing,+      statusMessage = Prelude.Nothing,+      streamingImageId = Prelude.Nothing,+      tags = Prelude.Nothing+    }++-- | The Amazon Resource Name (ARN) that is assigned to a studio resource and+-- uniquely identifies it. ARNs are unique across all Regions.+streamingImage_arn :: Lens.Lens' StreamingImage (Prelude.Maybe Prelude.Text)+streamingImage_arn = Lens.lens (\StreamingImage' {arn} -> arn) (\s@StreamingImage' {} a -> s {arn = a} :: StreamingImage)++-- | A human-readable description of the streaming image.+streamingImage_description :: Lens.Lens' StreamingImage (Prelude.Maybe Prelude.Text)+streamingImage_description = Lens.lens (\StreamingImage' {description} -> description) (\s@StreamingImage' {} a -> s {description = a} :: StreamingImage) Prelude.. Lens.mapping Data._Sensitive++-- | The ID of an EC2 machine image with which to create the streaming image.+streamingImage_ec2ImageId :: Lens.Lens' StreamingImage (Prelude.Maybe Prelude.Text)+streamingImage_ec2ImageId = Lens.lens (\StreamingImage' {ec2ImageId} -> ec2ImageId) (\s@StreamingImage' {} a -> s {ec2ImageId = a} :: StreamingImage)++-- | The encryption configuration.+streamingImage_encryptionConfiguration :: Lens.Lens' StreamingImage (Prelude.Maybe StreamingImageEncryptionConfiguration)+streamingImage_encryptionConfiguration = Lens.lens (\StreamingImage' {encryptionConfiguration} -> encryptionConfiguration) (\s@StreamingImage' {} a -> s {encryptionConfiguration = a} :: StreamingImage)++-- | The list of EULAs that must be accepted before a Streaming Session can+-- be started using this streaming image.+streamingImage_eulaIds :: Lens.Lens' StreamingImage (Prelude.Maybe [Prelude.Text])+streamingImage_eulaIds = Lens.lens (\StreamingImage' {eulaIds} -> eulaIds) (\s@StreamingImage' {} a -> s {eulaIds = a} :: StreamingImage) Prelude.. Lens.mapping Lens.coerced++-- | A friendly name for a streaming image resource.+streamingImage_name :: Lens.Lens' StreamingImage (Prelude.Maybe Prelude.Text)+streamingImage_name = Lens.lens (\StreamingImage' {name} -> name) (\s@StreamingImage' {} a -> s {name = a} :: StreamingImage) Prelude.. Lens.mapping Data._Sensitive++-- | The owner of the streaming image, either the @studioId@ that contains+-- the streaming image, or @amazon@ for images that are provided by Amazon+-- Nimble Studio.+streamingImage_owner :: Lens.Lens' StreamingImage (Prelude.Maybe Prelude.Text)+streamingImage_owner = Lens.lens (\StreamingImage' {owner} -> owner) (\s@StreamingImage' {} a -> s {owner = a} :: StreamingImage)++-- | The platform of the streaming image, either Windows or Linux.+streamingImage_platform :: Lens.Lens' StreamingImage (Prelude.Maybe Prelude.Text)+streamingImage_platform = Lens.lens (\StreamingImage' {platform} -> platform) (\s@StreamingImage' {} a -> s {platform = a} :: StreamingImage)++-- | The current state.+streamingImage_state :: Lens.Lens' StreamingImage (Prelude.Maybe StreamingImageState)+streamingImage_state = Lens.lens (\StreamingImage' {state} -> state) (\s@StreamingImage' {} a -> s {state = a} :: StreamingImage)++-- | The status code.+streamingImage_statusCode :: Lens.Lens' StreamingImage (Prelude.Maybe StreamingImageStatusCode)+streamingImage_statusCode = Lens.lens (\StreamingImage' {statusCode} -> statusCode) (\s@StreamingImage' {} a -> s {statusCode = a} :: StreamingImage)++-- | The status message for the streaming image.+streamingImage_statusMessage :: Lens.Lens' StreamingImage (Prelude.Maybe Prelude.Text)+streamingImage_statusMessage = Lens.lens (\StreamingImage' {statusMessage} -> statusMessage) (\s@StreamingImage' {} a -> s {statusMessage = a} :: StreamingImage)++-- | The ID of the streaming image.+streamingImage_streamingImageId :: Lens.Lens' StreamingImage (Prelude.Maybe Prelude.Text)+streamingImage_streamingImageId = Lens.lens (\StreamingImage' {streamingImageId} -> streamingImageId) (\s@StreamingImage' {} a -> s {streamingImageId = a} :: StreamingImage)++-- | A collection of labels, in the form of key-value pairs, that apply to+-- this resource.+streamingImage_tags :: Lens.Lens' StreamingImage (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+streamingImage_tags = Lens.lens (\StreamingImage' {tags} -> tags) (\s@StreamingImage' {} a -> s {tags = a} :: StreamingImage) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON StreamingImage where+  parseJSON =+    Data.withObject+      "StreamingImage"+      ( \x ->+          StreamingImage'+            Prelude.<$> (x Data..:? "arn")+            Prelude.<*> (x Data..:? "description")+            Prelude.<*> (x Data..:? "ec2ImageId")+            Prelude.<*> (x Data..:? "encryptionConfiguration")+            Prelude.<*> (x Data..:? "eulaIds" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "name")+            Prelude.<*> (x Data..:? "owner")+            Prelude.<*> (x Data..:? "platform")+            Prelude.<*> (x Data..:? "state")+            Prelude.<*> (x Data..:? "statusCode")+            Prelude.<*> (x Data..:? "statusMessage")+            Prelude.<*> (x Data..:? "streamingImageId")+            Prelude.<*> (x Data..:? "tags" Data..!= Prelude.mempty)+      )++instance Prelude.Hashable StreamingImage where+  hashWithSalt _salt StreamingImage' {..} =+    _salt+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` ec2ImageId+      `Prelude.hashWithSalt` encryptionConfiguration+      `Prelude.hashWithSalt` eulaIds+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` owner+      `Prelude.hashWithSalt` platform+      `Prelude.hashWithSalt` state+      `Prelude.hashWithSalt` statusCode+      `Prelude.hashWithSalt` statusMessage+      `Prelude.hashWithSalt` streamingImageId+      `Prelude.hashWithSalt` tags++instance Prelude.NFData StreamingImage where+  rnf StreamingImage' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf ec2ImageId+      `Prelude.seq` Prelude.rnf encryptionConfiguration+      `Prelude.seq` Prelude.rnf eulaIds+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf owner+      `Prelude.seq` Prelude.rnf platform+      `Prelude.seq` Prelude.rnf state+      `Prelude.seq` Prelude.rnf statusCode+      `Prelude.seq` Prelude.rnf statusMessage+      `Prelude.seq` Prelude.rnf streamingImageId+      `Prelude.seq` Prelude.rnf tags
+ gen/Amazonka/Nimble/Types/StreamingImageEncryptionConfiguration.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.Nimble.Types.StreamingImageEncryptionConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Nimble.Types.StreamingImageEncryptionConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Nimble.Types.StreamingImageEncryptionConfigurationKeyType+import qualified Amazonka.Prelude as Prelude++-- | Specifies how a streaming image is encrypted.+--+-- /See:/ 'newStreamingImageEncryptionConfiguration' smart constructor.+data StreamingImageEncryptionConfiguration = StreamingImageEncryptionConfiguration'+  { -- | The ARN for a KMS key that is used to encrypt studio data.+    keyArn :: Prelude.Maybe Prelude.Text,+    -- | The type of KMS key that is used to encrypt studio data.+    keyType :: StreamingImageEncryptionConfigurationKeyType+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StreamingImageEncryptionConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'keyArn', 'streamingImageEncryptionConfiguration_keyArn' - The ARN for a KMS key that is used to encrypt studio data.+--+-- 'keyType', 'streamingImageEncryptionConfiguration_keyType' - The type of KMS key that is used to encrypt studio data.+newStreamingImageEncryptionConfiguration ::+  -- | 'keyType'+  StreamingImageEncryptionConfigurationKeyType ->+  StreamingImageEncryptionConfiguration+newStreamingImageEncryptionConfiguration pKeyType_ =+  StreamingImageEncryptionConfiguration'+    { keyArn =+        Prelude.Nothing,+      keyType = pKeyType_+    }++-- | The ARN for a KMS key that is used to encrypt studio data.+streamingImageEncryptionConfiguration_keyArn :: Lens.Lens' StreamingImageEncryptionConfiguration (Prelude.Maybe Prelude.Text)+streamingImageEncryptionConfiguration_keyArn = Lens.lens (\StreamingImageEncryptionConfiguration' {keyArn} -> keyArn) (\s@StreamingImageEncryptionConfiguration' {} a -> s {keyArn = a} :: StreamingImageEncryptionConfiguration)++-- | The type of KMS key that is used to encrypt studio data.+streamingImageEncryptionConfiguration_keyType :: Lens.Lens' StreamingImageEncryptionConfiguration StreamingImageEncryptionConfigurationKeyType+streamingImageEncryptionConfiguration_keyType = Lens.lens (\StreamingImageEncryptionConfiguration' {keyType} -> keyType) (\s@StreamingImageEncryptionConfiguration' {} a -> s {keyType = a} :: StreamingImageEncryptionConfiguration)++instance+  Data.FromJSON+    StreamingImageEncryptionConfiguration+  where+  parseJSON =+    Data.withObject+      "StreamingImageEncryptionConfiguration"+      ( \x ->+          StreamingImageEncryptionConfiguration'+            Prelude.<$> (x Data..:? "keyArn")+            Prelude.<*> (x Data..: "keyType")+      )++instance+  Prelude.Hashable+    StreamingImageEncryptionConfiguration+  where+  hashWithSalt+    _salt+    StreamingImageEncryptionConfiguration' {..} =+      _salt+        `Prelude.hashWithSalt` keyArn+        `Prelude.hashWithSalt` keyType++instance+  Prelude.NFData+    StreamingImageEncryptionConfiguration+  where+  rnf StreamingImageEncryptionConfiguration' {..} =+    Prelude.rnf keyArn+      `Prelude.seq` Prelude.rnf keyType
+ gen/Amazonka/Nimble/Types/StreamingImageEncryptionConfigurationKeyType.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.Nimble.Types.StreamingImageEncryptionConfigurationKeyType+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Nimble.Types.StreamingImageEncryptionConfigurationKeyType+  ( StreamingImageEncryptionConfigurationKeyType+      ( ..,+        StreamingImageEncryptionConfigurationKeyType_CUSTOMER_MANAGED_KEY+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype StreamingImageEncryptionConfigurationKeyType = StreamingImageEncryptionConfigurationKeyType'+  { fromStreamingImageEncryptionConfigurationKeyType ::+      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 StreamingImageEncryptionConfigurationKeyType_CUSTOMER_MANAGED_KEY :: StreamingImageEncryptionConfigurationKeyType+pattern StreamingImageEncryptionConfigurationKeyType_CUSTOMER_MANAGED_KEY = StreamingImageEncryptionConfigurationKeyType' "CUSTOMER_MANAGED_KEY"++{-# COMPLETE+  StreamingImageEncryptionConfigurationKeyType_CUSTOMER_MANAGED_KEY,+  StreamingImageEncryptionConfigurationKeyType'+  #-}
+ gen/Amazonka/Nimble/Types/StreamingImageState.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.Nimble.Types.StreamingImageState+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Nimble.Types.StreamingImageState+  ( StreamingImageState+      ( ..,+        StreamingImageState_CREATE_FAILED,+        StreamingImageState_CREATE_IN_PROGRESS,+        StreamingImageState_DELETED,+        StreamingImageState_DELETE_FAILED,+        StreamingImageState_DELETE_IN_PROGRESS,+        StreamingImageState_READY,+        StreamingImageState_UPDATE_FAILED,+        StreamingImageState_UPDATE_IN_PROGRESS+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype StreamingImageState = StreamingImageState'+  { fromStreamingImageState ::+      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 StreamingImageState_CREATE_FAILED :: StreamingImageState+pattern StreamingImageState_CREATE_FAILED = StreamingImageState' "CREATE_FAILED"++pattern StreamingImageState_CREATE_IN_PROGRESS :: StreamingImageState+pattern StreamingImageState_CREATE_IN_PROGRESS = StreamingImageState' "CREATE_IN_PROGRESS"++pattern StreamingImageState_DELETED :: StreamingImageState+pattern StreamingImageState_DELETED = StreamingImageState' "DELETED"++pattern StreamingImageState_DELETE_FAILED :: StreamingImageState+pattern StreamingImageState_DELETE_FAILED = StreamingImageState' "DELETE_FAILED"++pattern StreamingImageState_DELETE_IN_PROGRESS :: StreamingImageState+pattern StreamingImageState_DELETE_IN_PROGRESS = StreamingImageState' "DELETE_IN_PROGRESS"++pattern StreamingImageState_READY :: StreamingImageState+pattern StreamingImageState_READY = StreamingImageState' "READY"++pattern StreamingImageState_UPDATE_FAILED :: StreamingImageState+pattern StreamingImageState_UPDATE_FAILED = StreamingImageState' "UPDATE_FAILED"++pattern StreamingImageState_UPDATE_IN_PROGRESS :: StreamingImageState+pattern StreamingImageState_UPDATE_IN_PROGRESS = StreamingImageState' "UPDATE_IN_PROGRESS"++{-# COMPLETE+  StreamingImageState_CREATE_FAILED,+  StreamingImageState_CREATE_IN_PROGRESS,+  StreamingImageState_DELETED,+  StreamingImageState_DELETE_FAILED,+  StreamingImageState_DELETE_IN_PROGRESS,+  StreamingImageState_READY,+  StreamingImageState_UPDATE_FAILED,+  StreamingImageState_UPDATE_IN_PROGRESS,+  StreamingImageState'+  #-}
+ gen/Amazonka/Nimble/Types/StreamingImageStatusCode.hs view
@@ -0,0 +1,97 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Nimble.Types.StreamingImageStatusCode+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Nimble.Types.StreamingImageStatusCode+  ( StreamingImageStatusCode+      ( ..,+        StreamingImageStatusCode_ACCESS_DENIED,+        StreamingImageStatusCode_INTERNAL_ERROR,+        StreamingImageStatusCode_STREAMING_IMAGE_CREATE_IN_PROGRESS,+        StreamingImageStatusCode_STREAMING_IMAGE_DELETED,+        StreamingImageStatusCode_STREAMING_IMAGE_DELETE_IN_PROGRESS,+        StreamingImageStatusCode_STREAMING_IMAGE_READY,+        StreamingImageStatusCode_STREAMING_IMAGE_UPDATE_IN_PROGRESS+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The status code.+newtype StreamingImageStatusCode = StreamingImageStatusCode'+  { fromStreamingImageStatusCode ::+      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 StreamingImageStatusCode_ACCESS_DENIED :: StreamingImageStatusCode+pattern StreamingImageStatusCode_ACCESS_DENIED = StreamingImageStatusCode' "ACCESS_DENIED"++pattern StreamingImageStatusCode_INTERNAL_ERROR :: StreamingImageStatusCode+pattern StreamingImageStatusCode_INTERNAL_ERROR = StreamingImageStatusCode' "INTERNAL_ERROR"++pattern StreamingImageStatusCode_STREAMING_IMAGE_CREATE_IN_PROGRESS :: StreamingImageStatusCode+pattern StreamingImageStatusCode_STREAMING_IMAGE_CREATE_IN_PROGRESS = StreamingImageStatusCode' "STREAMING_IMAGE_CREATE_IN_PROGRESS"++pattern StreamingImageStatusCode_STREAMING_IMAGE_DELETED :: StreamingImageStatusCode+pattern StreamingImageStatusCode_STREAMING_IMAGE_DELETED = StreamingImageStatusCode' "STREAMING_IMAGE_DELETED"++pattern StreamingImageStatusCode_STREAMING_IMAGE_DELETE_IN_PROGRESS :: StreamingImageStatusCode+pattern StreamingImageStatusCode_STREAMING_IMAGE_DELETE_IN_PROGRESS = StreamingImageStatusCode' "STREAMING_IMAGE_DELETE_IN_PROGRESS"++pattern StreamingImageStatusCode_STREAMING_IMAGE_READY :: StreamingImageStatusCode+pattern StreamingImageStatusCode_STREAMING_IMAGE_READY = StreamingImageStatusCode' "STREAMING_IMAGE_READY"++pattern StreamingImageStatusCode_STREAMING_IMAGE_UPDATE_IN_PROGRESS :: StreamingImageStatusCode+pattern StreamingImageStatusCode_STREAMING_IMAGE_UPDATE_IN_PROGRESS = StreamingImageStatusCode' "STREAMING_IMAGE_UPDATE_IN_PROGRESS"++{-# COMPLETE+  StreamingImageStatusCode_ACCESS_DENIED,+  StreamingImageStatusCode_INTERNAL_ERROR,+  StreamingImageStatusCode_STREAMING_IMAGE_CREATE_IN_PROGRESS,+  StreamingImageStatusCode_STREAMING_IMAGE_DELETED,+  StreamingImageStatusCode_STREAMING_IMAGE_DELETE_IN_PROGRESS,+  StreamingImageStatusCode_STREAMING_IMAGE_READY,+  StreamingImageStatusCode_STREAMING_IMAGE_UPDATE_IN_PROGRESS,+  StreamingImageStatusCode'+  #-}
+ gen/Amazonka/Nimble/Types/StreamingInstanceType.hs view
@@ -0,0 +1,126 @@+{-# 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.Nimble.Types.StreamingInstanceType+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Nimble.Types.StreamingInstanceType+  ( StreamingInstanceType+      ( ..,+        StreamingInstanceType_G3_4xlarge,+        StreamingInstanceType_G3s_xlarge,+        StreamingInstanceType_G4dn_12xlarge,+        StreamingInstanceType_G4dn_16xlarge,+        StreamingInstanceType_G4dn_2xlarge,+        StreamingInstanceType_G4dn_4xlarge,+        StreamingInstanceType_G4dn_8xlarge,+        StreamingInstanceType_G4dn_xlarge,+        StreamingInstanceType_G5_16xlarge,+        StreamingInstanceType_G5_2xlarge,+        StreamingInstanceType_G5_4xlarge,+        StreamingInstanceType_G5_8xlarge,+        StreamingInstanceType_G5_xlarge+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype StreamingInstanceType = StreamingInstanceType'+  { fromStreamingInstanceType ::+      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 StreamingInstanceType_G3_4xlarge :: StreamingInstanceType+pattern StreamingInstanceType_G3_4xlarge = StreamingInstanceType' "g3.4xlarge"++pattern StreamingInstanceType_G3s_xlarge :: StreamingInstanceType+pattern StreamingInstanceType_G3s_xlarge = StreamingInstanceType' "g3s.xlarge"++pattern StreamingInstanceType_G4dn_12xlarge :: StreamingInstanceType+pattern StreamingInstanceType_G4dn_12xlarge = StreamingInstanceType' "g4dn.12xlarge"++pattern StreamingInstanceType_G4dn_16xlarge :: StreamingInstanceType+pattern StreamingInstanceType_G4dn_16xlarge = StreamingInstanceType' "g4dn.16xlarge"++pattern StreamingInstanceType_G4dn_2xlarge :: StreamingInstanceType+pattern StreamingInstanceType_G4dn_2xlarge = StreamingInstanceType' "g4dn.2xlarge"++pattern StreamingInstanceType_G4dn_4xlarge :: StreamingInstanceType+pattern StreamingInstanceType_G4dn_4xlarge = StreamingInstanceType' "g4dn.4xlarge"++pattern StreamingInstanceType_G4dn_8xlarge :: StreamingInstanceType+pattern StreamingInstanceType_G4dn_8xlarge = StreamingInstanceType' "g4dn.8xlarge"++pattern StreamingInstanceType_G4dn_xlarge :: StreamingInstanceType+pattern StreamingInstanceType_G4dn_xlarge = StreamingInstanceType' "g4dn.xlarge"++pattern StreamingInstanceType_G5_16xlarge :: StreamingInstanceType+pattern StreamingInstanceType_G5_16xlarge = StreamingInstanceType' "g5.16xlarge"++pattern StreamingInstanceType_G5_2xlarge :: StreamingInstanceType+pattern StreamingInstanceType_G5_2xlarge = StreamingInstanceType' "g5.2xlarge"++pattern StreamingInstanceType_G5_4xlarge :: StreamingInstanceType+pattern StreamingInstanceType_G5_4xlarge = StreamingInstanceType' "g5.4xlarge"++pattern StreamingInstanceType_G5_8xlarge :: StreamingInstanceType+pattern StreamingInstanceType_G5_8xlarge = StreamingInstanceType' "g5.8xlarge"++pattern StreamingInstanceType_G5_xlarge :: StreamingInstanceType+pattern StreamingInstanceType_G5_xlarge = StreamingInstanceType' "g5.xlarge"++{-# COMPLETE+  StreamingInstanceType_G3_4xlarge,+  StreamingInstanceType_G3s_xlarge,+  StreamingInstanceType_G4dn_12xlarge,+  StreamingInstanceType_G4dn_16xlarge,+  StreamingInstanceType_G4dn_2xlarge,+  StreamingInstanceType_G4dn_4xlarge,+  StreamingInstanceType_G4dn_8xlarge,+  StreamingInstanceType_G4dn_xlarge,+  StreamingInstanceType_G5_16xlarge,+  StreamingInstanceType_G5_2xlarge,+  StreamingInstanceType_G5_4xlarge,+  StreamingInstanceType_G5_8xlarge,+  StreamingInstanceType_G5_xlarge,+  StreamingInstanceType'+  #-}
+ gen/Amazonka/Nimble/Types/StreamingSession.hs view
@@ -0,0 +1,482 @@+{-# 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.Nimble.Types.StreamingSession+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Nimble.Types.StreamingSession where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Nimble.Types.AutomaticTerminationMode+import Amazonka.Nimble.Types.SessionBackupMode+import Amazonka.Nimble.Types.SessionPersistenceMode+import Amazonka.Nimble.Types.StreamingSessionState+import Amazonka.Nimble.Types.StreamingSessionStatusCode+import Amazonka.Nimble.Types.VolumeConfiguration+import Amazonka.Nimble.Types.VolumeRetentionMode+import qualified Amazonka.Prelude as Prelude++-- | A streaming session is a virtual workstation created using a particular+-- launch profile.+--+-- /See:/ 'newStreamingSession' smart constructor.+data StreamingSession = StreamingSession'+  { -- | The Amazon Resource Name (ARN) that is assigned to a studio resource and+    -- uniquely identifies it. ARNs are unique across all Regions.+    arn :: Prelude.Maybe Prelude.Text,+    -- | Indicates if a streaming session created from this launch profile should+    -- be terminated automatically or retained without termination after being+    -- in a @STOPPED@ state.+    --+    -- -   When @ACTIVATED@, the streaming session is scheduled for termination+    --     after being in the @STOPPED@ state for the time specified in+    --     @maxStoppedSessionLengthInMinutes@.+    --+    -- -   When @DEACTIVATED@, the streaming session can remain in the+    --     @STOPPED@ state indefinitely.+    --+    -- This parameter is only allowed when @sessionPersistenceMode@ is+    -- @ACTIVATED@. When allowed, the default value for this parameter is+    -- @DEACTIVATED@.+    automaticTerminationMode :: Prelude.Maybe AutomaticTerminationMode,+    -- | Shows the current backup setting of the session.+    backupMode :: Prelude.Maybe SessionBackupMode,+    -- | The ISO timestamp in seconds for when the resource was created.+    createdAt :: Prelude.Maybe Data.ISO8601,+    -- | The user ID of the user that created the streaming session.+    createdBy :: Prelude.Maybe Prelude.Text,+    -- | The EC2 Instance type used for the streaming session.+    ec2InstanceType :: Prelude.Maybe Prelude.Text,+    -- | The ID of the launch profile used to control access from the streaming+    -- session.+    launchProfileId :: Prelude.Maybe Prelude.Text,+    -- | The maximum number of backups of a streaming session that you can have.+    -- When the maximum number of backups is reached, the oldest backup is+    -- deleted.+    maxBackupsToRetain :: Prelude.Maybe Prelude.Natural,+    -- | The user ID of the user that owns the streaming session. The user that+    -- owns the session will be logging into the session and interacting with+    -- the virtual workstation.+    ownedBy :: Prelude.Maybe Prelude.Text,+    -- | The session ID.+    sessionId :: Prelude.Maybe Prelude.Text,+    -- | Determine if a streaming session created from this launch profile can+    -- configure persistent storage. This means that @volumeConfiguration@ and+    -- @automaticTerminationMode@ are configured.+    sessionPersistenceMode :: Prelude.Maybe SessionPersistenceMode,+    -- | The time the session entered @START_IN_PROGRESS@ state.+    startedAt :: Prelude.Maybe Data.ISO8601,+    -- | The user ID of the user that started the streaming session.+    startedBy :: Prelude.Maybe Prelude.Text,+    -- | The backup ID used to restore a streaming session.+    startedFromBackupId :: Prelude.Maybe Prelude.Text,+    -- | The current state.+    state :: Prelude.Maybe StreamingSessionState,+    -- | The status code.+    statusCode :: Prelude.Maybe StreamingSessionStatusCode,+    -- | The status message for the streaming session.+    statusMessage :: Prelude.Maybe Prelude.Text,+    -- | The time the streaming session will automatically be stopped if the user+    -- doesn’t stop the session themselves.+    stopAt :: Prelude.Maybe Data.ISO8601,+    -- | The time the session entered @STOP_IN_PROGRESS@ state.+    stoppedAt :: Prelude.Maybe Data.ISO8601,+    -- | The user ID of the user that stopped the streaming session.+    stoppedBy :: Prelude.Maybe Prelude.Text,+    -- | The ID of the streaming image.+    streamingImageId :: Prelude.Maybe Prelude.Text,+    -- | A collection of labels, in the form of key-value pairs, that apply to+    -- this resource.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The time the streaming session will automatically terminate if not+    -- terminated by the user.+    terminateAt :: Prelude.Maybe Data.ISO8601,+    -- | The ISO timestamp in seconds for when the resource was updated.+    updatedAt :: Prelude.Maybe Data.ISO8601,+    -- | The user ID of the user that most recently updated the resource.+    updatedBy :: Prelude.Maybe Prelude.Text,+    -- | Custom volume configuration for the root volumes that are attached to+    -- streaming sessions.+    --+    -- This parameter is only allowed when @sessionPersistenceMode@ is+    -- @ACTIVATED@.+    volumeConfiguration :: Prelude.Maybe VolumeConfiguration,+    -- | Determine if an EBS volume created from this streaming session will be+    -- backed up.+    volumeRetentionMode :: Prelude.Maybe VolumeRetentionMode+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StreamingSession' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'streamingSession_arn' - The Amazon Resource Name (ARN) that is assigned to a studio resource and+-- uniquely identifies it. ARNs are unique across all Regions.+--+-- 'automaticTerminationMode', 'streamingSession_automaticTerminationMode' - Indicates if a streaming session created from this launch profile should+-- be terminated automatically or retained without termination after being+-- in a @STOPPED@ state.+--+-- -   When @ACTIVATED@, the streaming session is scheduled for termination+--     after being in the @STOPPED@ state for the time specified in+--     @maxStoppedSessionLengthInMinutes@.+--+-- -   When @DEACTIVATED@, the streaming session can remain in the+--     @STOPPED@ state indefinitely.+--+-- This parameter is only allowed when @sessionPersistenceMode@ is+-- @ACTIVATED@. When allowed, the default value for this parameter is+-- @DEACTIVATED@.+--+-- 'backupMode', 'streamingSession_backupMode' - Shows the current backup setting of the session.+--+-- 'createdAt', 'streamingSession_createdAt' - The ISO timestamp in seconds for when the resource was created.+--+-- 'createdBy', 'streamingSession_createdBy' - The user ID of the user that created the streaming session.+--+-- 'ec2InstanceType', 'streamingSession_ec2InstanceType' - The EC2 Instance type used for the streaming session.+--+-- 'launchProfileId', 'streamingSession_launchProfileId' - The ID of the launch profile used to control access from the streaming+-- session.+--+-- 'maxBackupsToRetain', 'streamingSession_maxBackupsToRetain' - The maximum number of backups of a streaming session that you can have.+-- When the maximum number of backups is reached, the oldest backup is+-- deleted.+--+-- 'ownedBy', 'streamingSession_ownedBy' - The user ID of the user that owns the streaming session. The user that+-- owns the session will be logging into the session and interacting with+-- the virtual workstation.+--+-- 'sessionId', 'streamingSession_sessionId' - The session ID.+--+-- 'sessionPersistenceMode', 'streamingSession_sessionPersistenceMode' - Determine if a streaming session created from this launch profile can+-- configure persistent storage. This means that @volumeConfiguration@ and+-- @automaticTerminationMode@ are configured.+--+-- 'startedAt', 'streamingSession_startedAt' - The time the session entered @START_IN_PROGRESS@ state.+--+-- 'startedBy', 'streamingSession_startedBy' - The user ID of the user that started the streaming session.+--+-- 'startedFromBackupId', 'streamingSession_startedFromBackupId' - The backup ID used to restore a streaming session.+--+-- 'state', 'streamingSession_state' - The current state.+--+-- 'statusCode', 'streamingSession_statusCode' - The status code.+--+-- 'statusMessage', 'streamingSession_statusMessage' - The status message for the streaming session.+--+-- 'stopAt', 'streamingSession_stopAt' - The time the streaming session will automatically be stopped if the user+-- doesn’t stop the session themselves.+--+-- 'stoppedAt', 'streamingSession_stoppedAt' - The time the session entered @STOP_IN_PROGRESS@ state.+--+-- 'stoppedBy', 'streamingSession_stoppedBy' - The user ID of the user that stopped the streaming session.+--+-- 'streamingImageId', 'streamingSession_streamingImageId' - The ID of the streaming image.+--+-- 'tags', 'streamingSession_tags' - A collection of labels, in the form of key-value pairs, that apply to+-- this resource.+--+-- 'terminateAt', 'streamingSession_terminateAt' - The time the streaming session will automatically terminate if not+-- terminated by the user.+--+-- 'updatedAt', 'streamingSession_updatedAt' - The ISO timestamp in seconds for when the resource was updated.+--+-- 'updatedBy', 'streamingSession_updatedBy' - The user ID of the user that most recently updated the resource.+--+-- 'volumeConfiguration', 'streamingSession_volumeConfiguration' - Custom volume configuration for the root volumes that are attached to+-- streaming sessions.+--+-- This parameter is only allowed when @sessionPersistenceMode@ is+-- @ACTIVATED@.+--+-- 'volumeRetentionMode', 'streamingSession_volumeRetentionMode' - Determine if an EBS volume created from this streaming session will be+-- backed up.+newStreamingSession ::+  StreamingSession+newStreamingSession =+  StreamingSession'+    { arn = Prelude.Nothing,+      automaticTerminationMode = Prelude.Nothing,+      backupMode = Prelude.Nothing,+      createdAt = Prelude.Nothing,+      createdBy = Prelude.Nothing,+      ec2InstanceType = Prelude.Nothing,+      launchProfileId = Prelude.Nothing,+      maxBackupsToRetain = Prelude.Nothing,+      ownedBy = Prelude.Nothing,+      sessionId = Prelude.Nothing,+      sessionPersistenceMode = Prelude.Nothing,+      startedAt = Prelude.Nothing,+      startedBy = Prelude.Nothing,+      startedFromBackupId = Prelude.Nothing,+      state = Prelude.Nothing,+      statusCode = Prelude.Nothing,+      statusMessage = Prelude.Nothing,+      stopAt = Prelude.Nothing,+      stoppedAt = Prelude.Nothing,+      stoppedBy = Prelude.Nothing,+      streamingImageId = Prelude.Nothing,+      tags = Prelude.Nothing,+      terminateAt = Prelude.Nothing,+      updatedAt = Prelude.Nothing,+      updatedBy = Prelude.Nothing,+      volumeConfiguration = Prelude.Nothing,+      volumeRetentionMode = Prelude.Nothing+    }++-- | The Amazon Resource Name (ARN) that is assigned to a studio resource and+-- uniquely identifies it. ARNs are unique across all Regions.+streamingSession_arn :: Lens.Lens' StreamingSession (Prelude.Maybe Prelude.Text)+streamingSession_arn = Lens.lens (\StreamingSession' {arn} -> arn) (\s@StreamingSession' {} a -> s {arn = a} :: StreamingSession)++-- | Indicates if a streaming session created from this launch profile should+-- be terminated automatically or retained without termination after being+-- in a @STOPPED@ state.+--+-- -   When @ACTIVATED@, the streaming session is scheduled for termination+--     after being in the @STOPPED@ state for the time specified in+--     @maxStoppedSessionLengthInMinutes@.+--+-- -   When @DEACTIVATED@, the streaming session can remain in the+--     @STOPPED@ state indefinitely.+--+-- This parameter is only allowed when @sessionPersistenceMode@ is+-- @ACTIVATED@. When allowed, the default value for this parameter is+-- @DEACTIVATED@.+streamingSession_automaticTerminationMode :: Lens.Lens' StreamingSession (Prelude.Maybe AutomaticTerminationMode)+streamingSession_automaticTerminationMode = Lens.lens (\StreamingSession' {automaticTerminationMode} -> automaticTerminationMode) (\s@StreamingSession' {} a -> s {automaticTerminationMode = a} :: StreamingSession)++-- | Shows the current backup setting of the session.+streamingSession_backupMode :: Lens.Lens' StreamingSession (Prelude.Maybe SessionBackupMode)+streamingSession_backupMode = Lens.lens (\StreamingSession' {backupMode} -> backupMode) (\s@StreamingSession' {} a -> s {backupMode = a} :: StreamingSession)++-- | The ISO timestamp in seconds for when the resource was created.+streamingSession_createdAt :: Lens.Lens' StreamingSession (Prelude.Maybe Prelude.UTCTime)+streamingSession_createdAt = Lens.lens (\StreamingSession' {createdAt} -> createdAt) (\s@StreamingSession' {} a -> s {createdAt = a} :: StreamingSession) Prelude.. Lens.mapping Data._Time++-- | The user ID of the user that created the streaming session.+streamingSession_createdBy :: Lens.Lens' StreamingSession (Prelude.Maybe Prelude.Text)+streamingSession_createdBy = Lens.lens (\StreamingSession' {createdBy} -> createdBy) (\s@StreamingSession' {} a -> s {createdBy = a} :: StreamingSession)++-- | The EC2 Instance type used for the streaming session.+streamingSession_ec2InstanceType :: Lens.Lens' StreamingSession (Prelude.Maybe Prelude.Text)+streamingSession_ec2InstanceType = Lens.lens (\StreamingSession' {ec2InstanceType} -> ec2InstanceType) (\s@StreamingSession' {} a -> s {ec2InstanceType = a} :: StreamingSession)++-- | The ID of the launch profile used to control access from the streaming+-- session.+streamingSession_launchProfileId :: Lens.Lens' StreamingSession (Prelude.Maybe Prelude.Text)+streamingSession_launchProfileId = Lens.lens (\StreamingSession' {launchProfileId} -> launchProfileId) (\s@StreamingSession' {} a -> s {launchProfileId = a} :: StreamingSession)++-- | The maximum number of backups of a streaming session that you can have.+-- When the maximum number of backups is reached, the oldest backup is+-- deleted.+streamingSession_maxBackupsToRetain :: Lens.Lens' StreamingSession (Prelude.Maybe Prelude.Natural)+streamingSession_maxBackupsToRetain = Lens.lens (\StreamingSession' {maxBackupsToRetain} -> maxBackupsToRetain) (\s@StreamingSession' {} a -> s {maxBackupsToRetain = a} :: StreamingSession)++-- | The user ID of the user that owns the streaming session. The user that+-- owns the session will be logging into the session and interacting with+-- the virtual workstation.+streamingSession_ownedBy :: Lens.Lens' StreamingSession (Prelude.Maybe Prelude.Text)+streamingSession_ownedBy = Lens.lens (\StreamingSession' {ownedBy} -> ownedBy) (\s@StreamingSession' {} a -> s {ownedBy = a} :: StreamingSession)++-- | The session ID.+streamingSession_sessionId :: Lens.Lens' StreamingSession (Prelude.Maybe Prelude.Text)+streamingSession_sessionId = Lens.lens (\StreamingSession' {sessionId} -> sessionId) (\s@StreamingSession' {} a -> s {sessionId = a} :: StreamingSession)++-- | Determine if a streaming session created from this launch profile can+-- configure persistent storage. This means that @volumeConfiguration@ and+-- @automaticTerminationMode@ are configured.+streamingSession_sessionPersistenceMode :: Lens.Lens' StreamingSession (Prelude.Maybe SessionPersistenceMode)+streamingSession_sessionPersistenceMode = Lens.lens (\StreamingSession' {sessionPersistenceMode} -> sessionPersistenceMode) (\s@StreamingSession' {} a -> s {sessionPersistenceMode = a} :: StreamingSession)++-- | The time the session entered @START_IN_PROGRESS@ state.+streamingSession_startedAt :: Lens.Lens' StreamingSession (Prelude.Maybe Prelude.UTCTime)+streamingSession_startedAt = Lens.lens (\StreamingSession' {startedAt} -> startedAt) (\s@StreamingSession' {} a -> s {startedAt = a} :: StreamingSession) Prelude.. Lens.mapping Data._Time++-- | The user ID of the user that started the streaming session.+streamingSession_startedBy :: Lens.Lens' StreamingSession (Prelude.Maybe Prelude.Text)+streamingSession_startedBy = Lens.lens (\StreamingSession' {startedBy} -> startedBy) (\s@StreamingSession' {} a -> s {startedBy = a} :: StreamingSession)++-- | The backup ID used to restore a streaming session.+streamingSession_startedFromBackupId :: Lens.Lens' StreamingSession (Prelude.Maybe Prelude.Text)+streamingSession_startedFromBackupId = Lens.lens (\StreamingSession' {startedFromBackupId} -> startedFromBackupId) (\s@StreamingSession' {} a -> s {startedFromBackupId = a} :: StreamingSession)++-- | The current state.+streamingSession_state :: Lens.Lens' StreamingSession (Prelude.Maybe StreamingSessionState)+streamingSession_state = Lens.lens (\StreamingSession' {state} -> state) (\s@StreamingSession' {} a -> s {state = a} :: StreamingSession)++-- | The status code.+streamingSession_statusCode :: Lens.Lens' StreamingSession (Prelude.Maybe StreamingSessionStatusCode)+streamingSession_statusCode = Lens.lens (\StreamingSession' {statusCode} -> statusCode) (\s@StreamingSession' {} a -> s {statusCode = a} :: StreamingSession)++-- | The status message for the streaming session.+streamingSession_statusMessage :: Lens.Lens' StreamingSession (Prelude.Maybe Prelude.Text)+streamingSession_statusMessage = Lens.lens (\StreamingSession' {statusMessage} -> statusMessage) (\s@StreamingSession' {} a -> s {statusMessage = a} :: StreamingSession)++-- | The time the streaming session will automatically be stopped if the user+-- doesn’t stop the session themselves.+streamingSession_stopAt :: Lens.Lens' StreamingSession (Prelude.Maybe Prelude.UTCTime)+streamingSession_stopAt = Lens.lens (\StreamingSession' {stopAt} -> stopAt) (\s@StreamingSession' {} a -> s {stopAt = a} :: StreamingSession) Prelude.. Lens.mapping Data._Time++-- | The time the session entered @STOP_IN_PROGRESS@ state.+streamingSession_stoppedAt :: Lens.Lens' StreamingSession (Prelude.Maybe Prelude.UTCTime)+streamingSession_stoppedAt = Lens.lens (\StreamingSession' {stoppedAt} -> stoppedAt) (\s@StreamingSession' {} a -> s {stoppedAt = a} :: StreamingSession) Prelude.. Lens.mapping Data._Time++-- | The user ID of the user that stopped the streaming session.+streamingSession_stoppedBy :: Lens.Lens' StreamingSession (Prelude.Maybe Prelude.Text)+streamingSession_stoppedBy = Lens.lens (\StreamingSession' {stoppedBy} -> stoppedBy) (\s@StreamingSession' {} a -> s {stoppedBy = a} :: StreamingSession)++-- | The ID of the streaming image.+streamingSession_streamingImageId :: Lens.Lens' StreamingSession (Prelude.Maybe Prelude.Text)+streamingSession_streamingImageId = Lens.lens (\StreamingSession' {streamingImageId} -> streamingImageId) (\s@StreamingSession' {} a -> s {streamingImageId = a} :: StreamingSession)++-- | A collection of labels, in the form of key-value pairs, that apply to+-- this resource.+streamingSession_tags :: Lens.Lens' StreamingSession (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+streamingSession_tags = Lens.lens (\StreamingSession' {tags} -> tags) (\s@StreamingSession' {} a -> s {tags = a} :: StreamingSession) Prelude.. Lens.mapping Lens.coerced++-- | The time the streaming session will automatically terminate if not+-- terminated by the user.+streamingSession_terminateAt :: Lens.Lens' StreamingSession (Prelude.Maybe Prelude.UTCTime)+streamingSession_terminateAt = Lens.lens (\StreamingSession' {terminateAt} -> terminateAt) (\s@StreamingSession' {} a -> s {terminateAt = a} :: StreamingSession) Prelude.. Lens.mapping Data._Time++-- | The ISO timestamp in seconds for when the resource was updated.+streamingSession_updatedAt :: Lens.Lens' StreamingSession (Prelude.Maybe Prelude.UTCTime)+streamingSession_updatedAt = Lens.lens (\StreamingSession' {updatedAt} -> updatedAt) (\s@StreamingSession' {} a -> s {updatedAt = a} :: StreamingSession) Prelude.. Lens.mapping Data._Time++-- | The user ID of the user that most recently updated the resource.+streamingSession_updatedBy :: Lens.Lens' StreamingSession (Prelude.Maybe Prelude.Text)+streamingSession_updatedBy = Lens.lens (\StreamingSession' {updatedBy} -> updatedBy) (\s@StreamingSession' {} a -> s {updatedBy = a} :: StreamingSession)++-- | Custom volume configuration for the root volumes that are attached to+-- streaming sessions.+--+-- This parameter is only allowed when @sessionPersistenceMode@ is+-- @ACTIVATED@.+streamingSession_volumeConfiguration :: Lens.Lens' StreamingSession (Prelude.Maybe VolumeConfiguration)+streamingSession_volumeConfiguration = Lens.lens (\StreamingSession' {volumeConfiguration} -> volumeConfiguration) (\s@StreamingSession' {} a -> s {volumeConfiguration = a} :: StreamingSession)++-- | Determine if an EBS volume created from this streaming session will be+-- backed up.+streamingSession_volumeRetentionMode :: Lens.Lens' StreamingSession (Prelude.Maybe VolumeRetentionMode)+streamingSession_volumeRetentionMode = Lens.lens (\StreamingSession' {volumeRetentionMode} -> volumeRetentionMode) (\s@StreamingSession' {} a -> s {volumeRetentionMode = a} :: StreamingSession)++instance Data.FromJSON StreamingSession where+  parseJSON =+    Data.withObject+      "StreamingSession"+      ( \x ->+          StreamingSession'+            Prelude.<$> (x Data..:? "arn")+            Prelude.<*> (x Data..:? "automaticTerminationMode")+            Prelude.<*> (x Data..:? "backupMode")+            Prelude.<*> (x Data..:? "createdAt")+            Prelude.<*> (x Data..:? "createdBy")+            Prelude.<*> (x Data..:? "ec2InstanceType")+            Prelude.<*> (x Data..:? "launchProfileId")+            Prelude.<*> (x Data..:? "maxBackupsToRetain")+            Prelude.<*> (x Data..:? "ownedBy")+            Prelude.<*> (x Data..:? "sessionId")+            Prelude.<*> (x Data..:? "sessionPersistenceMode")+            Prelude.<*> (x Data..:? "startedAt")+            Prelude.<*> (x Data..:? "startedBy")+            Prelude.<*> (x Data..:? "startedFromBackupId")+            Prelude.<*> (x Data..:? "state")+            Prelude.<*> (x Data..:? "statusCode")+            Prelude.<*> (x Data..:? "statusMessage")+            Prelude.<*> (x Data..:? "stopAt")+            Prelude.<*> (x Data..:? "stoppedAt")+            Prelude.<*> (x Data..:? "stoppedBy")+            Prelude.<*> (x Data..:? "streamingImageId")+            Prelude.<*> (x Data..:? "tags" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "terminateAt")+            Prelude.<*> (x Data..:? "updatedAt")+            Prelude.<*> (x Data..:? "updatedBy")+            Prelude.<*> (x Data..:? "volumeConfiguration")+            Prelude.<*> (x Data..:? "volumeRetentionMode")+      )++instance Prelude.Hashable StreamingSession where+  hashWithSalt _salt StreamingSession' {..} =+    _salt+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` automaticTerminationMode+      `Prelude.hashWithSalt` backupMode+      `Prelude.hashWithSalt` createdAt+      `Prelude.hashWithSalt` createdBy+      `Prelude.hashWithSalt` ec2InstanceType+      `Prelude.hashWithSalt` launchProfileId+      `Prelude.hashWithSalt` maxBackupsToRetain+      `Prelude.hashWithSalt` ownedBy+      `Prelude.hashWithSalt` sessionId+      `Prelude.hashWithSalt` sessionPersistenceMode+      `Prelude.hashWithSalt` startedAt+      `Prelude.hashWithSalt` startedBy+      `Prelude.hashWithSalt` startedFromBackupId+      `Prelude.hashWithSalt` state+      `Prelude.hashWithSalt` statusCode+      `Prelude.hashWithSalt` statusMessage+      `Prelude.hashWithSalt` stopAt+      `Prelude.hashWithSalt` stoppedAt+      `Prelude.hashWithSalt` stoppedBy+      `Prelude.hashWithSalt` streamingImageId+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` terminateAt+      `Prelude.hashWithSalt` updatedAt+      `Prelude.hashWithSalt` updatedBy+      `Prelude.hashWithSalt` volumeConfiguration+      `Prelude.hashWithSalt` volumeRetentionMode++instance Prelude.NFData StreamingSession where+  rnf StreamingSession' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf automaticTerminationMode+      `Prelude.seq` Prelude.rnf backupMode+      `Prelude.seq` Prelude.rnf createdAt+      `Prelude.seq` Prelude.rnf createdBy+      `Prelude.seq` Prelude.rnf ec2InstanceType+      `Prelude.seq` Prelude.rnf launchProfileId+      `Prelude.seq` Prelude.rnf maxBackupsToRetain+      `Prelude.seq` Prelude.rnf ownedBy+      `Prelude.seq` Prelude.rnf sessionId+      `Prelude.seq` Prelude.rnf sessionPersistenceMode+      `Prelude.seq` Prelude.rnf startedAt+      `Prelude.seq` Prelude.rnf startedBy+      `Prelude.seq` Prelude.rnf startedFromBackupId+      `Prelude.seq` Prelude.rnf state+      `Prelude.seq` Prelude.rnf statusCode+      `Prelude.seq` Prelude.rnf statusMessage+      `Prelude.seq` Prelude.rnf stopAt+      `Prelude.seq` Prelude.rnf stoppedAt+      `Prelude.seq` Prelude.rnf stoppedBy+      `Prelude.seq` Prelude.rnf streamingImageId+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf terminateAt+      `Prelude.seq` Prelude.rnf updatedAt+      `Prelude.seq` Prelude.rnf+        updatedBy+      `Prelude.seq` Prelude.rnf+        volumeConfiguration+      `Prelude.seq` Prelude.rnf+        volumeRetentionMode
+ gen/Amazonka/Nimble/Types/StreamingSessionBackup.hs view
@@ -0,0 +1,190 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Nimble.Types.StreamingSessionBackup+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Nimble.Types.StreamingSessionBackup where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Nimble.Types.StreamingSessionState+import Amazonka.Nimble.Types.StreamingSessionStatusCode+import qualified Amazonka.Prelude as Prelude++-- | Information about the streaming session backup.+--+-- /See:/ 'newStreamingSessionBackup' smart constructor.+data StreamingSessionBackup = StreamingSessionBackup'+  { -- | The Amazon Resource Name (ARN) that is assigned to a studio resource and+    -- uniquely identifies it. ARNs are unique across all Regions.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The ID of the backup.+    backupId :: Prelude.Maybe Prelude.Text,+    -- | The ISO timestamp in for when the resource was created.+    createdAt :: Prelude.Maybe Data.ISO8601,+    -- | The ID of the launch profile which allowed the backups for the streaming+    -- session.+    launchProfileId :: Prelude.Maybe Prelude.Text,+    -- | The user ID of the user that owns the streaming session.+    ownedBy :: Prelude.Maybe Prelude.Text,+    -- | The streaming session ID for the @StreamingSessionBackup@.+    sessionId :: Prelude.Maybe Prelude.Text,+    state :: Prelude.Maybe StreamingSessionState,+    -- | The status code.+    statusCode :: Prelude.Maybe StreamingSessionStatusCode,+    -- | The status message for the streaming session backup.+    statusMessage :: Prelude.Maybe Prelude.Text,+    -- | A collection of labels, in the form of key-value pairs, that apply to+    -- this resource.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text)+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StreamingSessionBackup' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'streamingSessionBackup_arn' - The Amazon Resource Name (ARN) that is assigned to a studio resource and+-- uniquely identifies it. ARNs are unique across all Regions.+--+-- 'backupId', 'streamingSessionBackup_backupId' - The ID of the backup.+--+-- 'createdAt', 'streamingSessionBackup_createdAt' - The ISO timestamp in for when the resource was created.+--+-- 'launchProfileId', 'streamingSessionBackup_launchProfileId' - The ID of the launch profile which allowed the backups for the streaming+-- session.+--+-- 'ownedBy', 'streamingSessionBackup_ownedBy' - The user ID of the user that owns the streaming session.+--+-- 'sessionId', 'streamingSessionBackup_sessionId' - The streaming session ID for the @StreamingSessionBackup@.+--+-- 'state', 'streamingSessionBackup_state' - Undocumented member.+--+-- 'statusCode', 'streamingSessionBackup_statusCode' - The status code.+--+-- 'statusMessage', 'streamingSessionBackup_statusMessage' - The status message for the streaming session backup.+--+-- 'tags', 'streamingSessionBackup_tags' - A collection of labels, in the form of key-value pairs, that apply to+-- this resource.+newStreamingSessionBackup ::+  StreamingSessionBackup+newStreamingSessionBackup =+  StreamingSessionBackup'+    { arn = Prelude.Nothing,+      backupId = Prelude.Nothing,+      createdAt = Prelude.Nothing,+      launchProfileId = Prelude.Nothing,+      ownedBy = Prelude.Nothing,+      sessionId = Prelude.Nothing,+      state = Prelude.Nothing,+      statusCode = Prelude.Nothing,+      statusMessage = Prelude.Nothing,+      tags = Prelude.Nothing+    }++-- | The Amazon Resource Name (ARN) that is assigned to a studio resource and+-- uniquely identifies it. ARNs are unique across all Regions.+streamingSessionBackup_arn :: Lens.Lens' StreamingSessionBackup (Prelude.Maybe Prelude.Text)+streamingSessionBackup_arn = Lens.lens (\StreamingSessionBackup' {arn} -> arn) (\s@StreamingSessionBackup' {} a -> s {arn = a} :: StreamingSessionBackup)++-- | The ID of the backup.+streamingSessionBackup_backupId :: Lens.Lens' StreamingSessionBackup (Prelude.Maybe Prelude.Text)+streamingSessionBackup_backupId = Lens.lens (\StreamingSessionBackup' {backupId} -> backupId) (\s@StreamingSessionBackup' {} a -> s {backupId = a} :: StreamingSessionBackup)++-- | The ISO timestamp in for when the resource was created.+streamingSessionBackup_createdAt :: Lens.Lens' StreamingSessionBackup (Prelude.Maybe Prelude.UTCTime)+streamingSessionBackup_createdAt = Lens.lens (\StreamingSessionBackup' {createdAt} -> createdAt) (\s@StreamingSessionBackup' {} a -> s {createdAt = a} :: StreamingSessionBackup) Prelude.. Lens.mapping Data._Time++-- | The ID of the launch profile which allowed the backups for the streaming+-- session.+streamingSessionBackup_launchProfileId :: Lens.Lens' StreamingSessionBackup (Prelude.Maybe Prelude.Text)+streamingSessionBackup_launchProfileId = Lens.lens (\StreamingSessionBackup' {launchProfileId} -> launchProfileId) (\s@StreamingSessionBackup' {} a -> s {launchProfileId = a} :: StreamingSessionBackup)++-- | The user ID of the user that owns the streaming session.+streamingSessionBackup_ownedBy :: Lens.Lens' StreamingSessionBackup (Prelude.Maybe Prelude.Text)+streamingSessionBackup_ownedBy = Lens.lens (\StreamingSessionBackup' {ownedBy} -> ownedBy) (\s@StreamingSessionBackup' {} a -> s {ownedBy = a} :: StreamingSessionBackup)++-- | The streaming session ID for the @StreamingSessionBackup@.+streamingSessionBackup_sessionId :: Lens.Lens' StreamingSessionBackup (Prelude.Maybe Prelude.Text)+streamingSessionBackup_sessionId = Lens.lens (\StreamingSessionBackup' {sessionId} -> sessionId) (\s@StreamingSessionBackup' {} a -> s {sessionId = a} :: StreamingSessionBackup)++-- | Undocumented member.+streamingSessionBackup_state :: Lens.Lens' StreamingSessionBackup (Prelude.Maybe StreamingSessionState)+streamingSessionBackup_state = Lens.lens (\StreamingSessionBackup' {state} -> state) (\s@StreamingSessionBackup' {} a -> s {state = a} :: StreamingSessionBackup)++-- | The status code.+streamingSessionBackup_statusCode :: Lens.Lens' StreamingSessionBackup (Prelude.Maybe StreamingSessionStatusCode)+streamingSessionBackup_statusCode = Lens.lens (\StreamingSessionBackup' {statusCode} -> statusCode) (\s@StreamingSessionBackup' {} a -> s {statusCode = a} :: StreamingSessionBackup)++-- | The status message for the streaming session backup.+streamingSessionBackup_statusMessage :: Lens.Lens' StreamingSessionBackup (Prelude.Maybe Prelude.Text)+streamingSessionBackup_statusMessage = Lens.lens (\StreamingSessionBackup' {statusMessage} -> statusMessage) (\s@StreamingSessionBackup' {} a -> s {statusMessage = a} :: StreamingSessionBackup)++-- | A collection of labels, in the form of key-value pairs, that apply to+-- this resource.+streamingSessionBackup_tags :: Lens.Lens' StreamingSessionBackup (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+streamingSessionBackup_tags = Lens.lens (\StreamingSessionBackup' {tags} -> tags) (\s@StreamingSessionBackup' {} a -> s {tags = a} :: StreamingSessionBackup) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON StreamingSessionBackup where+  parseJSON =+    Data.withObject+      "StreamingSessionBackup"+      ( \x ->+          StreamingSessionBackup'+            Prelude.<$> (x Data..:? "arn")+            Prelude.<*> (x Data..:? "backupId")+            Prelude.<*> (x Data..:? "createdAt")+            Prelude.<*> (x Data..:? "launchProfileId")+            Prelude.<*> (x Data..:? "ownedBy")+            Prelude.<*> (x Data..:? "sessionId")+            Prelude.<*> (x Data..:? "state")+            Prelude.<*> (x Data..:? "statusCode")+            Prelude.<*> (x Data..:? "statusMessage")+            Prelude.<*> (x Data..:? "tags" Data..!= Prelude.mempty)+      )++instance Prelude.Hashable StreamingSessionBackup where+  hashWithSalt _salt StreamingSessionBackup' {..} =+    _salt+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` backupId+      `Prelude.hashWithSalt` createdAt+      `Prelude.hashWithSalt` launchProfileId+      `Prelude.hashWithSalt` ownedBy+      `Prelude.hashWithSalt` sessionId+      `Prelude.hashWithSalt` state+      `Prelude.hashWithSalt` statusCode+      `Prelude.hashWithSalt` statusMessage+      `Prelude.hashWithSalt` tags++instance Prelude.NFData StreamingSessionBackup where+  rnf StreamingSessionBackup' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf backupId+      `Prelude.seq` Prelude.rnf createdAt+      `Prelude.seq` Prelude.rnf launchProfileId+      `Prelude.seq` Prelude.rnf ownedBy+      `Prelude.seq` Prelude.rnf sessionId+      `Prelude.seq` Prelude.rnf state+      `Prelude.seq` Prelude.rnf statusCode+      `Prelude.seq` Prelude.rnf statusMessage+      `Prelude.seq` Prelude.rnf tags
+ gen/Amazonka/Nimble/Types/StreamingSessionState.hs view
@@ -0,0 +1,117 @@+{-# 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.Nimble.Types.StreamingSessionState+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Nimble.Types.StreamingSessionState+  ( StreamingSessionState+      ( ..,+        StreamingSessionState_CREATE_FAILED,+        StreamingSessionState_CREATE_IN_PROGRESS,+        StreamingSessionState_DELETED,+        StreamingSessionState_DELETE_FAILED,+        StreamingSessionState_DELETE_IN_PROGRESS,+        StreamingSessionState_READY,+        StreamingSessionState_START_FAILED,+        StreamingSessionState_START_IN_PROGRESS,+        StreamingSessionState_STOPPED,+        StreamingSessionState_STOP_FAILED,+        StreamingSessionState_STOP_IN_PROGRESS+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The streaming session state.+newtype StreamingSessionState = StreamingSessionState'+  { fromStreamingSessionState ::+      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 StreamingSessionState_CREATE_FAILED :: StreamingSessionState+pattern StreamingSessionState_CREATE_FAILED = StreamingSessionState' "CREATE_FAILED"++pattern StreamingSessionState_CREATE_IN_PROGRESS :: StreamingSessionState+pattern StreamingSessionState_CREATE_IN_PROGRESS = StreamingSessionState' "CREATE_IN_PROGRESS"++pattern StreamingSessionState_DELETED :: StreamingSessionState+pattern StreamingSessionState_DELETED = StreamingSessionState' "DELETED"++pattern StreamingSessionState_DELETE_FAILED :: StreamingSessionState+pattern StreamingSessionState_DELETE_FAILED = StreamingSessionState' "DELETE_FAILED"++pattern StreamingSessionState_DELETE_IN_PROGRESS :: StreamingSessionState+pattern StreamingSessionState_DELETE_IN_PROGRESS = StreamingSessionState' "DELETE_IN_PROGRESS"++pattern StreamingSessionState_READY :: StreamingSessionState+pattern StreamingSessionState_READY = StreamingSessionState' "READY"++pattern StreamingSessionState_START_FAILED :: StreamingSessionState+pattern StreamingSessionState_START_FAILED = StreamingSessionState' "START_FAILED"++pattern StreamingSessionState_START_IN_PROGRESS :: StreamingSessionState+pattern StreamingSessionState_START_IN_PROGRESS = StreamingSessionState' "START_IN_PROGRESS"++pattern StreamingSessionState_STOPPED :: StreamingSessionState+pattern StreamingSessionState_STOPPED = StreamingSessionState' "STOPPED"++pattern StreamingSessionState_STOP_FAILED :: StreamingSessionState+pattern StreamingSessionState_STOP_FAILED = StreamingSessionState' "STOP_FAILED"++pattern StreamingSessionState_STOP_IN_PROGRESS :: StreamingSessionState+pattern StreamingSessionState_STOP_IN_PROGRESS = StreamingSessionState' "STOP_IN_PROGRESS"++{-# COMPLETE+  StreamingSessionState_CREATE_FAILED,+  StreamingSessionState_CREATE_IN_PROGRESS,+  StreamingSessionState_DELETED,+  StreamingSessionState_DELETE_FAILED,+  StreamingSessionState_DELETE_IN_PROGRESS,+  StreamingSessionState_READY,+  StreamingSessionState_START_FAILED,+  StreamingSessionState_START_IN_PROGRESS,+  StreamingSessionState_STOPPED,+  StreamingSessionState_STOP_FAILED,+  StreamingSessionState_STOP_IN_PROGRESS,+  StreamingSessionState'+  #-}
+ gen/Amazonka/Nimble/Types/StreamingSessionStatusCode.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.Nimble.Types.StreamingSessionStatusCode+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Nimble.Types.StreamingSessionStatusCode+  ( StreamingSessionStatusCode+      ( ..,+        StreamingSessionStatusCode_ACTIVE_DIRECTORY_DOMAIN_JOIN_ERROR,+        StreamingSessionStatusCode_AMI_VALIDATION_ERROR,+        StreamingSessionStatusCode_DECRYPT_STREAMING_IMAGE_ERROR,+        StreamingSessionStatusCode_INITIALIZATION_SCRIPT_ERROR,+        StreamingSessionStatusCode_INSUFFICIENT_CAPACITY,+        StreamingSessionStatusCode_INTERNAL_ERROR,+        StreamingSessionStatusCode_NETWORK_CONNECTION_ERROR,+        StreamingSessionStatusCode_NETWORK_INTERFACE_ERROR,+        StreamingSessionStatusCode_STREAMING_SESSION_CREATE_IN_PROGRESS,+        StreamingSessionStatusCode_STREAMING_SESSION_DELETED,+        StreamingSessionStatusCode_STREAMING_SESSION_DELETE_IN_PROGRESS,+        StreamingSessionStatusCode_STREAMING_SESSION_READY,+        StreamingSessionStatusCode_STREAMING_SESSION_STARTED,+        StreamingSessionStatusCode_STREAMING_SESSION_START_IN_PROGRESS,+        StreamingSessionStatusCode_STREAMING_SESSION_STOPPED,+        StreamingSessionStatusCode_STREAMING_SESSION_STOP_IN_PROGRESS+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype StreamingSessionStatusCode = StreamingSessionStatusCode'+  { fromStreamingSessionStatusCode ::+      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 StreamingSessionStatusCode_ACTIVE_DIRECTORY_DOMAIN_JOIN_ERROR :: StreamingSessionStatusCode+pattern StreamingSessionStatusCode_ACTIVE_DIRECTORY_DOMAIN_JOIN_ERROR = StreamingSessionStatusCode' "ACTIVE_DIRECTORY_DOMAIN_JOIN_ERROR"++pattern StreamingSessionStatusCode_AMI_VALIDATION_ERROR :: StreamingSessionStatusCode+pattern StreamingSessionStatusCode_AMI_VALIDATION_ERROR = StreamingSessionStatusCode' "AMI_VALIDATION_ERROR"++pattern StreamingSessionStatusCode_DECRYPT_STREAMING_IMAGE_ERROR :: StreamingSessionStatusCode+pattern StreamingSessionStatusCode_DECRYPT_STREAMING_IMAGE_ERROR = StreamingSessionStatusCode' "DECRYPT_STREAMING_IMAGE_ERROR"++pattern StreamingSessionStatusCode_INITIALIZATION_SCRIPT_ERROR :: StreamingSessionStatusCode+pattern StreamingSessionStatusCode_INITIALIZATION_SCRIPT_ERROR = StreamingSessionStatusCode' "INITIALIZATION_SCRIPT_ERROR"++pattern StreamingSessionStatusCode_INSUFFICIENT_CAPACITY :: StreamingSessionStatusCode+pattern StreamingSessionStatusCode_INSUFFICIENT_CAPACITY = StreamingSessionStatusCode' "INSUFFICIENT_CAPACITY"++pattern StreamingSessionStatusCode_INTERNAL_ERROR :: StreamingSessionStatusCode+pattern StreamingSessionStatusCode_INTERNAL_ERROR = StreamingSessionStatusCode' "INTERNAL_ERROR"++pattern StreamingSessionStatusCode_NETWORK_CONNECTION_ERROR :: StreamingSessionStatusCode+pattern StreamingSessionStatusCode_NETWORK_CONNECTION_ERROR = StreamingSessionStatusCode' "NETWORK_CONNECTION_ERROR"++pattern StreamingSessionStatusCode_NETWORK_INTERFACE_ERROR :: StreamingSessionStatusCode+pattern StreamingSessionStatusCode_NETWORK_INTERFACE_ERROR = StreamingSessionStatusCode' "NETWORK_INTERFACE_ERROR"++pattern StreamingSessionStatusCode_STREAMING_SESSION_CREATE_IN_PROGRESS :: StreamingSessionStatusCode+pattern StreamingSessionStatusCode_STREAMING_SESSION_CREATE_IN_PROGRESS = StreamingSessionStatusCode' "STREAMING_SESSION_CREATE_IN_PROGRESS"++pattern StreamingSessionStatusCode_STREAMING_SESSION_DELETED :: StreamingSessionStatusCode+pattern StreamingSessionStatusCode_STREAMING_SESSION_DELETED = StreamingSessionStatusCode' "STREAMING_SESSION_DELETED"++pattern StreamingSessionStatusCode_STREAMING_SESSION_DELETE_IN_PROGRESS :: StreamingSessionStatusCode+pattern StreamingSessionStatusCode_STREAMING_SESSION_DELETE_IN_PROGRESS = StreamingSessionStatusCode' "STREAMING_SESSION_DELETE_IN_PROGRESS"++pattern StreamingSessionStatusCode_STREAMING_SESSION_READY :: StreamingSessionStatusCode+pattern StreamingSessionStatusCode_STREAMING_SESSION_READY = StreamingSessionStatusCode' "STREAMING_SESSION_READY"++pattern StreamingSessionStatusCode_STREAMING_SESSION_STARTED :: StreamingSessionStatusCode+pattern StreamingSessionStatusCode_STREAMING_SESSION_STARTED = StreamingSessionStatusCode' "STREAMING_SESSION_STARTED"++pattern StreamingSessionStatusCode_STREAMING_SESSION_START_IN_PROGRESS :: StreamingSessionStatusCode+pattern StreamingSessionStatusCode_STREAMING_SESSION_START_IN_PROGRESS = StreamingSessionStatusCode' "STREAMING_SESSION_START_IN_PROGRESS"++pattern StreamingSessionStatusCode_STREAMING_SESSION_STOPPED :: StreamingSessionStatusCode+pattern StreamingSessionStatusCode_STREAMING_SESSION_STOPPED = StreamingSessionStatusCode' "STREAMING_SESSION_STOPPED"++pattern StreamingSessionStatusCode_STREAMING_SESSION_STOP_IN_PROGRESS :: StreamingSessionStatusCode+pattern StreamingSessionStatusCode_STREAMING_SESSION_STOP_IN_PROGRESS = StreamingSessionStatusCode' "STREAMING_SESSION_STOP_IN_PROGRESS"++{-# COMPLETE+  StreamingSessionStatusCode_ACTIVE_DIRECTORY_DOMAIN_JOIN_ERROR,+  StreamingSessionStatusCode_AMI_VALIDATION_ERROR,+  StreamingSessionStatusCode_DECRYPT_STREAMING_IMAGE_ERROR,+  StreamingSessionStatusCode_INITIALIZATION_SCRIPT_ERROR,+  StreamingSessionStatusCode_INSUFFICIENT_CAPACITY,+  StreamingSessionStatusCode_INTERNAL_ERROR,+  StreamingSessionStatusCode_NETWORK_CONNECTION_ERROR,+  StreamingSessionStatusCode_NETWORK_INTERFACE_ERROR,+  StreamingSessionStatusCode_STREAMING_SESSION_CREATE_IN_PROGRESS,+  StreamingSessionStatusCode_STREAMING_SESSION_DELETED,+  StreamingSessionStatusCode_STREAMING_SESSION_DELETE_IN_PROGRESS,+  StreamingSessionStatusCode_STREAMING_SESSION_READY,+  StreamingSessionStatusCode_STREAMING_SESSION_STARTED,+  StreamingSessionStatusCode_STREAMING_SESSION_START_IN_PROGRESS,+  StreamingSessionStatusCode_STREAMING_SESSION_STOPPED,+  StreamingSessionStatusCode_STREAMING_SESSION_STOP_IN_PROGRESS,+  StreamingSessionStatusCode'+  #-}
+ gen/Amazonka/Nimble/Types/StreamingSessionStorageMode.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.Nimble.Types.StreamingSessionStorageMode+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Nimble.Types.StreamingSessionStorageMode+  ( StreamingSessionStorageMode+      ( ..,+        StreamingSessionStorageMode_UPLOAD+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype StreamingSessionStorageMode = StreamingSessionStorageMode'+  { fromStreamingSessionStorageMode ::+      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 StreamingSessionStorageMode_UPLOAD :: StreamingSessionStorageMode+pattern StreamingSessionStorageMode_UPLOAD = StreamingSessionStorageMode' "UPLOAD"++{-# COMPLETE+  StreamingSessionStorageMode_UPLOAD,+  StreamingSessionStorageMode'+  #-}
+ gen/Amazonka/Nimble/Types/StreamingSessionStorageRoot.hs view
@@ -0,0 +1,94 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Nimble.Types.StreamingSessionStorageRoot+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Nimble.Types.StreamingSessionStorageRoot 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 upload storage root location (folder) on streaming workstations+-- where files are uploaded.+--+-- /See:/ 'newStreamingSessionStorageRoot' smart constructor.+data StreamingSessionStorageRoot = StreamingSessionStorageRoot'+  { -- | The folder path in Linux workstations where files are uploaded.+    linux :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The folder path in Windows workstations where files are uploaded.+    windows :: Prelude.Maybe (Data.Sensitive Prelude.Text)+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StreamingSessionStorageRoot' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'linux', 'streamingSessionStorageRoot_linux' - The folder path in Linux workstations where files are uploaded.+--+-- 'windows', 'streamingSessionStorageRoot_windows' - The folder path in Windows workstations where files are uploaded.+newStreamingSessionStorageRoot ::+  StreamingSessionStorageRoot+newStreamingSessionStorageRoot =+  StreamingSessionStorageRoot'+    { linux =+        Prelude.Nothing,+      windows = Prelude.Nothing+    }++-- | The folder path in Linux workstations where files are uploaded.+streamingSessionStorageRoot_linux :: Lens.Lens' StreamingSessionStorageRoot (Prelude.Maybe Prelude.Text)+streamingSessionStorageRoot_linux = Lens.lens (\StreamingSessionStorageRoot' {linux} -> linux) (\s@StreamingSessionStorageRoot' {} a -> s {linux = a} :: StreamingSessionStorageRoot) Prelude.. Lens.mapping Data._Sensitive++-- | The folder path in Windows workstations where files are uploaded.+streamingSessionStorageRoot_windows :: Lens.Lens' StreamingSessionStorageRoot (Prelude.Maybe Prelude.Text)+streamingSessionStorageRoot_windows = Lens.lens (\StreamingSessionStorageRoot' {windows} -> windows) (\s@StreamingSessionStorageRoot' {} a -> s {windows = a} :: StreamingSessionStorageRoot) Prelude.. Lens.mapping Data._Sensitive++instance Data.FromJSON StreamingSessionStorageRoot where+  parseJSON =+    Data.withObject+      "StreamingSessionStorageRoot"+      ( \x ->+          StreamingSessionStorageRoot'+            Prelude.<$> (x Data..:? "linux")+            Prelude.<*> (x Data..:? "windows")+      )++instance Prelude.Hashable StreamingSessionStorageRoot where+  hashWithSalt _salt StreamingSessionStorageRoot' {..} =+    _salt+      `Prelude.hashWithSalt` linux+      `Prelude.hashWithSalt` windows++instance Prelude.NFData StreamingSessionStorageRoot where+  rnf StreamingSessionStorageRoot' {..} =+    Prelude.rnf linux `Prelude.seq` Prelude.rnf windows++instance Data.ToJSON StreamingSessionStorageRoot where+  toJSON StreamingSessionStorageRoot' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("linux" Data..=) Prelude.<$> linux,+            ("windows" Data..=) Prelude.<$> windows+          ]+      )
+ gen/Amazonka/Nimble/Types/StreamingSessionStream.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.Nimble.Types.StreamingSessionStream+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Nimble.Types.StreamingSessionStream where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Nimble.Types.StreamingSessionStreamState+import Amazonka.Nimble.Types.StreamingSessionStreamStatusCode+import qualified Amazonka.Prelude as Prelude++-- | A stream is an active connection to a streaming session, enabling a+-- studio user to control the streaming session using a compatible client.+-- Streaming session streams are compatible with the NICE DCV web client,+-- included in the Nimble Studio portal, or the NICE DCV desktop client.+--+-- /See:/ 'newStreamingSessionStream' smart constructor.+data StreamingSessionStream = StreamingSessionStream'+  { -- | The ISO timestamp in seconds for when the resource was created.+    createdAt :: Prelude.Maybe Data.ISO8601,+    -- | The user ID of the user that created the streaming session stream.+    createdBy :: Prelude.Maybe Prelude.Text,+    -- | The ISO timestamp in seconds for when the resource expires.+    expiresAt :: Prelude.Maybe Data.ISO8601,+    -- | The user ID of the user that owns the streaming session. The user that+    -- owns the session will be logging into the session and interacting with+    -- the virtual workstation.+    ownedBy :: Prelude.Maybe Prelude.Text,+    -- | The current state.+    state :: Prelude.Maybe StreamingSessionStreamState,+    -- | The streaming session stream status code.+    statusCode :: Prelude.Maybe StreamingSessionStreamStatusCode,+    -- | The stream ID.+    streamId :: Prelude.Maybe Prelude.Text,+    -- | The URL to connect to this stream using the DCV client.+    url :: Prelude.Maybe (Data.Sensitive Prelude.Text)+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StreamingSessionStream' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'createdAt', 'streamingSessionStream_createdAt' - The ISO timestamp in seconds for when the resource was created.+--+-- 'createdBy', 'streamingSessionStream_createdBy' - The user ID of the user that created the streaming session stream.+--+-- 'expiresAt', 'streamingSessionStream_expiresAt' - The ISO timestamp in seconds for when the resource expires.+--+-- 'ownedBy', 'streamingSessionStream_ownedBy' - The user ID of the user that owns the streaming session. The user that+-- owns the session will be logging into the session and interacting with+-- the virtual workstation.+--+-- 'state', 'streamingSessionStream_state' - The current state.+--+-- 'statusCode', 'streamingSessionStream_statusCode' - The streaming session stream status code.+--+-- 'streamId', 'streamingSessionStream_streamId' - The stream ID.+--+-- 'url', 'streamingSessionStream_url' - The URL to connect to this stream using the DCV client.+newStreamingSessionStream ::+  StreamingSessionStream+newStreamingSessionStream =+  StreamingSessionStream'+    { createdAt =+        Prelude.Nothing,+      createdBy = Prelude.Nothing,+      expiresAt = Prelude.Nothing,+      ownedBy = Prelude.Nothing,+      state = Prelude.Nothing,+      statusCode = Prelude.Nothing,+      streamId = Prelude.Nothing,+      url = Prelude.Nothing+    }++-- | The ISO timestamp in seconds for when the resource was created.+streamingSessionStream_createdAt :: Lens.Lens' StreamingSessionStream (Prelude.Maybe Prelude.UTCTime)+streamingSessionStream_createdAt = Lens.lens (\StreamingSessionStream' {createdAt} -> createdAt) (\s@StreamingSessionStream' {} a -> s {createdAt = a} :: StreamingSessionStream) Prelude.. Lens.mapping Data._Time++-- | The user ID of the user that created the streaming session stream.+streamingSessionStream_createdBy :: Lens.Lens' StreamingSessionStream (Prelude.Maybe Prelude.Text)+streamingSessionStream_createdBy = Lens.lens (\StreamingSessionStream' {createdBy} -> createdBy) (\s@StreamingSessionStream' {} a -> s {createdBy = a} :: StreamingSessionStream)++-- | The ISO timestamp in seconds for when the resource expires.+streamingSessionStream_expiresAt :: Lens.Lens' StreamingSessionStream (Prelude.Maybe Prelude.UTCTime)+streamingSessionStream_expiresAt = Lens.lens (\StreamingSessionStream' {expiresAt} -> expiresAt) (\s@StreamingSessionStream' {} a -> s {expiresAt = a} :: StreamingSessionStream) Prelude.. Lens.mapping Data._Time++-- | The user ID of the user that owns the streaming session. The user that+-- owns the session will be logging into the session and interacting with+-- the virtual workstation.+streamingSessionStream_ownedBy :: Lens.Lens' StreamingSessionStream (Prelude.Maybe Prelude.Text)+streamingSessionStream_ownedBy = Lens.lens (\StreamingSessionStream' {ownedBy} -> ownedBy) (\s@StreamingSessionStream' {} a -> s {ownedBy = a} :: StreamingSessionStream)++-- | The current state.+streamingSessionStream_state :: Lens.Lens' StreamingSessionStream (Prelude.Maybe StreamingSessionStreamState)+streamingSessionStream_state = Lens.lens (\StreamingSessionStream' {state} -> state) (\s@StreamingSessionStream' {} a -> s {state = a} :: StreamingSessionStream)++-- | The streaming session stream status code.+streamingSessionStream_statusCode :: Lens.Lens' StreamingSessionStream (Prelude.Maybe StreamingSessionStreamStatusCode)+streamingSessionStream_statusCode = Lens.lens (\StreamingSessionStream' {statusCode} -> statusCode) (\s@StreamingSessionStream' {} a -> s {statusCode = a} :: StreamingSessionStream)++-- | The stream ID.+streamingSessionStream_streamId :: Lens.Lens' StreamingSessionStream (Prelude.Maybe Prelude.Text)+streamingSessionStream_streamId = Lens.lens (\StreamingSessionStream' {streamId} -> streamId) (\s@StreamingSessionStream' {} a -> s {streamId = a} :: StreamingSessionStream)++-- | The URL to connect to this stream using the DCV client.+streamingSessionStream_url :: Lens.Lens' StreamingSessionStream (Prelude.Maybe Prelude.Text)+streamingSessionStream_url = Lens.lens (\StreamingSessionStream' {url} -> url) (\s@StreamingSessionStream' {} a -> s {url = a} :: StreamingSessionStream) Prelude.. Lens.mapping Data._Sensitive++instance Data.FromJSON StreamingSessionStream where+  parseJSON =+    Data.withObject+      "StreamingSessionStream"+      ( \x ->+          StreamingSessionStream'+            Prelude.<$> (x Data..:? "createdAt")+            Prelude.<*> (x Data..:? "createdBy")+            Prelude.<*> (x Data..:? "expiresAt")+            Prelude.<*> (x Data..:? "ownedBy")+            Prelude.<*> (x Data..:? "state")+            Prelude.<*> (x Data..:? "statusCode")+            Prelude.<*> (x Data..:? "streamId")+            Prelude.<*> (x Data..:? "url")+      )++instance Prelude.Hashable StreamingSessionStream where+  hashWithSalt _salt StreamingSessionStream' {..} =+    _salt+      `Prelude.hashWithSalt` createdAt+      `Prelude.hashWithSalt` createdBy+      `Prelude.hashWithSalt` expiresAt+      `Prelude.hashWithSalt` ownedBy+      `Prelude.hashWithSalt` state+      `Prelude.hashWithSalt` statusCode+      `Prelude.hashWithSalt` streamId+      `Prelude.hashWithSalt` url++instance Prelude.NFData StreamingSessionStream where+  rnf StreamingSessionStream' {..} =+    Prelude.rnf createdAt+      `Prelude.seq` Prelude.rnf createdBy+      `Prelude.seq` Prelude.rnf expiresAt+      `Prelude.seq` Prelude.rnf ownedBy+      `Prelude.seq` Prelude.rnf state+      `Prelude.seq` Prelude.rnf statusCode+      `Prelude.seq` Prelude.rnf streamId+      `Prelude.seq` Prelude.rnf url
+ gen/Amazonka/Nimble/Types/StreamingSessionStreamState.hs view
@@ -0,0 +1,91 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Nimble.Types.StreamingSessionStreamState+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Nimble.Types.StreamingSessionStreamState+  ( StreamingSessionStreamState+      ( ..,+        StreamingSessionStreamState_CREATE_FAILED,+        StreamingSessionStreamState_CREATE_IN_PROGRESS,+        StreamingSessionStreamState_DELETED,+        StreamingSessionStreamState_DELETE_FAILED,+        StreamingSessionStreamState_DELETE_IN_PROGRESS,+        StreamingSessionStreamState_READY+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype StreamingSessionStreamState = StreamingSessionStreamState'+  { fromStreamingSessionStreamState ::+      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 StreamingSessionStreamState_CREATE_FAILED :: StreamingSessionStreamState+pattern StreamingSessionStreamState_CREATE_FAILED = StreamingSessionStreamState' "CREATE_FAILED"++pattern StreamingSessionStreamState_CREATE_IN_PROGRESS :: StreamingSessionStreamState+pattern StreamingSessionStreamState_CREATE_IN_PROGRESS = StreamingSessionStreamState' "CREATE_IN_PROGRESS"++pattern StreamingSessionStreamState_DELETED :: StreamingSessionStreamState+pattern StreamingSessionStreamState_DELETED = StreamingSessionStreamState' "DELETED"++pattern StreamingSessionStreamState_DELETE_FAILED :: StreamingSessionStreamState+pattern StreamingSessionStreamState_DELETE_FAILED = StreamingSessionStreamState' "DELETE_FAILED"++pattern StreamingSessionStreamState_DELETE_IN_PROGRESS :: StreamingSessionStreamState+pattern StreamingSessionStreamState_DELETE_IN_PROGRESS = StreamingSessionStreamState' "DELETE_IN_PROGRESS"++pattern StreamingSessionStreamState_READY :: StreamingSessionStreamState+pattern StreamingSessionStreamState_READY = StreamingSessionStreamState' "READY"++{-# COMPLETE+  StreamingSessionStreamState_CREATE_FAILED,+  StreamingSessionStreamState_CREATE_IN_PROGRESS,+  StreamingSessionStreamState_DELETED,+  StreamingSessionStreamState_DELETE_FAILED,+  StreamingSessionStreamState_DELETE_IN_PROGRESS,+  StreamingSessionStreamState_READY,+  StreamingSessionStreamState'+  #-}
+ gen/Amazonka/Nimble/Types/StreamingSessionStreamStatusCode.hs view
@@ -0,0 +1,91 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Nimble.Types.StreamingSessionStreamStatusCode+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Nimble.Types.StreamingSessionStreamStatusCode+  ( StreamingSessionStreamStatusCode+      ( ..,+        StreamingSessionStreamStatusCode_INTERNAL_ERROR,+        StreamingSessionStreamStatusCode_NETWORK_CONNECTION_ERROR,+        StreamingSessionStreamStatusCode_STREAM_CREATE_IN_PROGRESS,+        StreamingSessionStreamStatusCode_STREAM_DELETED,+        StreamingSessionStreamStatusCode_STREAM_DELETE_IN_PROGRESS,+        StreamingSessionStreamStatusCode_STREAM_READY+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype StreamingSessionStreamStatusCode = StreamingSessionStreamStatusCode'+  { fromStreamingSessionStreamStatusCode ::+      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 StreamingSessionStreamStatusCode_INTERNAL_ERROR :: StreamingSessionStreamStatusCode+pattern StreamingSessionStreamStatusCode_INTERNAL_ERROR = StreamingSessionStreamStatusCode' "INTERNAL_ERROR"++pattern StreamingSessionStreamStatusCode_NETWORK_CONNECTION_ERROR :: StreamingSessionStreamStatusCode+pattern StreamingSessionStreamStatusCode_NETWORK_CONNECTION_ERROR = StreamingSessionStreamStatusCode' "NETWORK_CONNECTION_ERROR"++pattern StreamingSessionStreamStatusCode_STREAM_CREATE_IN_PROGRESS :: StreamingSessionStreamStatusCode+pattern StreamingSessionStreamStatusCode_STREAM_CREATE_IN_PROGRESS = StreamingSessionStreamStatusCode' "STREAM_CREATE_IN_PROGRESS"++pattern StreamingSessionStreamStatusCode_STREAM_DELETED :: StreamingSessionStreamStatusCode+pattern StreamingSessionStreamStatusCode_STREAM_DELETED = StreamingSessionStreamStatusCode' "STREAM_DELETED"++pattern StreamingSessionStreamStatusCode_STREAM_DELETE_IN_PROGRESS :: StreamingSessionStreamStatusCode+pattern StreamingSessionStreamStatusCode_STREAM_DELETE_IN_PROGRESS = StreamingSessionStreamStatusCode' "STREAM_DELETE_IN_PROGRESS"++pattern StreamingSessionStreamStatusCode_STREAM_READY :: StreamingSessionStreamStatusCode+pattern StreamingSessionStreamStatusCode_STREAM_READY = StreamingSessionStreamStatusCode' "STREAM_READY"++{-# COMPLETE+  StreamingSessionStreamStatusCode_INTERNAL_ERROR,+  StreamingSessionStreamStatusCode_NETWORK_CONNECTION_ERROR,+  StreamingSessionStreamStatusCode_STREAM_CREATE_IN_PROGRESS,+  StreamingSessionStreamStatusCode_STREAM_DELETED,+  StreamingSessionStreamStatusCode_STREAM_DELETE_IN_PROGRESS,+  StreamingSessionStreamStatusCode_STREAM_READY,+  StreamingSessionStreamStatusCode'+  #-}
+ gen/Amazonka/Nimble/Types/Studio.hs view
@@ -0,0 +1,298 @@+{-# 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.Nimble.Types.Studio+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Nimble.Types.Studio where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Nimble.Types.StudioEncryptionConfiguration+import Amazonka.Nimble.Types.StudioState+import Amazonka.Nimble.Types.StudioStatusCode+import qualified Amazonka.Prelude as Prelude++-- | Represents a studio resource.+--+-- A studio is the core resource used with Nimble Studio. You must create a+-- studio first, before any other resource type can be created. All other+-- resources you create and manage in Nimble Studio are contained within a+-- studio.+--+-- When creating a studio, you must provides two IAM roles for use with the+-- Nimble Studio portal. These roles are assumed by your users when they+-- log in to the Nimble Studio portal via IAM Identity Center and your+-- identity source.+--+-- The user role must have the @AmazonNimbleStudio-StudioUser@ managed+-- policy attached for the portal to function properly.+--+-- The admin role must have the @AmazonNimbleStudio-StudioAdmin@ managed+-- policy attached for the portal to function properly.+--+-- Your studio roles must trust the @identity.nimble.amazonaws.com@ service+-- principal to function properly.+--+-- /See:/ 'newStudio' smart constructor.+data Studio = Studio'+  { -- | The IAM role that studio admins assume when logging in to the Nimble+    -- Studio portal.+    adminRoleArn :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) that is assigned to a studio resource and+    -- uniquely identifies it. ARNs are unique across all Regions.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The ISO timestamp in seconds for when the resource was created.+    createdAt :: Prelude.Maybe Data.ISO8601,+    -- | A friendly name for the studio.+    displayName :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The Amazon Web Services Region where the studio resource is located.+    homeRegion :: Prelude.Maybe Prelude.Text,+    -- | The IAM Identity Center application client ID used to integrate with IAM+    -- Identity Center. This ID allows IAM Identity Center users to log in to+    -- Nimble Studio portal.+    ssoClientId :: Prelude.Maybe Prelude.Text,+    -- | The current state of the studio resource.+    state :: Prelude.Maybe StudioState,+    -- | Status codes that provide additional detail on the studio state.+    statusCode :: Prelude.Maybe StudioStatusCode,+    -- | Additional detail on the studio state.+    statusMessage :: Prelude.Maybe Prelude.Text,+    -- | Configuration of the encryption method that is used for the studio.+    studioEncryptionConfiguration :: Prelude.Maybe StudioEncryptionConfiguration,+    -- | The unique identifier for a studio resource. In Nimble Studio, all other+    -- resources are contained in a studio resource.+    studioId :: Prelude.Maybe Prelude.Text,+    -- | The name of the studio, as included in the URL when accessing it in the+    -- Nimble Studio portal.+    studioName :: Prelude.Maybe Prelude.Text,+    -- | The address of the web page for the studio.+    studioUrl :: Prelude.Maybe Prelude.Text,+    -- | A collection of labels, in the form of key-value pairs, that apply to+    -- this resource.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The ISO timestamp in seconds for when the resource was updated.+    updatedAt :: Prelude.Maybe Data.ISO8601,+    -- | The IAM role that studio users assume when logging in to the Nimble+    -- Studio portal.+    userRoleArn :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Studio' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'adminRoleArn', 'studio_adminRoleArn' - The IAM role that studio admins assume when logging in to the Nimble+-- Studio portal.+--+-- 'arn', 'studio_arn' - The Amazon Resource Name (ARN) that is assigned to a studio resource and+-- uniquely identifies it. ARNs are unique across all Regions.+--+-- 'createdAt', 'studio_createdAt' - The ISO timestamp in seconds for when the resource was created.+--+-- 'displayName', 'studio_displayName' - A friendly name for the studio.+--+-- 'homeRegion', 'studio_homeRegion' - The Amazon Web Services Region where the studio resource is located.+--+-- 'ssoClientId', 'studio_ssoClientId' - The IAM Identity Center application client ID used to integrate with IAM+-- Identity Center. This ID allows IAM Identity Center users to log in to+-- Nimble Studio portal.+--+-- 'state', 'studio_state' - The current state of the studio resource.+--+-- 'statusCode', 'studio_statusCode' - Status codes that provide additional detail on the studio state.+--+-- 'statusMessage', 'studio_statusMessage' - Additional detail on the studio state.+--+-- 'studioEncryptionConfiguration', 'studio_studioEncryptionConfiguration' - Configuration of the encryption method that is used for the studio.+--+-- 'studioId', 'studio_studioId' - The unique identifier for a studio resource. In Nimble Studio, all other+-- resources are contained in a studio resource.+--+-- 'studioName', 'studio_studioName' - The name of the studio, as included in the URL when accessing it in the+-- Nimble Studio portal.+--+-- 'studioUrl', 'studio_studioUrl' - The address of the web page for the studio.+--+-- 'tags', 'studio_tags' - A collection of labels, in the form of key-value pairs, that apply to+-- this resource.+--+-- 'updatedAt', 'studio_updatedAt' - The ISO timestamp in seconds for when the resource was updated.+--+-- 'userRoleArn', 'studio_userRoleArn' - The IAM role that studio users assume when logging in to the Nimble+-- Studio portal.+newStudio ::+  Studio+newStudio =+  Studio'+    { adminRoleArn = Prelude.Nothing,+      arn = Prelude.Nothing,+      createdAt = Prelude.Nothing,+      displayName = Prelude.Nothing,+      homeRegion = Prelude.Nothing,+      ssoClientId = Prelude.Nothing,+      state = Prelude.Nothing,+      statusCode = Prelude.Nothing,+      statusMessage = Prelude.Nothing,+      studioEncryptionConfiguration = Prelude.Nothing,+      studioId = Prelude.Nothing,+      studioName = Prelude.Nothing,+      studioUrl = Prelude.Nothing,+      tags = Prelude.Nothing,+      updatedAt = Prelude.Nothing,+      userRoleArn = Prelude.Nothing+    }++-- | The IAM role that studio admins assume when logging in to the Nimble+-- Studio portal.+studio_adminRoleArn :: Lens.Lens' Studio (Prelude.Maybe Prelude.Text)+studio_adminRoleArn = Lens.lens (\Studio' {adminRoleArn} -> adminRoleArn) (\s@Studio' {} a -> s {adminRoleArn = a} :: Studio)++-- | The Amazon Resource Name (ARN) that is assigned to a studio resource and+-- uniquely identifies it. ARNs are unique across all Regions.+studio_arn :: Lens.Lens' Studio (Prelude.Maybe Prelude.Text)+studio_arn = Lens.lens (\Studio' {arn} -> arn) (\s@Studio' {} a -> s {arn = a} :: Studio)++-- | The ISO timestamp in seconds for when the resource was created.+studio_createdAt :: Lens.Lens' Studio (Prelude.Maybe Prelude.UTCTime)+studio_createdAt = Lens.lens (\Studio' {createdAt} -> createdAt) (\s@Studio' {} a -> s {createdAt = a} :: Studio) Prelude.. Lens.mapping Data._Time++-- | A friendly name for the studio.+studio_displayName :: Lens.Lens' Studio (Prelude.Maybe Prelude.Text)+studio_displayName = Lens.lens (\Studio' {displayName} -> displayName) (\s@Studio' {} a -> s {displayName = a} :: Studio) Prelude.. Lens.mapping Data._Sensitive++-- | The Amazon Web Services Region where the studio resource is located.+studio_homeRegion :: Lens.Lens' Studio (Prelude.Maybe Prelude.Text)+studio_homeRegion = Lens.lens (\Studio' {homeRegion} -> homeRegion) (\s@Studio' {} a -> s {homeRegion = a} :: Studio)++-- | The IAM Identity Center application client ID used to integrate with IAM+-- Identity Center. This ID allows IAM Identity Center users to log in to+-- Nimble Studio portal.+studio_ssoClientId :: Lens.Lens' Studio (Prelude.Maybe Prelude.Text)+studio_ssoClientId = Lens.lens (\Studio' {ssoClientId} -> ssoClientId) (\s@Studio' {} a -> s {ssoClientId = a} :: Studio)++-- | The current state of the studio resource.+studio_state :: Lens.Lens' Studio (Prelude.Maybe StudioState)+studio_state = Lens.lens (\Studio' {state} -> state) (\s@Studio' {} a -> s {state = a} :: Studio)++-- | Status codes that provide additional detail on the studio state.+studio_statusCode :: Lens.Lens' Studio (Prelude.Maybe StudioStatusCode)+studio_statusCode = Lens.lens (\Studio' {statusCode} -> statusCode) (\s@Studio' {} a -> s {statusCode = a} :: Studio)++-- | Additional detail on the studio state.+studio_statusMessage :: Lens.Lens' Studio (Prelude.Maybe Prelude.Text)+studio_statusMessage = Lens.lens (\Studio' {statusMessage} -> statusMessage) (\s@Studio' {} a -> s {statusMessage = a} :: Studio)++-- | Configuration of the encryption method that is used for the studio.+studio_studioEncryptionConfiguration :: Lens.Lens' Studio (Prelude.Maybe StudioEncryptionConfiguration)+studio_studioEncryptionConfiguration = Lens.lens (\Studio' {studioEncryptionConfiguration} -> studioEncryptionConfiguration) (\s@Studio' {} a -> s {studioEncryptionConfiguration = a} :: Studio)++-- | The unique identifier for a studio resource. In Nimble Studio, all other+-- resources are contained in a studio resource.+studio_studioId :: Lens.Lens' Studio (Prelude.Maybe Prelude.Text)+studio_studioId = Lens.lens (\Studio' {studioId} -> studioId) (\s@Studio' {} a -> s {studioId = a} :: Studio)++-- | The name of the studio, as included in the URL when accessing it in the+-- Nimble Studio portal.+studio_studioName :: Lens.Lens' Studio (Prelude.Maybe Prelude.Text)+studio_studioName = Lens.lens (\Studio' {studioName} -> studioName) (\s@Studio' {} a -> s {studioName = a} :: Studio)++-- | The address of the web page for the studio.+studio_studioUrl :: Lens.Lens' Studio (Prelude.Maybe Prelude.Text)+studio_studioUrl = Lens.lens (\Studio' {studioUrl} -> studioUrl) (\s@Studio' {} a -> s {studioUrl = a} :: Studio)++-- | A collection of labels, in the form of key-value pairs, that apply to+-- this resource.+studio_tags :: Lens.Lens' Studio (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+studio_tags = Lens.lens (\Studio' {tags} -> tags) (\s@Studio' {} a -> s {tags = a} :: Studio) Prelude.. Lens.mapping Lens.coerced++-- | The ISO timestamp in seconds for when the resource was updated.+studio_updatedAt :: Lens.Lens' Studio (Prelude.Maybe Prelude.UTCTime)+studio_updatedAt = Lens.lens (\Studio' {updatedAt} -> updatedAt) (\s@Studio' {} a -> s {updatedAt = a} :: Studio) Prelude.. Lens.mapping Data._Time++-- | The IAM role that studio users assume when logging in to the Nimble+-- Studio portal.+studio_userRoleArn :: Lens.Lens' Studio (Prelude.Maybe Prelude.Text)+studio_userRoleArn = Lens.lens (\Studio' {userRoleArn} -> userRoleArn) (\s@Studio' {} a -> s {userRoleArn = a} :: Studio)++instance Data.FromJSON Studio where+  parseJSON =+    Data.withObject+      "Studio"+      ( \x ->+          Studio'+            Prelude.<$> (x Data..:? "adminRoleArn")+            Prelude.<*> (x Data..:? "arn")+            Prelude.<*> (x Data..:? "createdAt")+            Prelude.<*> (x Data..:? "displayName")+            Prelude.<*> (x Data..:? "homeRegion")+            Prelude.<*> (x Data..:? "ssoClientId")+            Prelude.<*> (x Data..:? "state")+            Prelude.<*> (x Data..:? "statusCode")+            Prelude.<*> (x Data..:? "statusMessage")+            Prelude.<*> (x Data..:? "studioEncryptionConfiguration")+            Prelude.<*> (x Data..:? "studioId")+            Prelude.<*> (x Data..:? "studioName")+            Prelude.<*> (x Data..:? "studioUrl")+            Prelude.<*> (x Data..:? "tags" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "updatedAt")+            Prelude.<*> (x Data..:? "userRoleArn")+      )++instance Prelude.Hashable Studio where+  hashWithSalt _salt Studio' {..} =+    _salt+      `Prelude.hashWithSalt` adminRoleArn+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` createdAt+      `Prelude.hashWithSalt` displayName+      `Prelude.hashWithSalt` homeRegion+      `Prelude.hashWithSalt` ssoClientId+      `Prelude.hashWithSalt` state+      `Prelude.hashWithSalt` statusCode+      `Prelude.hashWithSalt` statusMessage+      `Prelude.hashWithSalt` studioEncryptionConfiguration+      `Prelude.hashWithSalt` studioId+      `Prelude.hashWithSalt` studioName+      `Prelude.hashWithSalt` studioUrl+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` updatedAt+      `Prelude.hashWithSalt` userRoleArn++instance Prelude.NFData Studio where+  rnf Studio' {..} =+    Prelude.rnf adminRoleArn+      `Prelude.seq` Prelude.rnf arn+      `Prelude.seq` Prelude.rnf createdAt+      `Prelude.seq` Prelude.rnf displayName+      `Prelude.seq` Prelude.rnf homeRegion+      `Prelude.seq` Prelude.rnf ssoClientId+      `Prelude.seq` Prelude.rnf state+      `Prelude.seq` Prelude.rnf statusCode+      `Prelude.seq` Prelude.rnf statusMessage+      `Prelude.seq` Prelude.rnf studioEncryptionConfiguration+      `Prelude.seq` Prelude.rnf studioId+      `Prelude.seq` Prelude.rnf studioName+      `Prelude.seq` Prelude.rnf studioUrl+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf updatedAt+      `Prelude.seq` Prelude.rnf userRoleArn
+ gen/Amazonka/Nimble/Types/StudioComponent.hs view
@@ -0,0 +1,346 @@+{-# 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.Nimble.Types.StudioComponent+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Nimble.Types.StudioComponent where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Nimble.Types.ScriptParameterKeyValue+import Amazonka.Nimble.Types.StudioComponentConfiguration+import Amazonka.Nimble.Types.StudioComponentInitializationScript+import Amazonka.Nimble.Types.StudioComponentState+import Amazonka.Nimble.Types.StudioComponentStatusCode+import Amazonka.Nimble.Types.StudioComponentSubtype+import Amazonka.Nimble.Types.StudioComponentType+import qualified Amazonka.Prelude as Prelude++-- | A studio component represents a network resource to be used by a+-- studio\'s users and workflows. A typical studio contains studio+-- components for each of the following: render farm, Active Directory,+-- licensing, and file system.+--+-- Access to a studio component is managed by specifying security groups+-- for the resource, as well as its endpoint.+--+-- A studio component also has a set of initialization scripts that are+-- returned by @GetLaunchProfileInitialization@. These initialization+-- scripts run on streaming sessions when they start. They provide users+-- with flexibility in controlling how the studio resources are configured+-- on a streaming session.+--+-- /See:/ 'newStudioComponent' smart constructor.+data StudioComponent = StudioComponent'+  { -- | The Amazon Resource Name (ARN) that is assigned to a studio resource and+    -- uniquely identifies it. ARNs are unique across all Regions.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The configuration of the studio component, based on component type.+    configuration :: Prelude.Maybe StudioComponentConfiguration,+    -- | The ISO timestamp in seconds for when the resource was created.+    createdAt :: Prelude.Maybe Data.ISO8601,+    -- | The user ID of the user that created the studio component.+    createdBy :: Prelude.Maybe Prelude.Text,+    -- | A human-readable description for the studio component resource.+    description :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The EC2 security groups that control access to the studio component.+    ec2SecurityGroupIds :: Prelude.Maybe [Prelude.Text],+    -- | Initialization scripts for studio components.+    initializationScripts :: Prelude.Maybe [StudioComponentInitializationScript],+    -- | A friendly name for the studio component resource.+    name :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | An IAM role attached to a Studio Component that gives the studio+    -- component access to Amazon Web Services resources at anytime while the+    -- instance is running.+    runtimeRoleArn :: Prelude.Maybe Prelude.Text,+    -- | Parameters for the studio component scripts.+    scriptParameters :: Prelude.Maybe (Data.Sensitive [ScriptParameterKeyValue]),+    -- | An IAM role attached to Studio Component when the system initialization+    -- script runs which give the studio component access to Amazon Web+    -- Services resources when the system initialization script runs.+    secureInitializationRoleArn :: Prelude.Maybe Prelude.Text,+    -- | The current state.+    state :: Prelude.Maybe StudioComponentState,+    -- | The status code.+    statusCode :: Prelude.Maybe StudioComponentStatusCode,+    -- | The status message for the studio component.+    statusMessage :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier for a studio component resource.+    studioComponentId :: Prelude.Maybe Prelude.Text,+    -- | The specific subtype of a studio component.+    subtype :: Prelude.Maybe StudioComponentSubtype,+    -- | A collection of labels, in the form of key-value pairs, that apply to+    -- this resource.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The type of the studio component.+    type' :: Prelude.Maybe StudioComponentType,+    -- | The ISO timestamp in seconds for when the resource was updated.+    updatedAt :: Prelude.Maybe Data.ISO8601,+    -- | The user ID of the user that most recently updated the resource.+    updatedBy :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StudioComponent' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'studioComponent_arn' - The Amazon Resource Name (ARN) that is assigned to a studio resource and+-- uniquely identifies it. ARNs are unique across all Regions.+--+-- 'configuration', 'studioComponent_configuration' - The configuration of the studio component, based on component type.+--+-- 'createdAt', 'studioComponent_createdAt' - The ISO timestamp in seconds for when the resource was created.+--+-- 'createdBy', 'studioComponent_createdBy' - The user ID of the user that created the studio component.+--+-- 'description', 'studioComponent_description' - A human-readable description for the studio component resource.+--+-- 'ec2SecurityGroupIds', 'studioComponent_ec2SecurityGroupIds' - The EC2 security groups that control access to the studio component.+--+-- 'initializationScripts', 'studioComponent_initializationScripts' - Initialization scripts for studio components.+--+-- 'name', 'studioComponent_name' - A friendly name for the studio component resource.+--+-- 'runtimeRoleArn', 'studioComponent_runtimeRoleArn' - An IAM role attached to a Studio Component that gives the studio+-- component access to Amazon Web Services resources at anytime while the+-- instance is running.+--+-- 'scriptParameters', 'studioComponent_scriptParameters' - Parameters for the studio component scripts.+--+-- 'secureInitializationRoleArn', 'studioComponent_secureInitializationRoleArn' - An IAM role attached to Studio Component when the system initialization+-- script runs which give the studio component access to Amazon Web+-- Services resources when the system initialization script runs.+--+-- 'state', 'studioComponent_state' - The current state.+--+-- 'statusCode', 'studioComponent_statusCode' - The status code.+--+-- 'statusMessage', 'studioComponent_statusMessage' - The status message for the studio component.+--+-- 'studioComponentId', 'studioComponent_studioComponentId' - The unique identifier for a studio component resource.+--+-- 'subtype', 'studioComponent_subtype' - The specific subtype of a studio component.+--+-- 'tags', 'studioComponent_tags' - A collection of labels, in the form of key-value pairs, that apply to+-- this resource.+--+-- 'type'', 'studioComponent_type' - The type of the studio component.+--+-- 'updatedAt', 'studioComponent_updatedAt' - The ISO timestamp in seconds for when the resource was updated.+--+-- 'updatedBy', 'studioComponent_updatedBy' - The user ID of the user that most recently updated the resource.+newStudioComponent ::+  StudioComponent+newStudioComponent =+  StudioComponent'+    { arn = Prelude.Nothing,+      configuration = Prelude.Nothing,+      createdAt = Prelude.Nothing,+      createdBy = Prelude.Nothing,+      description = Prelude.Nothing,+      ec2SecurityGroupIds = Prelude.Nothing,+      initializationScripts = Prelude.Nothing,+      name = Prelude.Nothing,+      runtimeRoleArn = Prelude.Nothing,+      scriptParameters = Prelude.Nothing,+      secureInitializationRoleArn = Prelude.Nothing,+      state = Prelude.Nothing,+      statusCode = Prelude.Nothing,+      statusMessage = Prelude.Nothing,+      studioComponentId = Prelude.Nothing,+      subtype = Prelude.Nothing,+      tags = Prelude.Nothing,+      type' = Prelude.Nothing,+      updatedAt = Prelude.Nothing,+      updatedBy = Prelude.Nothing+    }++-- | The Amazon Resource Name (ARN) that is assigned to a studio resource and+-- uniquely identifies it. ARNs are unique across all Regions.+studioComponent_arn :: Lens.Lens' StudioComponent (Prelude.Maybe Prelude.Text)+studioComponent_arn = Lens.lens (\StudioComponent' {arn} -> arn) (\s@StudioComponent' {} a -> s {arn = a} :: StudioComponent)++-- | The configuration of the studio component, based on component type.+studioComponent_configuration :: Lens.Lens' StudioComponent (Prelude.Maybe StudioComponentConfiguration)+studioComponent_configuration = Lens.lens (\StudioComponent' {configuration} -> configuration) (\s@StudioComponent' {} a -> s {configuration = a} :: StudioComponent)++-- | The ISO timestamp in seconds for when the resource was created.+studioComponent_createdAt :: Lens.Lens' StudioComponent (Prelude.Maybe Prelude.UTCTime)+studioComponent_createdAt = Lens.lens (\StudioComponent' {createdAt} -> createdAt) (\s@StudioComponent' {} a -> s {createdAt = a} :: StudioComponent) Prelude.. Lens.mapping Data._Time++-- | The user ID of the user that created the studio component.+studioComponent_createdBy :: Lens.Lens' StudioComponent (Prelude.Maybe Prelude.Text)+studioComponent_createdBy = Lens.lens (\StudioComponent' {createdBy} -> createdBy) (\s@StudioComponent' {} a -> s {createdBy = a} :: StudioComponent)++-- | A human-readable description for the studio component resource.+studioComponent_description :: Lens.Lens' StudioComponent (Prelude.Maybe Prelude.Text)+studioComponent_description = Lens.lens (\StudioComponent' {description} -> description) (\s@StudioComponent' {} a -> s {description = a} :: StudioComponent) Prelude.. Lens.mapping Data._Sensitive++-- | The EC2 security groups that control access to the studio component.+studioComponent_ec2SecurityGroupIds :: Lens.Lens' StudioComponent (Prelude.Maybe [Prelude.Text])+studioComponent_ec2SecurityGroupIds = Lens.lens (\StudioComponent' {ec2SecurityGroupIds} -> ec2SecurityGroupIds) (\s@StudioComponent' {} a -> s {ec2SecurityGroupIds = a} :: StudioComponent) Prelude.. Lens.mapping Lens.coerced++-- | Initialization scripts for studio components.+studioComponent_initializationScripts :: Lens.Lens' StudioComponent (Prelude.Maybe [StudioComponentInitializationScript])+studioComponent_initializationScripts = Lens.lens (\StudioComponent' {initializationScripts} -> initializationScripts) (\s@StudioComponent' {} a -> s {initializationScripts = a} :: StudioComponent) Prelude.. Lens.mapping Lens.coerced++-- | A friendly name for the studio component resource.+studioComponent_name :: Lens.Lens' StudioComponent (Prelude.Maybe Prelude.Text)+studioComponent_name = Lens.lens (\StudioComponent' {name} -> name) (\s@StudioComponent' {} a -> s {name = a} :: StudioComponent) Prelude.. Lens.mapping Data._Sensitive++-- | An IAM role attached to a Studio Component that gives the studio+-- component access to Amazon Web Services resources at anytime while the+-- instance is running.+studioComponent_runtimeRoleArn :: Lens.Lens' StudioComponent (Prelude.Maybe Prelude.Text)+studioComponent_runtimeRoleArn = Lens.lens (\StudioComponent' {runtimeRoleArn} -> runtimeRoleArn) (\s@StudioComponent' {} a -> s {runtimeRoleArn = a} :: StudioComponent)++-- | Parameters for the studio component scripts.+studioComponent_scriptParameters :: Lens.Lens' StudioComponent (Prelude.Maybe [ScriptParameterKeyValue])+studioComponent_scriptParameters = Lens.lens (\StudioComponent' {scriptParameters} -> scriptParameters) (\s@StudioComponent' {} a -> s {scriptParameters = a} :: StudioComponent) Prelude.. Lens.mapping (Data._Sensitive Prelude.. Lens.coerced)++-- | An IAM role attached to Studio Component when the system initialization+-- script runs which give the studio component access to Amazon Web+-- Services resources when the system initialization script runs.+studioComponent_secureInitializationRoleArn :: Lens.Lens' StudioComponent (Prelude.Maybe Prelude.Text)+studioComponent_secureInitializationRoleArn = Lens.lens (\StudioComponent' {secureInitializationRoleArn} -> secureInitializationRoleArn) (\s@StudioComponent' {} a -> s {secureInitializationRoleArn = a} :: StudioComponent)++-- | The current state.+studioComponent_state :: Lens.Lens' StudioComponent (Prelude.Maybe StudioComponentState)+studioComponent_state = Lens.lens (\StudioComponent' {state} -> state) (\s@StudioComponent' {} a -> s {state = a} :: StudioComponent)++-- | The status code.+studioComponent_statusCode :: Lens.Lens' StudioComponent (Prelude.Maybe StudioComponentStatusCode)+studioComponent_statusCode = Lens.lens (\StudioComponent' {statusCode} -> statusCode) (\s@StudioComponent' {} a -> s {statusCode = a} :: StudioComponent)++-- | The status message for the studio component.+studioComponent_statusMessage :: Lens.Lens' StudioComponent (Prelude.Maybe Prelude.Text)+studioComponent_statusMessage = Lens.lens (\StudioComponent' {statusMessage} -> statusMessage) (\s@StudioComponent' {} a -> s {statusMessage = a} :: StudioComponent)++-- | The unique identifier for a studio component resource.+studioComponent_studioComponentId :: Lens.Lens' StudioComponent (Prelude.Maybe Prelude.Text)+studioComponent_studioComponentId = Lens.lens (\StudioComponent' {studioComponentId} -> studioComponentId) (\s@StudioComponent' {} a -> s {studioComponentId = a} :: StudioComponent)++-- | The specific subtype of a studio component.+studioComponent_subtype :: Lens.Lens' StudioComponent (Prelude.Maybe StudioComponentSubtype)+studioComponent_subtype = Lens.lens (\StudioComponent' {subtype} -> subtype) (\s@StudioComponent' {} a -> s {subtype = a} :: StudioComponent)++-- | A collection of labels, in the form of key-value pairs, that apply to+-- this resource.+studioComponent_tags :: Lens.Lens' StudioComponent (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+studioComponent_tags = Lens.lens (\StudioComponent' {tags} -> tags) (\s@StudioComponent' {} a -> s {tags = a} :: StudioComponent) Prelude.. Lens.mapping Lens.coerced++-- | The type of the studio component.+studioComponent_type :: Lens.Lens' StudioComponent (Prelude.Maybe StudioComponentType)+studioComponent_type = Lens.lens (\StudioComponent' {type'} -> type') (\s@StudioComponent' {} a -> s {type' = a} :: StudioComponent)++-- | The ISO timestamp in seconds for when the resource was updated.+studioComponent_updatedAt :: Lens.Lens' StudioComponent (Prelude.Maybe Prelude.UTCTime)+studioComponent_updatedAt = Lens.lens (\StudioComponent' {updatedAt} -> updatedAt) (\s@StudioComponent' {} a -> s {updatedAt = a} :: StudioComponent) Prelude.. Lens.mapping Data._Time++-- | The user ID of the user that most recently updated the resource.+studioComponent_updatedBy :: Lens.Lens' StudioComponent (Prelude.Maybe Prelude.Text)+studioComponent_updatedBy = Lens.lens (\StudioComponent' {updatedBy} -> updatedBy) (\s@StudioComponent' {} a -> s {updatedBy = a} :: StudioComponent)++instance Data.FromJSON StudioComponent where+  parseJSON =+    Data.withObject+      "StudioComponent"+      ( \x ->+          StudioComponent'+            Prelude.<$> (x Data..:? "arn")+            Prelude.<*> (x Data..:? "configuration")+            Prelude.<*> (x Data..:? "createdAt")+            Prelude.<*> (x Data..:? "createdBy")+            Prelude.<*> (x Data..:? "description")+            Prelude.<*> ( x+                            Data..:? "ec2SecurityGroupIds"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> ( x+                            Data..:? "initializationScripts"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "name")+            Prelude.<*> (x Data..:? "runtimeRoleArn")+            Prelude.<*> ( x+                            Data..:? "scriptParameters"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "secureInitializationRoleArn")+            Prelude.<*> (x Data..:? "state")+            Prelude.<*> (x Data..:? "statusCode")+            Prelude.<*> (x Data..:? "statusMessage")+            Prelude.<*> (x Data..:? "studioComponentId")+            Prelude.<*> (x Data..:? "subtype")+            Prelude.<*> (x Data..:? "tags" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "type")+            Prelude.<*> (x Data..:? "updatedAt")+            Prelude.<*> (x Data..:? "updatedBy")+      )++instance Prelude.Hashable StudioComponent where+  hashWithSalt _salt StudioComponent' {..} =+    _salt+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` configuration+      `Prelude.hashWithSalt` createdAt+      `Prelude.hashWithSalt` createdBy+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` ec2SecurityGroupIds+      `Prelude.hashWithSalt` initializationScripts+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` runtimeRoleArn+      `Prelude.hashWithSalt` scriptParameters+      `Prelude.hashWithSalt` secureInitializationRoleArn+      `Prelude.hashWithSalt` state+      `Prelude.hashWithSalt` statusCode+      `Prelude.hashWithSalt` statusMessage+      `Prelude.hashWithSalt` studioComponentId+      `Prelude.hashWithSalt` subtype+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` type'+      `Prelude.hashWithSalt` updatedAt+      `Prelude.hashWithSalt` updatedBy++instance Prelude.NFData StudioComponent where+  rnf StudioComponent' {..} =+    Prelude.rnf arn+      `Prelude.seq` Prelude.rnf configuration+      `Prelude.seq` Prelude.rnf createdAt+      `Prelude.seq` Prelude.rnf createdBy+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf ec2SecurityGroupIds+      `Prelude.seq` Prelude.rnf initializationScripts+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf runtimeRoleArn+      `Prelude.seq` Prelude.rnf scriptParameters+      `Prelude.seq` Prelude.rnf secureInitializationRoleArn+      `Prelude.seq` Prelude.rnf state+      `Prelude.seq` Prelude.rnf statusCode+      `Prelude.seq` Prelude.rnf statusMessage+      `Prelude.seq` Prelude.rnf studioComponentId+      `Prelude.seq` Prelude.rnf subtype+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf type'+      `Prelude.seq` Prelude.rnf updatedAt+      `Prelude.seq` Prelude.rnf updatedBy
+ gen/Amazonka/Nimble/Types/StudioComponentConfiguration.hs view
@@ -0,0 +1,144 @@+{-# 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.Nimble.Types.StudioComponentConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Nimble.Types.StudioComponentConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Nimble.Types.ActiveDirectoryConfiguration+import Amazonka.Nimble.Types.ComputeFarmConfiguration+import Amazonka.Nimble.Types.LicenseServiceConfiguration+import Amazonka.Nimble.Types.SharedFileSystemConfiguration+import qualified Amazonka.Prelude as Prelude++-- | The configuration of the studio component, based on component type.+--+-- /See:/ 'newStudioComponentConfiguration' smart constructor.+data StudioComponentConfiguration = StudioComponentConfiguration'+  { -- | The configuration for a Directory Service for Microsoft Active Directory+    -- studio resource.+    activeDirectoryConfiguration :: Prelude.Maybe ActiveDirectoryConfiguration,+    -- | The configuration for a render farm that is associated with a studio+    -- resource.+    computeFarmConfiguration :: Prelude.Maybe ComputeFarmConfiguration,+    -- | The configuration for a license service that is associated with a studio+    -- resource.+    licenseServiceConfiguration :: Prelude.Maybe LicenseServiceConfiguration,+    -- | The configuration for a shared file storage system that is associated+    -- with a studio resource.+    sharedFileSystemConfiguration :: Prelude.Maybe SharedFileSystemConfiguration+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StudioComponentConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'activeDirectoryConfiguration', 'studioComponentConfiguration_activeDirectoryConfiguration' - The configuration for a Directory Service for Microsoft Active Directory+-- studio resource.+--+-- 'computeFarmConfiguration', 'studioComponentConfiguration_computeFarmConfiguration' - The configuration for a render farm that is associated with a studio+-- resource.+--+-- 'licenseServiceConfiguration', 'studioComponentConfiguration_licenseServiceConfiguration' - The configuration for a license service that is associated with a studio+-- resource.+--+-- 'sharedFileSystemConfiguration', 'studioComponentConfiguration_sharedFileSystemConfiguration' - The configuration for a shared file storage system that is associated+-- with a studio resource.+newStudioComponentConfiguration ::+  StudioComponentConfiguration+newStudioComponentConfiguration =+  StudioComponentConfiguration'+    { activeDirectoryConfiguration =+        Prelude.Nothing,+      computeFarmConfiguration = Prelude.Nothing,+      licenseServiceConfiguration = Prelude.Nothing,+      sharedFileSystemConfiguration =+        Prelude.Nothing+    }++-- | The configuration for a Directory Service for Microsoft Active Directory+-- studio resource.+studioComponentConfiguration_activeDirectoryConfiguration :: Lens.Lens' StudioComponentConfiguration (Prelude.Maybe ActiveDirectoryConfiguration)+studioComponentConfiguration_activeDirectoryConfiguration = Lens.lens (\StudioComponentConfiguration' {activeDirectoryConfiguration} -> activeDirectoryConfiguration) (\s@StudioComponentConfiguration' {} a -> s {activeDirectoryConfiguration = a} :: StudioComponentConfiguration)++-- | The configuration for a render farm that is associated with a studio+-- resource.+studioComponentConfiguration_computeFarmConfiguration :: Lens.Lens' StudioComponentConfiguration (Prelude.Maybe ComputeFarmConfiguration)+studioComponentConfiguration_computeFarmConfiguration = Lens.lens (\StudioComponentConfiguration' {computeFarmConfiguration} -> computeFarmConfiguration) (\s@StudioComponentConfiguration' {} a -> s {computeFarmConfiguration = a} :: StudioComponentConfiguration)++-- | The configuration for a license service that is associated with a studio+-- resource.+studioComponentConfiguration_licenseServiceConfiguration :: Lens.Lens' StudioComponentConfiguration (Prelude.Maybe LicenseServiceConfiguration)+studioComponentConfiguration_licenseServiceConfiguration = Lens.lens (\StudioComponentConfiguration' {licenseServiceConfiguration} -> licenseServiceConfiguration) (\s@StudioComponentConfiguration' {} a -> s {licenseServiceConfiguration = a} :: StudioComponentConfiguration)++-- | The configuration for a shared file storage system that is associated+-- with a studio resource.+studioComponentConfiguration_sharedFileSystemConfiguration :: Lens.Lens' StudioComponentConfiguration (Prelude.Maybe SharedFileSystemConfiguration)+studioComponentConfiguration_sharedFileSystemConfiguration = Lens.lens (\StudioComponentConfiguration' {sharedFileSystemConfiguration} -> sharedFileSystemConfiguration) (\s@StudioComponentConfiguration' {} a -> s {sharedFileSystemConfiguration = a} :: StudioComponentConfiguration)++instance Data.FromJSON StudioComponentConfiguration where+  parseJSON =+    Data.withObject+      "StudioComponentConfiguration"+      ( \x ->+          StudioComponentConfiguration'+            Prelude.<$> (x Data..:? "activeDirectoryConfiguration")+            Prelude.<*> (x Data..:? "computeFarmConfiguration")+            Prelude.<*> (x Data..:? "licenseServiceConfiguration")+            Prelude.<*> (x Data..:? "sharedFileSystemConfiguration")+      )++instance+  Prelude.Hashable+    StudioComponentConfiguration+  where+  hashWithSalt _salt StudioComponentConfiguration' {..} =+    _salt+      `Prelude.hashWithSalt` activeDirectoryConfiguration+      `Prelude.hashWithSalt` computeFarmConfiguration+      `Prelude.hashWithSalt` licenseServiceConfiguration+      `Prelude.hashWithSalt` sharedFileSystemConfiguration++instance Prelude.NFData StudioComponentConfiguration where+  rnf StudioComponentConfiguration' {..} =+    Prelude.rnf activeDirectoryConfiguration+      `Prelude.seq` Prelude.rnf computeFarmConfiguration+      `Prelude.seq` Prelude.rnf licenseServiceConfiguration+      `Prelude.seq` Prelude.rnf sharedFileSystemConfiguration++instance Data.ToJSON StudioComponentConfiguration where+  toJSON StudioComponentConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("activeDirectoryConfiguration" Data..=)+              Prelude.<$> activeDirectoryConfiguration,+            ("computeFarmConfiguration" Data..=)+              Prelude.<$> computeFarmConfiguration,+            ("licenseServiceConfiguration" Data..=)+              Prelude.<$> licenseServiceConfiguration,+            ("sharedFileSystemConfiguration" Data..=)+              Prelude.<$> sharedFileSystemConfiguration+          ]+      )
+ gen/Amazonka/Nimble/Types/StudioComponentInitializationScript.hs view
@@ -0,0 +1,140 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Nimble.Types.StudioComponentInitializationScript+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Nimble.Types.StudioComponentInitializationScript where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Nimble.Types.LaunchProfilePlatform+import Amazonka.Nimble.Types.StudioComponentInitializationScriptRunContext+import qualified Amazonka.Prelude as Prelude++-- | Initialization scripts for studio components.+--+-- /See:/ 'newStudioComponentInitializationScript' smart constructor.+data StudioComponentInitializationScript = StudioComponentInitializationScript'+  { -- | The version number of the protocol that is used by the launch profile.+    -- The only valid version is \"2021-03-31\".+    launchProfileProtocolVersion :: Prelude.Maybe Prelude.Text,+    -- | The platform of the initialization script, either Windows or Linux.+    platform :: Prelude.Maybe LaunchProfilePlatform,+    -- | The method to use when running the initialization script.+    runContext :: Prelude.Maybe StudioComponentInitializationScriptRunContext,+    -- | The initialization script.+    script :: Prelude.Maybe (Data.Sensitive Prelude.Text)+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StudioComponentInitializationScript' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'launchProfileProtocolVersion', 'studioComponentInitializationScript_launchProfileProtocolVersion' - The version number of the protocol that is used by the launch profile.+-- The only valid version is \"2021-03-31\".+--+-- 'platform', 'studioComponentInitializationScript_platform' - The platform of the initialization script, either Windows or Linux.+--+-- 'runContext', 'studioComponentInitializationScript_runContext' - The method to use when running the initialization script.+--+-- 'script', 'studioComponentInitializationScript_script' - The initialization script.+newStudioComponentInitializationScript ::+  StudioComponentInitializationScript+newStudioComponentInitializationScript =+  StudioComponentInitializationScript'+    { launchProfileProtocolVersion =+        Prelude.Nothing,+      platform = Prelude.Nothing,+      runContext = Prelude.Nothing,+      script = Prelude.Nothing+    }++-- | The version number of the protocol that is used by the launch profile.+-- The only valid version is \"2021-03-31\".+studioComponentInitializationScript_launchProfileProtocolVersion :: Lens.Lens' StudioComponentInitializationScript (Prelude.Maybe Prelude.Text)+studioComponentInitializationScript_launchProfileProtocolVersion = Lens.lens (\StudioComponentInitializationScript' {launchProfileProtocolVersion} -> launchProfileProtocolVersion) (\s@StudioComponentInitializationScript' {} a -> s {launchProfileProtocolVersion = a} :: StudioComponentInitializationScript)++-- | The platform of the initialization script, either Windows or Linux.+studioComponentInitializationScript_platform :: Lens.Lens' StudioComponentInitializationScript (Prelude.Maybe LaunchProfilePlatform)+studioComponentInitializationScript_platform = Lens.lens (\StudioComponentInitializationScript' {platform} -> platform) (\s@StudioComponentInitializationScript' {} a -> s {platform = a} :: StudioComponentInitializationScript)++-- | The method to use when running the initialization script.+studioComponentInitializationScript_runContext :: Lens.Lens' StudioComponentInitializationScript (Prelude.Maybe StudioComponentInitializationScriptRunContext)+studioComponentInitializationScript_runContext = Lens.lens (\StudioComponentInitializationScript' {runContext} -> runContext) (\s@StudioComponentInitializationScript' {} a -> s {runContext = a} :: StudioComponentInitializationScript)++-- | The initialization script.+studioComponentInitializationScript_script :: Lens.Lens' StudioComponentInitializationScript (Prelude.Maybe Prelude.Text)+studioComponentInitializationScript_script = Lens.lens (\StudioComponentInitializationScript' {script} -> script) (\s@StudioComponentInitializationScript' {} a -> s {script = a} :: StudioComponentInitializationScript) Prelude.. Lens.mapping Data._Sensitive++instance+  Data.FromJSON+    StudioComponentInitializationScript+  where+  parseJSON =+    Data.withObject+      "StudioComponentInitializationScript"+      ( \x ->+          StudioComponentInitializationScript'+            Prelude.<$> (x Data..:? "launchProfileProtocolVersion")+            Prelude.<*> (x Data..:? "platform")+            Prelude.<*> (x Data..:? "runContext")+            Prelude.<*> (x Data..:? "script")+      )++instance+  Prelude.Hashable+    StudioComponentInitializationScript+  where+  hashWithSalt+    _salt+    StudioComponentInitializationScript' {..} =+      _salt+        `Prelude.hashWithSalt` launchProfileProtocolVersion+        `Prelude.hashWithSalt` platform+        `Prelude.hashWithSalt` runContext+        `Prelude.hashWithSalt` script++instance+  Prelude.NFData+    StudioComponentInitializationScript+  where+  rnf StudioComponentInitializationScript' {..} =+    Prelude.rnf launchProfileProtocolVersion+      `Prelude.seq` Prelude.rnf platform+      `Prelude.seq` Prelude.rnf runContext+      `Prelude.seq` Prelude.rnf script++instance+  Data.ToJSON+    StudioComponentInitializationScript+  where+  toJSON StudioComponentInitializationScript' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("launchProfileProtocolVersion" Data..=)+              Prelude.<$> launchProfileProtocolVersion,+            ("platform" Data..=) Prelude.<$> platform,+            ("runContext" Data..=) Prelude.<$> runContext,+            ("script" Data..=) Prelude.<$> script+          ]+      )
+ gen/Amazonka/Nimble/Types/StudioComponentInitializationScriptRunContext.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.Nimble.Types.StudioComponentInitializationScriptRunContext+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Nimble.Types.StudioComponentInitializationScriptRunContext+  ( StudioComponentInitializationScriptRunContext+      ( ..,+        StudioComponentInitializationScriptRunContext_SYSTEM_INITIALIZATION,+        StudioComponentInitializationScriptRunContext_USER_INITIALIZATION+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype StudioComponentInitializationScriptRunContext = StudioComponentInitializationScriptRunContext'+  { fromStudioComponentInitializationScriptRunContext ::+      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 StudioComponentInitializationScriptRunContext_SYSTEM_INITIALIZATION :: StudioComponentInitializationScriptRunContext+pattern StudioComponentInitializationScriptRunContext_SYSTEM_INITIALIZATION = StudioComponentInitializationScriptRunContext' "SYSTEM_INITIALIZATION"++pattern StudioComponentInitializationScriptRunContext_USER_INITIALIZATION :: StudioComponentInitializationScriptRunContext+pattern StudioComponentInitializationScriptRunContext_USER_INITIALIZATION = StudioComponentInitializationScriptRunContext' "USER_INITIALIZATION"++{-# COMPLETE+  StudioComponentInitializationScriptRunContext_SYSTEM_INITIALIZATION,+  StudioComponentInitializationScriptRunContext_USER_INITIALIZATION,+  StudioComponentInitializationScriptRunContext'+  #-}
+ gen/Amazonka/Nimble/Types/StudioComponentState.hs view
@@ -0,0 +1,131 @@+{-# 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.Nimble.Types.StudioComponentState+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Nimble.Types.StudioComponentState+  ( StudioComponentState+      ( ..,+        StudioComponentState_CREATE_FAILED,+        StudioComponentState_CREATE_IN_PROGRESS,+        StudioComponentState_DELETED,+        StudioComponentState_DELETE_FAILED,+        StudioComponentState_DELETE_IN_PROGRESS,+        StudioComponentState_READY,+        StudioComponentState_UPDATE_FAILED,+        StudioComponentState_UPDATE_IN_PROGRESS+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The current state of the studio component resource.+--+-- While a studio component is being created, modified, or deleted, its+-- state will be @CREATE_IN_PROGRESS@, @UPDATE_IN_PROGRESS@, or+-- @DELETE_IN_PROGRESS@.+--+-- These are called /transition states/.+--+-- No modifications may be made to the studio component while it is in a+-- transition state.+--+-- If creation of the resource fails, the state will change to+-- @CREATE_FAILED@. The resource @StatusCode@ and @StatusMessage@ will+-- provide more information of why creation failed. The resource in this+-- state will automatically be deleted from your account after a period of+-- time.+--+-- If updating the resource fails, the state will change to+-- @UPDATE_FAILED@. The resource @StatusCode@ and @StatusMessage@ will+-- provide more information of why the update failed. The resource will be+-- returned to the state it was in when the update request was invoked.+--+-- If deleting the resource fails, the state will change to+-- @DELETE_FAILED@. The resource @StatusCode@ and @StatusMessage@ will+-- provide more information of why the update failed. The resource will be+-- returned to the state it was in when the update request was invoked.+-- After the resource is deleted successfully, it will change to the+-- @DELETED@ state. The resource will no longer count against service+-- quotas and cannot be used or acted upon any futher. It will be removed+-- from your account after a period of time.+newtype StudioComponentState = StudioComponentState'+  { fromStudioComponentState ::+      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 StudioComponentState_CREATE_FAILED :: StudioComponentState+pattern StudioComponentState_CREATE_FAILED = StudioComponentState' "CREATE_FAILED"++pattern StudioComponentState_CREATE_IN_PROGRESS :: StudioComponentState+pattern StudioComponentState_CREATE_IN_PROGRESS = StudioComponentState' "CREATE_IN_PROGRESS"++pattern StudioComponentState_DELETED :: StudioComponentState+pattern StudioComponentState_DELETED = StudioComponentState' "DELETED"++pattern StudioComponentState_DELETE_FAILED :: StudioComponentState+pattern StudioComponentState_DELETE_FAILED = StudioComponentState' "DELETE_FAILED"++pattern StudioComponentState_DELETE_IN_PROGRESS :: StudioComponentState+pattern StudioComponentState_DELETE_IN_PROGRESS = StudioComponentState' "DELETE_IN_PROGRESS"++pattern StudioComponentState_READY :: StudioComponentState+pattern StudioComponentState_READY = StudioComponentState' "READY"++pattern StudioComponentState_UPDATE_FAILED :: StudioComponentState+pattern StudioComponentState_UPDATE_FAILED = StudioComponentState' "UPDATE_FAILED"++pattern StudioComponentState_UPDATE_IN_PROGRESS :: StudioComponentState+pattern StudioComponentState_UPDATE_IN_PROGRESS = StudioComponentState' "UPDATE_IN_PROGRESS"++{-# COMPLETE+  StudioComponentState_CREATE_FAILED,+  StudioComponentState_CREATE_IN_PROGRESS,+  StudioComponentState_DELETED,+  StudioComponentState_DELETE_FAILED,+  StudioComponentState_DELETE_IN_PROGRESS,+  StudioComponentState_READY,+  StudioComponentState_UPDATE_FAILED,+  StudioComponentState_UPDATE_IN_PROGRESS,+  StudioComponentState'+  #-}
+ gen/Amazonka/Nimble/Types/StudioComponentStatusCode.hs view
@@ -0,0 +1,119 @@+{-# 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.Nimble.Types.StudioComponentStatusCode+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Nimble.Types.StudioComponentStatusCode+  ( StudioComponentStatusCode+      ( ..,+        StudioComponentStatusCode_ACTIVE_DIRECTORY_ALREADY_EXISTS,+        StudioComponentStatusCode_ENCRYPTION_KEY_ACCESS_DENIED,+        StudioComponentStatusCode_ENCRYPTION_KEY_NOT_FOUND,+        StudioComponentStatusCode_INTERNAL_ERROR,+        StudioComponentStatusCode_STUDIO_COMPONENT_CREATED,+        StudioComponentStatusCode_STUDIO_COMPONENT_CREATE_IN_PROGRESS,+        StudioComponentStatusCode_STUDIO_COMPONENT_DELETED,+        StudioComponentStatusCode_STUDIO_COMPONENT_DELETE_IN_PROGRESS,+        StudioComponentStatusCode_STUDIO_COMPONENT_UPDATED,+        StudioComponentStatusCode_STUDIO_COMPONENT_UPDATE_IN_PROGRESS+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The current status of the studio component resource.+--+-- When the resource is in the @READY@ state, the status code signals what+-- the last mutation made to the resource was.+--+-- When the resource is in a @CREATE_FAILED@, @UPDATE_FAILED@, or+-- @DELETE_FAILED@ state, the status code signals what went wrong and why+-- the mutation failed.+newtype StudioComponentStatusCode = StudioComponentStatusCode'+  { fromStudioComponentStatusCode ::+      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 StudioComponentStatusCode_ACTIVE_DIRECTORY_ALREADY_EXISTS :: StudioComponentStatusCode+pattern StudioComponentStatusCode_ACTIVE_DIRECTORY_ALREADY_EXISTS = StudioComponentStatusCode' "ACTIVE_DIRECTORY_ALREADY_EXISTS"++pattern StudioComponentStatusCode_ENCRYPTION_KEY_ACCESS_DENIED :: StudioComponentStatusCode+pattern StudioComponentStatusCode_ENCRYPTION_KEY_ACCESS_DENIED = StudioComponentStatusCode' "ENCRYPTION_KEY_ACCESS_DENIED"++pattern StudioComponentStatusCode_ENCRYPTION_KEY_NOT_FOUND :: StudioComponentStatusCode+pattern StudioComponentStatusCode_ENCRYPTION_KEY_NOT_FOUND = StudioComponentStatusCode' "ENCRYPTION_KEY_NOT_FOUND"++pattern StudioComponentStatusCode_INTERNAL_ERROR :: StudioComponentStatusCode+pattern StudioComponentStatusCode_INTERNAL_ERROR = StudioComponentStatusCode' "INTERNAL_ERROR"++pattern StudioComponentStatusCode_STUDIO_COMPONENT_CREATED :: StudioComponentStatusCode+pattern StudioComponentStatusCode_STUDIO_COMPONENT_CREATED = StudioComponentStatusCode' "STUDIO_COMPONENT_CREATED"++pattern StudioComponentStatusCode_STUDIO_COMPONENT_CREATE_IN_PROGRESS :: StudioComponentStatusCode+pattern StudioComponentStatusCode_STUDIO_COMPONENT_CREATE_IN_PROGRESS = StudioComponentStatusCode' "STUDIO_COMPONENT_CREATE_IN_PROGRESS"++pattern StudioComponentStatusCode_STUDIO_COMPONENT_DELETED :: StudioComponentStatusCode+pattern StudioComponentStatusCode_STUDIO_COMPONENT_DELETED = StudioComponentStatusCode' "STUDIO_COMPONENT_DELETED"++pattern StudioComponentStatusCode_STUDIO_COMPONENT_DELETE_IN_PROGRESS :: StudioComponentStatusCode+pattern StudioComponentStatusCode_STUDIO_COMPONENT_DELETE_IN_PROGRESS = StudioComponentStatusCode' "STUDIO_COMPONENT_DELETE_IN_PROGRESS"++pattern StudioComponentStatusCode_STUDIO_COMPONENT_UPDATED :: StudioComponentStatusCode+pattern StudioComponentStatusCode_STUDIO_COMPONENT_UPDATED = StudioComponentStatusCode' "STUDIO_COMPONENT_UPDATED"++pattern StudioComponentStatusCode_STUDIO_COMPONENT_UPDATE_IN_PROGRESS :: StudioComponentStatusCode+pattern StudioComponentStatusCode_STUDIO_COMPONENT_UPDATE_IN_PROGRESS = StudioComponentStatusCode' "STUDIO_COMPONENT_UPDATE_IN_PROGRESS"++{-# COMPLETE+  StudioComponentStatusCode_ACTIVE_DIRECTORY_ALREADY_EXISTS,+  StudioComponentStatusCode_ENCRYPTION_KEY_ACCESS_DENIED,+  StudioComponentStatusCode_ENCRYPTION_KEY_NOT_FOUND,+  StudioComponentStatusCode_INTERNAL_ERROR,+  StudioComponentStatusCode_STUDIO_COMPONENT_CREATED,+  StudioComponentStatusCode_STUDIO_COMPONENT_CREATE_IN_PROGRESS,+  StudioComponentStatusCode_STUDIO_COMPONENT_DELETED,+  StudioComponentStatusCode_STUDIO_COMPONENT_DELETE_IN_PROGRESS,+  StudioComponentStatusCode_STUDIO_COMPONENT_UPDATED,+  StudioComponentStatusCode_STUDIO_COMPONENT_UPDATE_IN_PROGRESS,+  StudioComponentStatusCode'+  #-}
+ gen/Amazonka/Nimble/Types/StudioComponentSubtype.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.Nimble.Types.StudioComponentSubtype+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Nimble.Types.StudioComponentSubtype+  ( StudioComponentSubtype+      ( ..,+        StudioComponentSubtype_AMAZON_FSX_FOR_LUSTRE,+        StudioComponentSubtype_AMAZON_FSX_FOR_WINDOWS,+        StudioComponentSubtype_AWS_MANAGED_MICROSOFT_AD,+        StudioComponentSubtype_CUSTOM+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype StudioComponentSubtype = StudioComponentSubtype'+  { fromStudioComponentSubtype ::+      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 StudioComponentSubtype_AMAZON_FSX_FOR_LUSTRE :: StudioComponentSubtype+pattern StudioComponentSubtype_AMAZON_FSX_FOR_LUSTRE = StudioComponentSubtype' "AMAZON_FSX_FOR_LUSTRE"++pattern StudioComponentSubtype_AMAZON_FSX_FOR_WINDOWS :: StudioComponentSubtype+pattern StudioComponentSubtype_AMAZON_FSX_FOR_WINDOWS = StudioComponentSubtype' "AMAZON_FSX_FOR_WINDOWS"++pattern StudioComponentSubtype_AWS_MANAGED_MICROSOFT_AD :: StudioComponentSubtype+pattern StudioComponentSubtype_AWS_MANAGED_MICROSOFT_AD = StudioComponentSubtype' "AWS_MANAGED_MICROSOFT_AD"++pattern StudioComponentSubtype_CUSTOM :: StudioComponentSubtype+pattern StudioComponentSubtype_CUSTOM = StudioComponentSubtype' "CUSTOM"++{-# COMPLETE+  StudioComponentSubtype_AMAZON_FSX_FOR_LUSTRE,+  StudioComponentSubtype_AMAZON_FSX_FOR_WINDOWS,+  StudioComponentSubtype_AWS_MANAGED_MICROSOFT_AD,+  StudioComponentSubtype_CUSTOM,+  StudioComponentSubtype'+  #-}
+ gen/Amazonka/Nimble/Types/StudioComponentSummary.hs view
@@ -0,0 +1,171 @@+{-# 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.Nimble.Types.StudioComponentSummary+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Nimble.Types.StudioComponentSummary where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Nimble.Types.StudioComponentSubtype+import Amazonka.Nimble.Types.StudioComponentType+import qualified Amazonka.Prelude as Prelude++-- | The studio component\'s summary.+--+-- /See:/ 'newStudioComponentSummary' smart constructor.+data StudioComponentSummary = StudioComponentSummary'+  { -- | The ISO timestamp in seconds for when the resource was created.+    createdAt :: Prelude.Maybe Data.ISO8601,+    -- | The user ID of the user that created the studio component.+    createdBy :: Prelude.Maybe Prelude.Text,+    -- | The description.+    description :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The name for the studio component.+    name :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The unique identifier for a studio component resource.+    studioComponentId :: Prelude.Maybe Prelude.Text,+    -- | The specific subtype of a studio component.+    subtype :: Prelude.Maybe StudioComponentSubtype,+    -- | The type of the studio component.+    type' :: Prelude.Maybe StudioComponentType,+    -- | The ISO timestamp in seconds for when the resource was updated.+    updatedAt :: Prelude.Maybe Data.ISO8601,+    -- | The user ID of the user that most recently updated the resource.+    updatedBy :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StudioComponentSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'createdAt', 'studioComponentSummary_createdAt' - The ISO timestamp in seconds for when the resource was created.+--+-- 'createdBy', 'studioComponentSummary_createdBy' - The user ID of the user that created the studio component.+--+-- 'description', 'studioComponentSummary_description' - The description.+--+-- 'name', 'studioComponentSummary_name' - The name for the studio component.+--+-- 'studioComponentId', 'studioComponentSummary_studioComponentId' - The unique identifier for a studio component resource.+--+-- 'subtype', 'studioComponentSummary_subtype' - The specific subtype of a studio component.+--+-- 'type'', 'studioComponentSummary_type' - The type of the studio component.+--+-- 'updatedAt', 'studioComponentSummary_updatedAt' - The ISO timestamp in seconds for when the resource was updated.+--+-- 'updatedBy', 'studioComponentSummary_updatedBy' - The user ID of the user that most recently updated the resource.+newStudioComponentSummary ::+  StudioComponentSummary+newStudioComponentSummary =+  StudioComponentSummary'+    { createdAt =+        Prelude.Nothing,+      createdBy = Prelude.Nothing,+      description = Prelude.Nothing,+      name = Prelude.Nothing,+      studioComponentId = Prelude.Nothing,+      subtype = Prelude.Nothing,+      type' = Prelude.Nothing,+      updatedAt = Prelude.Nothing,+      updatedBy = Prelude.Nothing+    }++-- | The ISO timestamp in seconds for when the resource was created.+studioComponentSummary_createdAt :: Lens.Lens' StudioComponentSummary (Prelude.Maybe Prelude.UTCTime)+studioComponentSummary_createdAt = Lens.lens (\StudioComponentSummary' {createdAt} -> createdAt) (\s@StudioComponentSummary' {} a -> s {createdAt = a} :: StudioComponentSummary) Prelude.. Lens.mapping Data._Time++-- | The user ID of the user that created the studio component.+studioComponentSummary_createdBy :: Lens.Lens' StudioComponentSummary (Prelude.Maybe Prelude.Text)+studioComponentSummary_createdBy = Lens.lens (\StudioComponentSummary' {createdBy} -> createdBy) (\s@StudioComponentSummary' {} a -> s {createdBy = a} :: StudioComponentSummary)++-- | The description.+studioComponentSummary_description :: Lens.Lens' StudioComponentSummary (Prelude.Maybe Prelude.Text)+studioComponentSummary_description = Lens.lens (\StudioComponentSummary' {description} -> description) (\s@StudioComponentSummary' {} a -> s {description = a} :: StudioComponentSummary) Prelude.. Lens.mapping Data._Sensitive++-- | The name for the studio component.+studioComponentSummary_name :: Lens.Lens' StudioComponentSummary (Prelude.Maybe Prelude.Text)+studioComponentSummary_name = Lens.lens (\StudioComponentSummary' {name} -> name) (\s@StudioComponentSummary' {} a -> s {name = a} :: StudioComponentSummary) Prelude.. Lens.mapping Data._Sensitive++-- | The unique identifier for a studio component resource.+studioComponentSummary_studioComponentId :: Lens.Lens' StudioComponentSummary (Prelude.Maybe Prelude.Text)+studioComponentSummary_studioComponentId = Lens.lens (\StudioComponentSummary' {studioComponentId} -> studioComponentId) (\s@StudioComponentSummary' {} a -> s {studioComponentId = a} :: StudioComponentSummary)++-- | The specific subtype of a studio component.+studioComponentSummary_subtype :: Lens.Lens' StudioComponentSummary (Prelude.Maybe StudioComponentSubtype)+studioComponentSummary_subtype = Lens.lens (\StudioComponentSummary' {subtype} -> subtype) (\s@StudioComponentSummary' {} a -> s {subtype = a} :: StudioComponentSummary)++-- | The type of the studio component.+studioComponentSummary_type :: Lens.Lens' StudioComponentSummary (Prelude.Maybe StudioComponentType)+studioComponentSummary_type = Lens.lens (\StudioComponentSummary' {type'} -> type') (\s@StudioComponentSummary' {} a -> s {type' = a} :: StudioComponentSummary)++-- | The ISO timestamp in seconds for when the resource was updated.+studioComponentSummary_updatedAt :: Lens.Lens' StudioComponentSummary (Prelude.Maybe Prelude.UTCTime)+studioComponentSummary_updatedAt = Lens.lens (\StudioComponentSummary' {updatedAt} -> updatedAt) (\s@StudioComponentSummary' {} a -> s {updatedAt = a} :: StudioComponentSummary) Prelude.. Lens.mapping Data._Time++-- | The user ID of the user that most recently updated the resource.+studioComponentSummary_updatedBy :: Lens.Lens' StudioComponentSummary (Prelude.Maybe Prelude.Text)+studioComponentSummary_updatedBy = Lens.lens (\StudioComponentSummary' {updatedBy} -> updatedBy) (\s@StudioComponentSummary' {} a -> s {updatedBy = a} :: StudioComponentSummary)++instance Data.FromJSON StudioComponentSummary where+  parseJSON =+    Data.withObject+      "StudioComponentSummary"+      ( \x ->+          StudioComponentSummary'+            Prelude.<$> (x Data..:? "createdAt")+            Prelude.<*> (x Data..:? "createdBy")+            Prelude.<*> (x Data..:? "description")+            Prelude.<*> (x Data..:? "name")+            Prelude.<*> (x Data..:? "studioComponentId")+            Prelude.<*> (x Data..:? "subtype")+            Prelude.<*> (x Data..:? "type")+            Prelude.<*> (x Data..:? "updatedAt")+            Prelude.<*> (x Data..:? "updatedBy")+      )++instance Prelude.Hashable StudioComponentSummary where+  hashWithSalt _salt StudioComponentSummary' {..} =+    _salt+      `Prelude.hashWithSalt` createdAt+      `Prelude.hashWithSalt` createdBy+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` studioComponentId+      `Prelude.hashWithSalt` subtype+      `Prelude.hashWithSalt` type'+      `Prelude.hashWithSalt` updatedAt+      `Prelude.hashWithSalt` updatedBy++instance Prelude.NFData StudioComponentSummary where+  rnf StudioComponentSummary' {..} =+    Prelude.rnf createdAt+      `Prelude.seq` Prelude.rnf createdBy+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf studioComponentId+      `Prelude.seq` Prelude.rnf subtype+      `Prelude.seq` Prelude.rnf type'+      `Prelude.seq` Prelude.rnf updatedAt+      `Prelude.seq` Prelude.rnf updatedBy
+ gen/Amazonka/Nimble/Types/StudioComponentType.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.Nimble.Types.StudioComponentType+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Nimble.Types.StudioComponentType+  ( StudioComponentType+      ( ..,+        StudioComponentType_ACTIVE_DIRECTORY,+        StudioComponentType_COMPUTE_FARM,+        StudioComponentType_CUSTOM,+        StudioComponentType_LICENSE_SERVICE,+        StudioComponentType_SHARED_FILE_SYSTEM+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype StudioComponentType = StudioComponentType'+  { fromStudioComponentType ::+      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 StudioComponentType_ACTIVE_DIRECTORY :: StudioComponentType+pattern StudioComponentType_ACTIVE_DIRECTORY = StudioComponentType' "ACTIVE_DIRECTORY"++pattern StudioComponentType_COMPUTE_FARM :: StudioComponentType+pattern StudioComponentType_COMPUTE_FARM = StudioComponentType' "COMPUTE_FARM"++pattern StudioComponentType_CUSTOM :: StudioComponentType+pattern StudioComponentType_CUSTOM = StudioComponentType' "CUSTOM"++pattern StudioComponentType_LICENSE_SERVICE :: StudioComponentType+pattern StudioComponentType_LICENSE_SERVICE = StudioComponentType' "LICENSE_SERVICE"++pattern StudioComponentType_SHARED_FILE_SYSTEM :: StudioComponentType+pattern StudioComponentType_SHARED_FILE_SYSTEM = StudioComponentType' "SHARED_FILE_SYSTEM"++{-# COMPLETE+  StudioComponentType_ACTIVE_DIRECTORY,+  StudioComponentType_COMPUTE_FARM,+  StudioComponentType_CUSTOM,+  StudioComponentType_LICENSE_SERVICE,+  StudioComponentType_SHARED_FILE_SYSTEM,+  StudioComponentType'+  #-}
+ gen/Amazonka/Nimble/Types/StudioEncryptionConfiguration.hs view
@@ -0,0 +1,100 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Nimble.Types.StudioEncryptionConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Nimble.Types.StudioEncryptionConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Nimble.Types.StudioEncryptionConfigurationKeyType+import qualified Amazonka.Prelude as Prelude++-- | Configuration of the encryption method that is used for the studio.+--+-- /See:/ 'newStudioEncryptionConfiguration' smart constructor.+data StudioEncryptionConfiguration = StudioEncryptionConfiguration'+  { -- | The ARN for a KMS key that is used to encrypt studio data.+    keyArn :: Prelude.Maybe Prelude.Text,+    -- | The type of KMS key that is used to encrypt studio data.+    keyType :: StudioEncryptionConfigurationKeyType+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StudioEncryptionConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'keyArn', 'studioEncryptionConfiguration_keyArn' - The ARN for a KMS key that is used to encrypt studio data.+--+-- 'keyType', 'studioEncryptionConfiguration_keyType' - The type of KMS key that is used to encrypt studio data.+newStudioEncryptionConfiguration ::+  -- | 'keyType'+  StudioEncryptionConfigurationKeyType ->+  StudioEncryptionConfiguration+newStudioEncryptionConfiguration pKeyType_ =+  StudioEncryptionConfiguration'+    { keyArn =+        Prelude.Nothing,+      keyType = pKeyType_+    }++-- | The ARN for a KMS key that is used to encrypt studio data.+studioEncryptionConfiguration_keyArn :: Lens.Lens' StudioEncryptionConfiguration (Prelude.Maybe Prelude.Text)+studioEncryptionConfiguration_keyArn = Lens.lens (\StudioEncryptionConfiguration' {keyArn} -> keyArn) (\s@StudioEncryptionConfiguration' {} a -> s {keyArn = a} :: StudioEncryptionConfiguration)++-- | The type of KMS key that is used to encrypt studio data.+studioEncryptionConfiguration_keyType :: Lens.Lens' StudioEncryptionConfiguration StudioEncryptionConfigurationKeyType+studioEncryptionConfiguration_keyType = Lens.lens (\StudioEncryptionConfiguration' {keyType} -> keyType) (\s@StudioEncryptionConfiguration' {} a -> s {keyType = a} :: StudioEncryptionConfiguration)++instance Data.FromJSON StudioEncryptionConfiguration where+  parseJSON =+    Data.withObject+      "StudioEncryptionConfiguration"+      ( \x ->+          StudioEncryptionConfiguration'+            Prelude.<$> (x Data..:? "keyArn")+            Prelude.<*> (x Data..: "keyType")+      )++instance+  Prelude.Hashable+    StudioEncryptionConfiguration+  where+  hashWithSalt _salt StudioEncryptionConfiguration' {..} =+    _salt+      `Prelude.hashWithSalt` keyArn+      `Prelude.hashWithSalt` keyType++instance Prelude.NFData StudioEncryptionConfiguration where+  rnf StudioEncryptionConfiguration' {..} =+    Prelude.rnf keyArn+      `Prelude.seq` Prelude.rnf keyType++instance Data.ToJSON StudioEncryptionConfiguration where+  toJSON StudioEncryptionConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("keyArn" Data..=) Prelude.<$> keyArn,+            Prelude.Just ("keyType" Data..= keyType)+          ]+      )
+ gen/Amazonka/Nimble/Types/StudioEncryptionConfigurationKeyType.hs view
@@ -0,0 +1,72 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Nimble.Types.StudioEncryptionConfigurationKeyType+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Nimble.Types.StudioEncryptionConfigurationKeyType+  ( StudioEncryptionConfigurationKeyType+      ( ..,+        StudioEncryptionConfigurationKeyType_AWS_OWNED_KEY,+        StudioEncryptionConfigurationKeyType_CUSTOMER_MANAGED_KEY+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The type of KMS key that is used to encrypt studio data.+newtype StudioEncryptionConfigurationKeyType = StudioEncryptionConfigurationKeyType'+  { fromStudioEncryptionConfigurationKeyType ::+      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 StudioEncryptionConfigurationKeyType_AWS_OWNED_KEY :: StudioEncryptionConfigurationKeyType+pattern StudioEncryptionConfigurationKeyType_AWS_OWNED_KEY = StudioEncryptionConfigurationKeyType' "AWS_OWNED_KEY"++pattern StudioEncryptionConfigurationKeyType_CUSTOMER_MANAGED_KEY :: StudioEncryptionConfigurationKeyType+pattern StudioEncryptionConfigurationKeyType_CUSTOMER_MANAGED_KEY = StudioEncryptionConfigurationKeyType' "CUSTOMER_MANAGED_KEY"++{-# COMPLETE+  StudioEncryptionConfigurationKeyType_AWS_OWNED_KEY,+  StudioEncryptionConfigurationKeyType_CUSTOMER_MANAGED_KEY,+  StudioEncryptionConfigurationKeyType'+  #-}
+ gen/Amazonka/Nimble/Types/StudioMembership.hs view
@@ -0,0 +1,122 @@+{-# 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.Nimble.Types.StudioMembership+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Nimble.Types.StudioMembership where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Nimble.Types.StudioPersona+import qualified Amazonka.Prelude as Prelude++-- | A studio member is an association of a user from your studio identity+-- source to elevated permissions that they are granted in the studio.+--+-- When you add a user to your studio using the Nimble Studio console, they+-- are given access to the studio\'s IAM Identity Center application and+-- are given access to log in to the Nimble Studio portal. These users have+-- the permissions provided by the studio\'s user IAM role and do not+-- appear in the studio membership collection. Only studio admins appear in+-- studio membership.+--+-- When you add a user to studio membership with the ADMIN persona, upon+-- logging in to the Nimble Studio portal, they are granted permissions+-- specified by the Studio\'s Admin IAM role.+--+-- /See:/ 'newStudioMembership' smart constructor.+data StudioMembership = StudioMembership'+  { -- | The ID of the identity store.+    identityStoreId :: Prelude.Maybe Prelude.Text,+    -- | The persona.+    persona :: Prelude.Maybe StudioPersona,+    -- | The principal ID.+    principalId :: Prelude.Maybe Prelude.Text,+    -- | The Active Directory Security Identifier for this user, if available.+    sid :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StudioMembership' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'identityStoreId', 'studioMembership_identityStoreId' - The ID of the identity store.+--+-- 'persona', 'studioMembership_persona' - The persona.+--+-- 'principalId', 'studioMembership_principalId' - The principal ID.+--+-- 'sid', 'studioMembership_sid' - The Active Directory Security Identifier for this user, if available.+newStudioMembership ::+  StudioMembership+newStudioMembership =+  StudioMembership'+    { identityStoreId =+        Prelude.Nothing,+      persona = Prelude.Nothing,+      principalId = Prelude.Nothing,+      sid = Prelude.Nothing+    }++-- | The ID of the identity store.+studioMembership_identityStoreId :: Lens.Lens' StudioMembership (Prelude.Maybe Prelude.Text)+studioMembership_identityStoreId = Lens.lens (\StudioMembership' {identityStoreId} -> identityStoreId) (\s@StudioMembership' {} a -> s {identityStoreId = a} :: StudioMembership)++-- | The persona.+studioMembership_persona :: Lens.Lens' StudioMembership (Prelude.Maybe StudioPersona)+studioMembership_persona = Lens.lens (\StudioMembership' {persona} -> persona) (\s@StudioMembership' {} a -> s {persona = a} :: StudioMembership)++-- | The principal ID.+studioMembership_principalId :: Lens.Lens' StudioMembership (Prelude.Maybe Prelude.Text)+studioMembership_principalId = Lens.lens (\StudioMembership' {principalId} -> principalId) (\s@StudioMembership' {} a -> s {principalId = a} :: StudioMembership)++-- | The Active Directory Security Identifier for this user, if available.+studioMembership_sid :: Lens.Lens' StudioMembership (Prelude.Maybe Prelude.Text)+studioMembership_sid = Lens.lens (\StudioMembership' {sid} -> sid) (\s@StudioMembership' {} a -> s {sid = a} :: StudioMembership)++instance Data.FromJSON StudioMembership where+  parseJSON =+    Data.withObject+      "StudioMembership"+      ( \x ->+          StudioMembership'+            Prelude.<$> (x Data..:? "identityStoreId")+            Prelude.<*> (x Data..:? "persona")+            Prelude.<*> (x Data..:? "principalId")+            Prelude.<*> (x Data..:? "sid")+      )++instance Prelude.Hashable StudioMembership where+  hashWithSalt _salt StudioMembership' {..} =+    _salt+      `Prelude.hashWithSalt` identityStoreId+      `Prelude.hashWithSalt` persona+      `Prelude.hashWithSalt` principalId+      `Prelude.hashWithSalt` sid++instance Prelude.NFData StudioMembership where+  rnf StudioMembership' {..} =+    Prelude.rnf identityStoreId+      `Prelude.seq` Prelude.rnf persona+      `Prelude.seq` Prelude.rnf principalId+      `Prelude.seq` Prelude.rnf sid
+ gen/Amazonka/Nimble/Types/StudioPersona.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.Nimble.Types.StudioPersona+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Nimble.Types.StudioPersona+  ( StudioPersona+      ( ..,+        StudioPersona_ADMINISTRATOR+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype StudioPersona = StudioPersona'+  { fromStudioPersona ::+      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 StudioPersona_ADMINISTRATOR :: StudioPersona+pattern StudioPersona_ADMINISTRATOR = StudioPersona' "ADMINISTRATOR"++{-# COMPLETE+  StudioPersona_ADMINISTRATOR,+  StudioPersona'+  #-}
+ gen/Amazonka/Nimble/Types/StudioState.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.Nimble.Types.StudioState+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Nimble.Types.StudioState+  ( StudioState+      ( ..,+        StudioState_CREATE_FAILED,+        StudioState_CREATE_IN_PROGRESS,+        StudioState_DELETED,+        StudioState_DELETE_FAILED,+        StudioState_DELETE_IN_PROGRESS,+        StudioState_READY,+        StudioState_UPDATE_FAILED,+        StudioState_UPDATE_IN_PROGRESS+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype StudioState = StudioState'+  { fromStudioState ::+      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 StudioState_CREATE_FAILED :: StudioState+pattern StudioState_CREATE_FAILED = StudioState' "CREATE_FAILED"++pattern StudioState_CREATE_IN_PROGRESS :: StudioState+pattern StudioState_CREATE_IN_PROGRESS = StudioState' "CREATE_IN_PROGRESS"++pattern StudioState_DELETED :: StudioState+pattern StudioState_DELETED = StudioState' "DELETED"++pattern StudioState_DELETE_FAILED :: StudioState+pattern StudioState_DELETE_FAILED = StudioState' "DELETE_FAILED"++pattern StudioState_DELETE_IN_PROGRESS :: StudioState+pattern StudioState_DELETE_IN_PROGRESS = StudioState' "DELETE_IN_PROGRESS"++pattern StudioState_READY :: StudioState+pattern StudioState_READY = StudioState' "READY"++pattern StudioState_UPDATE_FAILED :: StudioState+pattern StudioState_UPDATE_FAILED = StudioState' "UPDATE_FAILED"++pattern StudioState_UPDATE_IN_PROGRESS :: StudioState+pattern StudioState_UPDATE_IN_PROGRESS = StudioState' "UPDATE_IN_PROGRESS"++{-# COMPLETE+  StudioState_CREATE_FAILED,+  StudioState_CREATE_IN_PROGRESS,+  StudioState_DELETED,+  StudioState_DELETE_FAILED,+  StudioState_DELETE_IN_PROGRESS,+  StudioState_READY,+  StudioState_UPDATE_FAILED,+  StudioState_UPDATE_IN_PROGRESS,+  StudioState'+  #-}
+ gen/Amazonka/Nimble/Types/StudioStatusCode.hs view
@@ -0,0 +1,157 @@+{-# 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.Nimble.Types.StudioStatusCode+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Nimble.Types.StudioStatusCode+  ( StudioStatusCode+      ( ..,+        StudioStatusCode_AWS_SSO_ACCESS_DENIED,+        StudioStatusCode_AWS_SSO_CONFIGURATION_REPAIRED,+        StudioStatusCode_AWS_SSO_CONFIGURATION_REPAIR_IN_PROGRESS,+        StudioStatusCode_AWS_SSO_NOT_ENABLED,+        StudioStatusCode_AWS_STS_REGION_DISABLED,+        StudioStatusCode_ENCRYPTION_KEY_ACCESS_DENIED,+        StudioStatusCode_ENCRYPTION_KEY_NOT_FOUND,+        StudioStatusCode_INTERNAL_ERROR,+        StudioStatusCode_ROLE_COULD_NOT_BE_ASSUMED,+        StudioStatusCode_ROLE_NOT_OWNED_BY_STUDIO_OWNER,+        StudioStatusCode_STUDIO_CREATED,+        StudioStatusCode_STUDIO_CREATE_IN_PROGRESS,+        StudioStatusCode_STUDIO_DELETED,+        StudioStatusCode_STUDIO_DELETE_IN_PROGRESS,+        StudioStatusCode_STUDIO_UPDATED,+        StudioStatusCode_STUDIO_UPDATE_IN_PROGRESS,+        StudioStatusCode_STUDIO_WITH_LAUNCH_PROFILES_NOT_DELETED,+        StudioStatusCode_STUDIO_WITH_STREAMING_IMAGES_NOT_DELETED,+        StudioStatusCode_STUDIO_WITH_STUDIO_COMPONENTS_NOT_DELETED+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The status code.+newtype StudioStatusCode = StudioStatusCode'+  { fromStudioStatusCode ::+      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 StudioStatusCode_AWS_SSO_ACCESS_DENIED :: StudioStatusCode+pattern StudioStatusCode_AWS_SSO_ACCESS_DENIED = StudioStatusCode' "AWS_SSO_ACCESS_DENIED"++pattern StudioStatusCode_AWS_SSO_CONFIGURATION_REPAIRED :: StudioStatusCode+pattern StudioStatusCode_AWS_SSO_CONFIGURATION_REPAIRED = StudioStatusCode' "AWS_SSO_CONFIGURATION_REPAIRED"++pattern StudioStatusCode_AWS_SSO_CONFIGURATION_REPAIR_IN_PROGRESS :: StudioStatusCode+pattern StudioStatusCode_AWS_SSO_CONFIGURATION_REPAIR_IN_PROGRESS = StudioStatusCode' "AWS_SSO_CONFIGURATION_REPAIR_IN_PROGRESS"++pattern StudioStatusCode_AWS_SSO_NOT_ENABLED :: StudioStatusCode+pattern StudioStatusCode_AWS_SSO_NOT_ENABLED = StudioStatusCode' "AWS_SSO_NOT_ENABLED"++pattern StudioStatusCode_AWS_STS_REGION_DISABLED :: StudioStatusCode+pattern StudioStatusCode_AWS_STS_REGION_DISABLED = StudioStatusCode' "AWS_STS_REGION_DISABLED"++pattern StudioStatusCode_ENCRYPTION_KEY_ACCESS_DENIED :: StudioStatusCode+pattern StudioStatusCode_ENCRYPTION_KEY_ACCESS_DENIED = StudioStatusCode' "ENCRYPTION_KEY_ACCESS_DENIED"++pattern StudioStatusCode_ENCRYPTION_KEY_NOT_FOUND :: StudioStatusCode+pattern StudioStatusCode_ENCRYPTION_KEY_NOT_FOUND = StudioStatusCode' "ENCRYPTION_KEY_NOT_FOUND"++pattern StudioStatusCode_INTERNAL_ERROR :: StudioStatusCode+pattern StudioStatusCode_INTERNAL_ERROR = StudioStatusCode' "INTERNAL_ERROR"++pattern StudioStatusCode_ROLE_COULD_NOT_BE_ASSUMED :: StudioStatusCode+pattern StudioStatusCode_ROLE_COULD_NOT_BE_ASSUMED = StudioStatusCode' "ROLE_COULD_NOT_BE_ASSUMED"++pattern StudioStatusCode_ROLE_NOT_OWNED_BY_STUDIO_OWNER :: StudioStatusCode+pattern StudioStatusCode_ROLE_NOT_OWNED_BY_STUDIO_OWNER = StudioStatusCode' "ROLE_NOT_OWNED_BY_STUDIO_OWNER"++pattern StudioStatusCode_STUDIO_CREATED :: StudioStatusCode+pattern StudioStatusCode_STUDIO_CREATED = StudioStatusCode' "STUDIO_CREATED"++pattern StudioStatusCode_STUDIO_CREATE_IN_PROGRESS :: StudioStatusCode+pattern StudioStatusCode_STUDIO_CREATE_IN_PROGRESS = StudioStatusCode' "STUDIO_CREATE_IN_PROGRESS"++pattern StudioStatusCode_STUDIO_DELETED :: StudioStatusCode+pattern StudioStatusCode_STUDIO_DELETED = StudioStatusCode' "STUDIO_DELETED"++pattern StudioStatusCode_STUDIO_DELETE_IN_PROGRESS :: StudioStatusCode+pattern StudioStatusCode_STUDIO_DELETE_IN_PROGRESS = StudioStatusCode' "STUDIO_DELETE_IN_PROGRESS"++pattern StudioStatusCode_STUDIO_UPDATED :: StudioStatusCode+pattern StudioStatusCode_STUDIO_UPDATED = StudioStatusCode' "STUDIO_UPDATED"++pattern StudioStatusCode_STUDIO_UPDATE_IN_PROGRESS :: StudioStatusCode+pattern StudioStatusCode_STUDIO_UPDATE_IN_PROGRESS = StudioStatusCode' "STUDIO_UPDATE_IN_PROGRESS"++pattern StudioStatusCode_STUDIO_WITH_LAUNCH_PROFILES_NOT_DELETED :: StudioStatusCode+pattern StudioStatusCode_STUDIO_WITH_LAUNCH_PROFILES_NOT_DELETED = StudioStatusCode' "STUDIO_WITH_LAUNCH_PROFILES_NOT_DELETED"++pattern StudioStatusCode_STUDIO_WITH_STREAMING_IMAGES_NOT_DELETED :: StudioStatusCode+pattern StudioStatusCode_STUDIO_WITH_STREAMING_IMAGES_NOT_DELETED = StudioStatusCode' "STUDIO_WITH_STREAMING_IMAGES_NOT_DELETED"++pattern StudioStatusCode_STUDIO_WITH_STUDIO_COMPONENTS_NOT_DELETED :: StudioStatusCode+pattern StudioStatusCode_STUDIO_WITH_STUDIO_COMPONENTS_NOT_DELETED = StudioStatusCode' "STUDIO_WITH_STUDIO_COMPONENTS_NOT_DELETED"++{-# COMPLETE+  StudioStatusCode_AWS_SSO_ACCESS_DENIED,+  StudioStatusCode_AWS_SSO_CONFIGURATION_REPAIRED,+  StudioStatusCode_AWS_SSO_CONFIGURATION_REPAIR_IN_PROGRESS,+  StudioStatusCode_AWS_SSO_NOT_ENABLED,+  StudioStatusCode_AWS_STS_REGION_DISABLED,+  StudioStatusCode_ENCRYPTION_KEY_ACCESS_DENIED,+  StudioStatusCode_ENCRYPTION_KEY_NOT_FOUND,+  StudioStatusCode_INTERNAL_ERROR,+  StudioStatusCode_ROLE_COULD_NOT_BE_ASSUMED,+  StudioStatusCode_ROLE_NOT_OWNED_BY_STUDIO_OWNER,+  StudioStatusCode_STUDIO_CREATED,+  StudioStatusCode_STUDIO_CREATE_IN_PROGRESS,+  StudioStatusCode_STUDIO_DELETED,+  StudioStatusCode_STUDIO_DELETE_IN_PROGRESS,+  StudioStatusCode_STUDIO_UPDATED,+  StudioStatusCode_STUDIO_UPDATE_IN_PROGRESS,+  StudioStatusCode_STUDIO_WITH_LAUNCH_PROFILES_NOT_DELETED,+  StudioStatusCode_STUDIO_WITH_STREAMING_IMAGES_NOT_DELETED,+  StudioStatusCode_STUDIO_WITH_STUDIO_COMPONENTS_NOT_DELETED,+  StudioStatusCode'+  #-}
+ gen/Amazonka/Nimble/Types/ValidationResult.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.Nimble.Types.ValidationResult+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Nimble.Types.ValidationResult where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Nimble.Types.LaunchProfileValidationState+import Amazonka.Nimble.Types.LaunchProfileValidationStatusCode+import Amazonka.Nimble.Types.LaunchProfileValidationType+import qualified Amazonka.Prelude as Prelude++-- | The launch profile validation result.+--+-- /See:/ 'newValidationResult' smart constructor.+data ValidationResult = ValidationResult'+  { -- | The current state.+    state :: LaunchProfileValidationState,+    -- | The status code. This will contain the failure reason if the state is+    -- @VALIDATION_FAILED@.+    statusCode :: LaunchProfileValidationStatusCode,+    -- | The status message for the validation result.+    statusMessage :: Prelude.Text,+    -- | The type of the validation result.+    type' :: LaunchProfileValidationType+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ValidationResult' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'validationResult_state' - The current state.+--+-- 'statusCode', 'validationResult_statusCode' - The status code. This will contain the failure reason if the state is+-- @VALIDATION_FAILED@.+--+-- 'statusMessage', 'validationResult_statusMessage' - The status message for the validation result.+--+-- 'type'', 'validationResult_type' - The type of the validation result.+newValidationResult ::+  -- | 'state'+  LaunchProfileValidationState ->+  -- | 'statusCode'+  LaunchProfileValidationStatusCode ->+  -- | 'statusMessage'+  Prelude.Text ->+  -- | 'type''+  LaunchProfileValidationType ->+  ValidationResult+newValidationResult+  pState_+  pStatusCode_+  pStatusMessage_+  pType_ =+    ValidationResult'+      { state = pState_,+        statusCode = pStatusCode_,+        statusMessage = pStatusMessage_,+        type' = pType_+      }++-- | The current state.+validationResult_state :: Lens.Lens' ValidationResult LaunchProfileValidationState+validationResult_state = Lens.lens (\ValidationResult' {state} -> state) (\s@ValidationResult' {} a -> s {state = a} :: ValidationResult)++-- | The status code. This will contain the failure reason if the state is+-- @VALIDATION_FAILED@.+validationResult_statusCode :: Lens.Lens' ValidationResult LaunchProfileValidationStatusCode+validationResult_statusCode = Lens.lens (\ValidationResult' {statusCode} -> statusCode) (\s@ValidationResult' {} a -> s {statusCode = a} :: ValidationResult)++-- | The status message for the validation result.+validationResult_statusMessage :: Lens.Lens' ValidationResult Prelude.Text+validationResult_statusMessage = Lens.lens (\ValidationResult' {statusMessage} -> statusMessage) (\s@ValidationResult' {} a -> s {statusMessage = a} :: ValidationResult)++-- | The type of the validation result.+validationResult_type :: Lens.Lens' ValidationResult LaunchProfileValidationType+validationResult_type = Lens.lens (\ValidationResult' {type'} -> type') (\s@ValidationResult' {} a -> s {type' = a} :: ValidationResult)++instance Data.FromJSON ValidationResult where+  parseJSON =+    Data.withObject+      "ValidationResult"+      ( \x ->+          ValidationResult'+            Prelude.<$> (x Data..: "state")+            Prelude.<*> (x Data..: "statusCode")+            Prelude.<*> (x Data..: "statusMessage")+            Prelude.<*> (x Data..: "type")+      )++instance Prelude.Hashable ValidationResult where+  hashWithSalt _salt ValidationResult' {..} =+    _salt+      `Prelude.hashWithSalt` state+      `Prelude.hashWithSalt` statusCode+      `Prelude.hashWithSalt` statusMessage+      `Prelude.hashWithSalt` type'++instance Prelude.NFData ValidationResult where+  rnf ValidationResult' {..} =+    Prelude.rnf state+      `Prelude.seq` Prelude.rnf statusCode+      `Prelude.seq` Prelude.rnf statusMessage+      `Prelude.seq` Prelude.rnf type'
+ gen/Amazonka/Nimble/Types/VolumeConfiguration.hs view
@@ -0,0 +1,119 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Nimble.Types.VolumeConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Nimble.Types.VolumeConfiguration 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++-- | Custom volume configuration for the root volumes that are attached to+-- streaming sessions.+--+-- This parameter is only allowed when @sessionPersistenceMode@ is+-- @ACTIVATED@.+--+-- /See:/ 'newVolumeConfiguration' smart constructor.+data VolumeConfiguration = VolumeConfiguration'+  { -- | The number of I\/O operations per second for the root volume that is+    -- attached to streaming session.+    iops :: Prelude.Maybe Prelude.Natural,+    -- | The size of the root volume that is attached to the streaming session.+    -- The root volume size is measured in GiBs.+    size :: Prelude.Maybe Prelude.Natural,+    -- | The throughput to provision for the root volume that is attached to the+    -- streaming session. The throughput is measured in MiB\/s.+    throughput :: Prelude.Maybe Prelude.Natural+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'VolumeConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'volumeConfiguration_iops' - The number of I\/O operations per second for the root volume that is+-- attached to streaming session.+--+-- 'size', 'volumeConfiguration_size' - The size of the root volume that is attached to the streaming session.+-- The root volume size is measured in GiBs.+--+-- 'throughput', 'volumeConfiguration_throughput' - The throughput to provision for the root volume that is attached to the+-- streaming session. The throughput is measured in MiB\/s.+newVolumeConfiguration ::+  VolumeConfiguration+newVolumeConfiguration =+  VolumeConfiguration'+    { iops = Prelude.Nothing,+      size = Prelude.Nothing,+      throughput = Prelude.Nothing+    }++-- | The number of I\/O operations per second for the root volume that is+-- attached to streaming session.+volumeConfiguration_iops :: Lens.Lens' VolumeConfiguration (Prelude.Maybe Prelude.Natural)+volumeConfiguration_iops = Lens.lens (\VolumeConfiguration' {iops} -> iops) (\s@VolumeConfiguration' {} a -> s {iops = a} :: VolumeConfiguration)++-- | The size of the root volume that is attached to the streaming session.+-- The root volume size is measured in GiBs.+volumeConfiguration_size :: Lens.Lens' VolumeConfiguration (Prelude.Maybe Prelude.Natural)+volumeConfiguration_size = Lens.lens (\VolumeConfiguration' {size} -> size) (\s@VolumeConfiguration' {} a -> s {size = a} :: VolumeConfiguration)++-- | The throughput to provision for the root volume that is attached to the+-- streaming session. The throughput is measured in MiB\/s.+volumeConfiguration_throughput :: Lens.Lens' VolumeConfiguration (Prelude.Maybe Prelude.Natural)+volumeConfiguration_throughput = Lens.lens (\VolumeConfiguration' {throughput} -> throughput) (\s@VolumeConfiguration' {} a -> s {throughput = a} :: VolumeConfiguration)++instance Data.FromJSON VolumeConfiguration where+  parseJSON =+    Data.withObject+      "VolumeConfiguration"+      ( \x ->+          VolumeConfiguration'+            Prelude.<$> (x Data..:? "iops")+            Prelude.<*> (x Data..:? "size")+            Prelude.<*> (x Data..:? "throughput")+      )++instance Prelude.Hashable VolumeConfiguration where+  hashWithSalt _salt VolumeConfiguration' {..} =+    _salt+      `Prelude.hashWithSalt` iops+      `Prelude.hashWithSalt` size+      `Prelude.hashWithSalt` throughput++instance Prelude.NFData VolumeConfiguration where+  rnf VolumeConfiguration' {..} =+    Prelude.rnf iops+      `Prelude.seq` Prelude.rnf size+      `Prelude.seq` Prelude.rnf throughput++instance Data.ToJSON VolumeConfiguration where+  toJSON VolumeConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("iops" Data..=) Prelude.<$> iops,+            ("size" Data..=) Prelude.<$> size,+            ("throughput" Data..=) Prelude.<$> throughput+          ]+      )
+ gen/Amazonka/Nimble/Types/VolumeRetentionMode.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.Nimble.Types.VolumeRetentionMode+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Nimble.Types.VolumeRetentionMode+  ( VolumeRetentionMode+      ( ..,+        VolumeRetentionMode_DELETE,+        VolumeRetentionMode_RETAIN+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype VolumeRetentionMode = VolumeRetentionMode'+  { fromVolumeRetentionMode ::+      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 VolumeRetentionMode_DELETE :: VolumeRetentionMode+pattern VolumeRetentionMode_DELETE = VolumeRetentionMode' "DELETE"++pattern VolumeRetentionMode_RETAIN :: VolumeRetentionMode+pattern VolumeRetentionMode_RETAIN = VolumeRetentionMode' "RETAIN"++{-# COMPLETE+  VolumeRetentionMode_DELETE,+  VolumeRetentionMode_RETAIN,+  VolumeRetentionMode'+  #-}
+ gen/Amazonka/Nimble/UntagResource.hs view
@@ -0,0 +1,165 @@+{-# 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.Nimble.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 tags for a resource.+module Amazonka.Nimble.UntagResource+  ( -- * Creating a Request+    UntagResource (..),+    newUntagResource,++    -- * Request Lenses+    untagResource_resourceArn,+    untagResource_tagKeys,++    -- * Destructuring the Response+    UntagResourceResponse (..),+    newUntagResourceResponse,++    -- * Response Lenses+    untagResourceResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Nimble.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'+  { -- | Identifies the Amazon Resource Name(ARN) key from which you are removing+    -- tags.+    resourceArn :: Prelude.Text,+    -- | One or more tag keys. Specify only the tag keys, not the tag values.+    tagKeys :: [Prelude.Text]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UntagResource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'resourceArn', 'untagResource_resourceArn' - Identifies the Amazon Resource Name(ARN) key from which you are removing+-- tags.+--+-- 'tagKeys', 'untagResource_tagKeys' - One or more tag keys. Specify only the tag keys, not the tag values.+newUntagResource ::+  -- | 'resourceArn'+  Prelude.Text ->+  UntagResource+newUntagResource pResourceArn_ =+  UntagResource'+    { resourceArn = pResourceArn_,+      tagKeys = Prelude.mempty+    }++-- | Identifies the Amazon Resource Name(ARN) key from which you are removing+-- tags.+untagResource_resourceArn :: Lens.Lens' UntagResource Prelude.Text+untagResource_resourceArn = Lens.lens (\UntagResource' {resourceArn} -> resourceArn) (\s@UntagResource' {} a -> s {resourceArn = a} :: UntagResource)++-- | One or more tag keys. Specify only the tag keys, not the tag values.+untagResource_tagKeys :: Lens.Lens' UntagResource [Prelude.Text]+untagResource_tagKeys = Lens.lens (\UntagResource' {tagKeys} -> tagKeys) (\s@UntagResource' {} a -> s {tagKeys = a} :: UntagResource) Prelude.. Lens.coerced++instance Core.AWSRequest UntagResource where+  type+    AWSResponse UntagResource =+      UntagResourceResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          UntagResourceResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UntagResource where+  hashWithSalt _salt UntagResource' {..} =+    _salt+      `Prelude.hashWithSalt` resourceArn+      `Prelude.hashWithSalt` tagKeys++instance Prelude.NFData UntagResource where+  rnf UntagResource' {..} =+    Prelude.rnf resourceArn+      `Prelude.seq` Prelude.rnf tagKeys++instance Data.ToHeaders UntagResource where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath UntagResource where+  toPath UntagResource' {..} =+    Prelude.mconcat+      ["/2020-08-01/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'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UntagResourceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpStatus', 'untagResourceResponse_httpStatus' - The response's http status code.+newUntagResourceResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UntagResourceResponse+newUntagResourceResponse pHttpStatus_ =+  UntagResourceResponse' {httpStatus = pHttpStatus_}++-- | The response's http status code.+untagResourceResponse_httpStatus :: Lens.Lens' UntagResourceResponse Prelude.Int+untagResourceResponse_httpStatus = Lens.lens (\UntagResourceResponse' {httpStatus} -> httpStatus) (\s@UntagResourceResponse' {} a -> s {httpStatus = a} :: UntagResourceResponse)++instance Prelude.NFData UntagResourceResponse where+  rnf UntagResourceResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/Nimble/UpdateLaunchProfile.hs view
@@ -0,0 +1,283 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Nimble.UpdateLaunchProfile+-- 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 a launch profile.+module Amazonka.Nimble.UpdateLaunchProfile+  ( -- * Creating a Request+    UpdateLaunchProfile (..),+    newUpdateLaunchProfile,++    -- * Request Lenses+    updateLaunchProfile_clientToken,+    updateLaunchProfile_description,+    updateLaunchProfile_launchProfileProtocolVersions,+    updateLaunchProfile_name,+    updateLaunchProfile_streamConfiguration,+    updateLaunchProfile_studioComponentIds,+    updateLaunchProfile_launchProfileId,+    updateLaunchProfile_studioId,++    -- * Destructuring the Response+    UpdateLaunchProfileResponse (..),+    newUpdateLaunchProfileResponse,++    -- * Response Lenses+    updateLaunchProfileResponse_launchProfile,+    updateLaunchProfileResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Nimble.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateLaunchProfile' smart constructor.+data UpdateLaunchProfile = UpdateLaunchProfile'+  { -- | Unique, case-sensitive identifier that you provide to ensure the+    -- idempotency of the request. If you don’t specify a client token, the+    -- Amazon Web Services SDK automatically generates a client token and uses+    -- it for the request to ensure idempotency.+    clientToken :: Prelude.Maybe Prelude.Text,+    -- | The description.+    description :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The version number of the protocol that is used by the launch profile.+    -- The only valid version is \"2021-03-31\".+    launchProfileProtocolVersions :: Prelude.Maybe [Prelude.Text],+    -- | The name for the launch profile.+    name :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | A configuration for a streaming session.+    streamConfiguration :: Prelude.Maybe StreamConfigurationCreate,+    -- | Unique identifiers for a collection of studio components that can be+    -- used with this launch profile.+    studioComponentIds :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),+    -- | The ID of the launch profile used to control access from the streaming+    -- session.+    launchProfileId :: Prelude.Text,+    -- | The studio ID.+    studioId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateLaunchProfile' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientToken', 'updateLaunchProfile_clientToken' - Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request. If you don’t specify a client token, the+-- Amazon Web Services SDK automatically generates a client token and uses+-- it for the request to ensure idempotency.+--+-- 'description', 'updateLaunchProfile_description' - The description.+--+-- 'launchProfileProtocolVersions', 'updateLaunchProfile_launchProfileProtocolVersions' - The version number of the protocol that is used by the launch profile.+-- The only valid version is \"2021-03-31\".+--+-- 'name', 'updateLaunchProfile_name' - The name for the launch profile.+--+-- 'streamConfiguration', 'updateLaunchProfile_streamConfiguration' - A configuration for a streaming session.+--+-- 'studioComponentIds', 'updateLaunchProfile_studioComponentIds' - Unique identifiers for a collection of studio components that can be+-- used with this launch profile.+--+-- 'launchProfileId', 'updateLaunchProfile_launchProfileId' - The ID of the launch profile used to control access from the streaming+-- session.+--+-- 'studioId', 'updateLaunchProfile_studioId' - The studio ID.+newUpdateLaunchProfile ::+  -- | 'launchProfileId'+  Prelude.Text ->+  -- | 'studioId'+  Prelude.Text ->+  UpdateLaunchProfile+newUpdateLaunchProfile pLaunchProfileId_ pStudioId_ =+  UpdateLaunchProfile'+    { clientToken = Prelude.Nothing,+      description = Prelude.Nothing,+      launchProfileProtocolVersions = Prelude.Nothing,+      name = Prelude.Nothing,+      streamConfiguration = Prelude.Nothing,+      studioComponentIds = Prelude.Nothing,+      launchProfileId = pLaunchProfileId_,+      studioId = pStudioId_+    }++-- | Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request. If you don’t specify a client token, the+-- Amazon Web Services SDK automatically generates a client token and uses+-- it for the request to ensure idempotency.+updateLaunchProfile_clientToken :: Lens.Lens' UpdateLaunchProfile (Prelude.Maybe Prelude.Text)+updateLaunchProfile_clientToken = Lens.lens (\UpdateLaunchProfile' {clientToken} -> clientToken) (\s@UpdateLaunchProfile' {} a -> s {clientToken = a} :: UpdateLaunchProfile)++-- | The description.+updateLaunchProfile_description :: Lens.Lens' UpdateLaunchProfile (Prelude.Maybe Prelude.Text)+updateLaunchProfile_description = Lens.lens (\UpdateLaunchProfile' {description} -> description) (\s@UpdateLaunchProfile' {} a -> s {description = a} :: UpdateLaunchProfile) Prelude.. Lens.mapping Data._Sensitive++-- | The version number of the protocol that is used by the launch profile.+-- The only valid version is \"2021-03-31\".+updateLaunchProfile_launchProfileProtocolVersions :: Lens.Lens' UpdateLaunchProfile (Prelude.Maybe [Prelude.Text])+updateLaunchProfile_launchProfileProtocolVersions = Lens.lens (\UpdateLaunchProfile' {launchProfileProtocolVersions} -> launchProfileProtocolVersions) (\s@UpdateLaunchProfile' {} a -> s {launchProfileProtocolVersions = a} :: UpdateLaunchProfile) Prelude.. Lens.mapping Lens.coerced++-- | The name for the launch profile.+updateLaunchProfile_name :: Lens.Lens' UpdateLaunchProfile (Prelude.Maybe Prelude.Text)+updateLaunchProfile_name = Lens.lens (\UpdateLaunchProfile' {name} -> name) (\s@UpdateLaunchProfile' {} a -> s {name = a} :: UpdateLaunchProfile) Prelude.. Lens.mapping Data._Sensitive++-- | A configuration for a streaming session.+updateLaunchProfile_streamConfiguration :: Lens.Lens' UpdateLaunchProfile (Prelude.Maybe StreamConfigurationCreate)+updateLaunchProfile_streamConfiguration = Lens.lens (\UpdateLaunchProfile' {streamConfiguration} -> streamConfiguration) (\s@UpdateLaunchProfile' {} a -> s {streamConfiguration = a} :: UpdateLaunchProfile)++-- | Unique identifiers for a collection of studio components that can be+-- used with this launch profile.+updateLaunchProfile_studioComponentIds :: Lens.Lens' UpdateLaunchProfile (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+updateLaunchProfile_studioComponentIds = Lens.lens (\UpdateLaunchProfile' {studioComponentIds} -> studioComponentIds) (\s@UpdateLaunchProfile' {} a -> s {studioComponentIds = a} :: UpdateLaunchProfile) Prelude.. Lens.mapping Lens.coerced++-- | The ID of the launch profile used to control access from the streaming+-- session.+updateLaunchProfile_launchProfileId :: Lens.Lens' UpdateLaunchProfile Prelude.Text+updateLaunchProfile_launchProfileId = Lens.lens (\UpdateLaunchProfile' {launchProfileId} -> launchProfileId) (\s@UpdateLaunchProfile' {} a -> s {launchProfileId = a} :: UpdateLaunchProfile)++-- | The studio ID.+updateLaunchProfile_studioId :: Lens.Lens' UpdateLaunchProfile Prelude.Text+updateLaunchProfile_studioId = Lens.lens (\UpdateLaunchProfile' {studioId} -> studioId) (\s@UpdateLaunchProfile' {} a -> s {studioId = a} :: UpdateLaunchProfile)++instance Core.AWSRequest UpdateLaunchProfile where+  type+    AWSResponse UpdateLaunchProfile =+      UpdateLaunchProfileResponse+  request overrides =+    Request.patchJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdateLaunchProfileResponse'+            Prelude.<$> (x Data..?> "launchProfile")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UpdateLaunchProfile where+  hashWithSalt _salt UpdateLaunchProfile' {..} =+    _salt+      `Prelude.hashWithSalt` clientToken+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` launchProfileProtocolVersions+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` streamConfiguration+      `Prelude.hashWithSalt` studioComponentIds+      `Prelude.hashWithSalt` launchProfileId+      `Prelude.hashWithSalt` studioId++instance Prelude.NFData UpdateLaunchProfile where+  rnf UpdateLaunchProfile' {..} =+    Prelude.rnf clientToken+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf launchProfileProtocolVersions+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf streamConfiguration+      `Prelude.seq` Prelude.rnf studioComponentIds+      `Prelude.seq` Prelude.rnf launchProfileId+      `Prelude.seq` Prelude.rnf studioId++instance Data.ToHeaders UpdateLaunchProfile where+  toHeaders UpdateLaunchProfile' {..} =+    Prelude.mconcat+      [ "X-Amz-Client-Token" Data.=# clientToken,+        "Content-Type"+          Data.=# ("application/x-amz-json-1.1" :: Prelude.ByteString)+      ]++instance Data.ToJSON UpdateLaunchProfile where+  toJSON UpdateLaunchProfile' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("description" Data..=) Prelude.<$> description,+            ("launchProfileProtocolVersions" Data..=)+              Prelude.<$> launchProfileProtocolVersions,+            ("name" Data..=) Prelude.<$> name,+            ("streamConfiguration" Data..=)+              Prelude.<$> streamConfiguration,+            ("studioComponentIds" Data..=)+              Prelude.<$> studioComponentIds+          ]+      )++instance Data.ToPath UpdateLaunchProfile where+  toPath UpdateLaunchProfile' {..} =+    Prelude.mconcat+      [ "/2020-08-01/studios/",+        Data.toBS studioId,+        "/launch-profiles/",+        Data.toBS launchProfileId+      ]++instance Data.ToQuery UpdateLaunchProfile where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateLaunchProfileResponse' smart constructor.+data UpdateLaunchProfileResponse = UpdateLaunchProfileResponse'+  { -- | The launch profile.+    launchProfile :: Prelude.Maybe LaunchProfile,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateLaunchProfileResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'launchProfile', 'updateLaunchProfileResponse_launchProfile' - The launch profile.+--+-- 'httpStatus', 'updateLaunchProfileResponse_httpStatus' - The response's http status code.+newUpdateLaunchProfileResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateLaunchProfileResponse+newUpdateLaunchProfileResponse pHttpStatus_ =+  UpdateLaunchProfileResponse'+    { launchProfile =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The launch profile.+updateLaunchProfileResponse_launchProfile :: Lens.Lens' UpdateLaunchProfileResponse (Prelude.Maybe LaunchProfile)+updateLaunchProfileResponse_launchProfile = Lens.lens (\UpdateLaunchProfileResponse' {launchProfile} -> launchProfile) (\s@UpdateLaunchProfileResponse' {} a -> s {launchProfile = a} :: UpdateLaunchProfileResponse)++-- | The response's http status code.+updateLaunchProfileResponse_httpStatus :: Lens.Lens' UpdateLaunchProfileResponse Prelude.Int+updateLaunchProfileResponse_httpStatus = Lens.lens (\UpdateLaunchProfileResponse' {httpStatus} -> httpStatus) (\s@UpdateLaunchProfileResponse' {} a -> s {httpStatus = a} :: UpdateLaunchProfileResponse)++instance Prelude.NFData UpdateLaunchProfileResponse where+  rnf UpdateLaunchProfileResponse' {..} =+    Prelude.rnf launchProfile+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Nimble/UpdateLaunchProfileMember.hs view
@@ -0,0 +1,247 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Nimble.UpdateLaunchProfileMember+-- 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 a user persona in launch profile membership.+module Amazonka.Nimble.UpdateLaunchProfileMember+  ( -- * Creating a Request+    UpdateLaunchProfileMember (..),+    newUpdateLaunchProfileMember,++    -- * Request Lenses+    updateLaunchProfileMember_clientToken,+    updateLaunchProfileMember_launchProfileId,+    updateLaunchProfileMember_persona,+    updateLaunchProfileMember_principalId,+    updateLaunchProfileMember_studioId,++    -- * Destructuring the Response+    UpdateLaunchProfileMemberResponse (..),+    newUpdateLaunchProfileMemberResponse,++    -- * Response Lenses+    updateLaunchProfileMemberResponse_member,+    updateLaunchProfileMemberResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Nimble.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateLaunchProfileMember' smart constructor.+data UpdateLaunchProfileMember = UpdateLaunchProfileMember'+  { -- | Unique, case-sensitive identifier that you provide to ensure the+    -- idempotency of the request. If you don’t specify a client token, the+    -- Amazon Web Services SDK automatically generates a client token and uses+    -- it for the request to ensure idempotency.+    clientToken :: Prelude.Maybe Prelude.Text,+    -- | The ID of the launch profile used to control access from the streaming+    -- session.+    launchProfileId :: Prelude.Text,+    -- | The persona.+    persona :: LaunchProfilePersona,+    -- | The principal ID. This currently supports a IAM Identity Center UserId.+    principalId :: Prelude.Text,+    -- | The studio ID.+    studioId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateLaunchProfileMember' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientToken', 'updateLaunchProfileMember_clientToken' - Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request. If you don’t specify a client token, the+-- Amazon Web Services SDK automatically generates a client token and uses+-- it for the request to ensure idempotency.+--+-- 'launchProfileId', 'updateLaunchProfileMember_launchProfileId' - The ID of the launch profile used to control access from the streaming+-- session.+--+-- 'persona', 'updateLaunchProfileMember_persona' - The persona.+--+-- 'principalId', 'updateLaunchProfileMember_principalId' - The principal ID. This currently supports a IAM Identity Center UserId.+--+-- 'studioId', 'updateLaunchProfileMember_studioId' - The studio ID.+newUpdateLaunchProfileMember ::+  -- | 'launchProfileId'+  Prelude.Text ->+  -- | 'persona'+  LaunchProfilePersona ->+  -- | 'principalId'+  Prelude.Text ->+  -- | 'studioId'+  Prelude.Text ->+  UpdateLaunchProfileMember+newUpdateLaunchProfileMember+  pLaunchProfileId_+  pPersona_+  pPrincipalId_+  pStudioId_ =+    UpdateLaunchProfileMember'+      { clientToken =+          Prelude.Nothing,+        launchProfileId = pLaunchProfileId_,+        persona = pPersona_,+        principalId = pPrincipalId_,+        studioId = pStudioId_+      }++-- | Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request. If you don’t specify a client token, the+-- Amazon Web Services SDK automatically generates a client token and uses+-- it for the request to ensure idempotency.+updateLaunchProfileMember_clientToken :: Lens.Lens' UpdateLaunchProfileMember (Prelude.Maybe Prelude.Text)+updateLaunchProfileMember_clientToken = Lens.lens (\UpdateLaunchProfileMember' {clientToken} -> clientToken) (\s@UpdateLaunchProfileMember' {} a -> s {clientToken = a} :: UpdateLaunchProfileMember)++-- | The ID of the launch profile used to control access from the streaming+-- session.+updateLaunchProfileMember_launchProfileId :: Lens.Lens' UpdateLaunchProfileMember Prelude.Text+updateLaunchProfileMember_launchProfileId = Lens.lens (\UpdateLaunchProfileMember' {launchProfileId} -> launchProfileId) (\s@UpdateLaunchProfileMember' {} a -> s {launchProfileId = a} :: UpdateLaunchProfileMember)++-- | The persona.+updateLaunchProfileMember_persona :: Lens.Lens' UpdateLaunchProfileMember LaunchProfilePersona+updateLaunchProfileMember_persona = Lens.lens (\UpdateLaunchProfileMember' {persona} -> persona) (\s@UpdateLaunchProfileMember' {} a -> s {persona = a} :: UpdateLaunchProfileMember)++-- | The principal ID. This currently supports a IAM Identity Center UserId.+updateLaunchProfileMember_principalId :: Lens.Lens' UpdateLaunchProfileMember Prelude.Text+updateLaunchProfileMember_principalId = Lens.lens (\UpdateLaunchProfileMember' {principalId} -> principalId) (\s@UpdateLaunchProfileMember' {} a -> s {principalId = a} :: UpdateLaunchProfileMember)++-- | The studio ID.+updateLaunchProfileMember_studioId :: Lens.Lens' UpdateLaunchProfileMember Prelude.Text+updateLaunchProfileMember_studioId = Lens.lens (\UpdateLaunchProfileMember' {studioId} -> studioId) (\s@UpdateLaunchProfileMember' {} a -> s {studioId = a} :: UpdateLaunchProfileMember)++instance Core.AWSRequest UpdateLaunchProfileMember where+  type+    AWSResponse UpdateLaunchProfileMember =+      UpdateLaunchProfileMemberResponse+  request overrides =+    Request.patchJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdateLaunchProfileMemberResponse'+            Prelude.<$> (x Data..?> "member")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UpdateLaunchProfileMember where+  hashWithSalt _salt UpdateLaunchProfileMember' {..} =+    _salt+      `Prelude.hashWithSalt` clientToken+      `Prelude.hashWithSalt` launchProfileId+      `Prelude.hashWithSalt` persona+      `Prelude.hashWithSalt` principalId+      `Prelude.hashWithSalt` studioId++instance Prelude.NFData UpdateLaunchProfileMember where+  rnf UpdateLaunchProfileMember' {..} =+    Prelude.rnf clientToken+      `Prelude.seq` Prelude.rnf launchProfileId+      `Prelude.seq` Prelude.rnf persona+      `Prelude.seq` Prelude.rnf principalId+      `Prelude.seq` Prelude.rnf studioId++instance Data.ToHeaders UpdateLaunchProfileMember where+  toHeaders UpdateLaunchProfileMember' {..} =+    Prelude.mconcat+      [ "X-Amz-Client-Token" Data.=# clientToken,+        "Content-Type"+          Data.=# ("application/x-amz-json-1.1" :: Prelude.ByteString)+      ]++instance Data.ToJSON UpdateLaunchProfileMember where+  toJSON UpdateLaunchProfileMember' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("persona" Data..= persona)]+      )++instance Data.ToPath UpdateLaunchProfileMember where+  toPath UpdateLaunchProfileMember' {..} =+    Prelude.mconcat+      [ "/2020-08-01/studios/",+        Data.toBS studioId,+        "/launch-profiles/",+        Data.toBS launchProfileId,+        "/membership/",+        Data.toBS principalId+      ]++instance Data.ToQuery UpdateLaunchProfileMember where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateLaunchProfileMemberResponse' smart constructor.+data UpdateLaunchProfileMemberResponse = UpdateLaunchProfileMemberResponse'+  { -- | The updated member.+    member :: Prelude.Maybe LaunchProfileMembership,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateLaunchProfileMemberResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'member', 'updateLaunchProfileMemberResponse_member' - The updated member.+--+-- 'httpStatus', 'updateLaunchProfileMemberResponse_httpStatus' - The response's http status code.+newUpdateLaunchProfileMemberResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateLaunchProfileMemberResponse+newUpdateLaunchProfileMemberResponse pHttpStatus_ =+  UpdateLaunchProfileMemberResponse'+    { member =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The updated member.+updateLaunchProfileMemberResponse_member :: Lens.Lens' UpdateLaunchProfileMemberResponse (Prelude.Maybe LaunchProfileMembership)+updateLaunchProfileMemberResponse_member = Lens.lens (\UpdateLaunchProfileMemberResponse' {member} -> member) (\s@UpdateLaunchProfileMemberResponse' {} a -> s {member = a} :: UpdateLaunchProfileMemberResponse)++-- | The response's http status code.+updateLaunchProfileMemberResponse_httpStatus :: Lens.Lens' UpdateLaunchProfileMemberResponse Prelude.Int+updateLaunchProfileMemberResponse_httpStatus = Lens.lens (\UpdateLaunchProfileMemberResponse' {httpStatus} -> httpStatus) (\s@UpdateLaunchProfileMemberResponse' {} a -> s {httpStatus = a} :: UpdateLaunchProfileMemberResponse)++instance+  Prelude.NFData+    UpdateLaunchProfileMemberResponse+  where+  rnf UpdateLaunchProfileMemberResponse' {..} =+    Prelude.rnf member+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Nimble/UpdateStreamingImage.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.Nimble.UpdateStreamingImage+-- 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 streaming image.+module Amazonka.Nimble.UpdateStreamingImage+  ( -- * Creating a Request+    UpdateStreamingImage (..),+    newUpdateStreamingImage,++    -- * Request Lenses+    updateStreamingImage_clientToken,+    updateStreamingImage_description,+    updateStreamingImage_name,+    updateStreamingImage_streamingImageId,+    updateStreamingImage_studioId,++    -- * Destructuring the Response+    UpdateStreamingImageResponse (..),+    newUpdateStreamingImageResponse,++    -- * Response Lenses+    updateStreamingImageResponse_streamingImage,+    updateStreamingImageResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Nimble.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateStreamingImage' smart constructor.+data UpdateStreamingImage = UpdateStreamingImage'+  { -- | Unique, case-sensitive identifier that you provide to ensure the+    -- idempotency of the request. If you don’t specify a client token, the+    -- Amazon Web Services SDK automatically generates a client token and uses+    -- it for the request to ensure idempotency.+    clientToken :: Prelude.Maybe Prelude.Text,+    -- | The description.+    description :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The name for the streaming image.+    name :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The streaming image ID.+    streamingImageId :: Prelude.Text,+    -- | The studio ID.+    studioId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateStreamingImage' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientToken', 'updateStreamingImage_clientToken' - Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request. If you don’t specify a client token, the+-- Amazon Web Services SDK automatically generates a client token and uses+-- it for the request to ensure idempotency.+--+-- 'description', 'updateStreamingImage_description' - The description.+--+-- 'name', 'updateStreamingImage_name' - The name for the streaming image.+--+-- 'streamingImageId', 'updateStreamingImage_streamingImageId' - The streaming image ID.+--+-- 'studioId', 'updateStreamingImage_studioId' - The studio ID.+newUpdateStreamingImage ::+  -- | 'streamingImageId'+  Prelude.Text ->+  -- | 'studioId'+  Prelude.Text ->+  UpdateStreamingImage+newUpdateStreamingImage pStreamingImageId_ pStudioId_ =+  UpdateStreamingImage'+    { clientToken =+        Prelude.Nothing,+      description = Prelude.Nothing,+      name = Prelude.Nothing,+      streamingImageId = pStreamingImageId_,+      studioId = pStudioId_+    }++-- | Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request. If you don’t specify a client token, the+-- Amazon Web Services SDK automatically generates a client token and uses+-- it for the request to ensure idempotency.+updateStreamingImage_clientToken :: Lens.Lens' UpdateStreamingImage (Prelude.Maybe Prelude.Text)+updateStreamingImage_clientToken = Lens.lens (\UpdateStreamingImage' {clientToken} -> clientToken) (\s@UpdateStreamingImage' {} a -> s {clientToken = a} :: UpdateStreamingImage)++-- | The description.+updateStreamingImage_description :: Lens.Lens' UpdateStreamingImage (Prelude.Maybe Prelude.Text)+updateStreamingImage_description = Lens.lens (\UpdateStreamingImage' {description} -> description) (\s@UpdateStreamingImage' {} a -> s {description = a} :: UpdateStreamingImage) Prelude.. Lens.mapping Data._Sensitive++-- | The name for the streaming image.+updateStreamingImage_name :: Lens.Lens' UpdateStreamingImage (Prelude.Maybe Prelude.Text)+updateStreamingImage_name = Lens.lens (\UpdateStreamingImage' {name} -> name) (\s@UpdateStreamingImage' {} a -> s {name = a} :: UpdateStreamingImage) Prelude.. Lens.mapping Data._Sensitive++-- | The streaming image ID.+updateStreamingImage_streamingImageId :: Lens.Lens' UpdateStreamingImage Prelude.Text+updateStreamingImage_streamingImageId = Lens.lens (\UpdateStreamingImage' {streamingImageId} -> streamingImageId) (\s@UpdateStreamingImage' {} a -> s {streamingImageId = a} :: UpdateStreamingImage)++-- | The studio ID.+updateStreamingImage_studioId :: Lens.Lens' UpdateStreamingImage Prelude.Text+updateStreamingImage_studioId = Lens.lens (\UpdateStreamingImage' {studioId} -> studioId) (\s@UpdateStreamingImage' {} a -> s {studioId = a} :: UpdateStreamingImage)++instance Core.AWSRequest UpdateStreamingImage where+  type+    AWSResponse UpdateStreamingImage =+      UpdateStreamingImageResponse+  request overrides =+    Request.patchJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdateStreamingImageResponse'+            Prelude.<$> (x Data..?> "streamingImage")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UpdateStreamingImage where+  hashWithSalt _salt UpdateStreamingImage' {..} =+    _salt+      `Prelude.hashWithSalt` clientToken+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` streamingImageId+      `Prelude.hashWithSalt` studioId++instance Prelude.NFData UpdateStreamingImage where+  rnf UpdateStreamingImage' {..} =+    Prelude.rnf clientToken+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf streamingImageId+      `Prelude.seq` Prelude.rnf studioId++instance Data.ToHeaders UpdateStreamingImage where+  toHeaders UpdateStreamingImage' {..} =+    Prelude.mconcat+      [ "X-Amz-Client-Token" Data.=# clientToken,+        "Content-Type"+          Data.=# ("application/x-amz-json-1.1" :: Prelude.ByteString)+      ]++instance Data.ToJSON UpdateStreamingImage where+  toJSON UpdateStreamingImage' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("description" Data..=) Prelude.<$> description,+            ("name" Data..=) Prelude.<$> name+          ]+      )++instance Data.ToPath UpdateStreamingImage where+  toPath UpdateStreamingImage' {..} =+    Prelude.mconcat+      [ "/2020-08-01/studios/",+        Data.toBS studioId,+        "/streaming-images/",+        Data.toBS streamingImageId+      ]++instance Data.ToQuery UpdateStreamingImage where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateStreamingImageResponse' smart constructor.+data UpdateStreamingImageResponse = UpdateStreamingImageResponse'+  { streamingImage :: Prelude.Maybe StreamingImage,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateStreamingImageResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'streamingImage', 'updateStreamingImageResponse_streamingImage' - Undocumented member.+--+-- 'httpStatus', 'updateStreamingImageResponse_httpStatus' - The response's http status code.+newUpdateStreamingImageResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateStreamingImageResponse+newUpdateStreamingImageResponse pHttpStatus_ =+  UpdateStreamingImageResponse'+    { streamingImage =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Undocumented member.+updateStreamingImageResponse_streamingImage :: Lens.Lens' UpdateStreamingImageResponse (Prelude.Maybe StreamingImage)+updateStreamingImageResponse_streamingImage = Lens.lens (\UpdateStreamingImageResponse' {streamingImage} -> streamingImage) (\s@UpdateStreamingImageResponse' {} a -> s {streamingImage = a} :: UpdateStreamingImageResponse)++-- | The response's http status code.+updateStreamingImageResponse_httpStatus :: Lens.Lens' UpdateStreamingImageResponse Prelude.Int+updateStreamingImageResponse_httpStatus = Lens.lens (\UpdateStreamingImageResponse' {httpStatus} -> httpStatus) (\s@UpdateStreamingImageResponse' {} a -> s {httpStatus = a} :: UpdateStreamingImageResponse)++instance Prelude.NFData UpdateStreamingImageResponse where+  rnf UpdateStreamingImageResponse' {..} =+    Prelude.rnf streamingImage+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Nimble/UpdateStudio.hs view
@@ -0,0 +1,235 @@+{-# 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.Nimble.UpdateStudio+-- 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 a Studio resource.+--+-- Currently, this operation only supports updating the displayName of your+-- studio.+module Amazonka.Nimble.UpdateStudio+  ( -- * Creating a Request+    UpdateStudio (..),+    newUpdateStudio,++    -- * Request Lenses+    updateStudio_adminRoleArn,+    updateStudio_clientToken,+    updateStudio_displayName,+    updateStudio_userRoleArn,+    updateStudio_studioId,++    -- * Destructuring the Response+    UpdateStudioResponse (..),+    newUpdateStudioResponse,++    -- * Response Lenses+    updateStudioResponse_httpStatus,+    updateStudioResponse_studio,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Nimble.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateStudio' smart constructor.+data UpdateStudio = UpdateStudio'+  { -- | The IAM role that Studio Admins will assume when logging in to the+    -- Nimble Studio portal.+    adminRoleArn :: Prelude.Maybe Prelude.Text,+    -- | Unique, case-sensitive identifier that you provide to ensure the+    -- idempotency of the request. If you don’t specify a client token, the+    -- Amazon Web Services SDK automatically generates a client token and uses+    -- it for the request to ensure idempotency.+    clientToken :: Prelude.Maybe Prelude.Text,+    -- | A friendly name for the studio.+    displayName :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The IAM role that Studio Users will assume when logging in to the Nimble+    -- Studio portal.+    userRoleArn :: Prelude.Maybe Prelude.Text,+    -- | The studio ID.+    studioId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateStudio' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'adminRoleArn', 'updateStudio_adminRoleArn' - The IAM role that Studio Admins will assume when logging in to the+-- Nimble Studio portal.+--+-- 'clientToken', 'updateStudio_clientToken' - Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request. If you don’t specify a client token, the+-- Amazon Web Services SDK automatically generates a client token and uses+-- it for the request to ensure idempotency.+--+-- 'displayName', 'updateStudio_displayName' - A friendly name for the studio.+--+-- 'userRoleArn', 'updateStudio_userRoleArn' - The IAM role that Studio Users will assume when logging in to the Nimble+-- Studio portal.+--+-- 'studioId', 'updateStudio_studioId' - The studio ID.+newUpdateStudio ::+  -- | 'studioId'+  Prelude.Text ->+  UpdateStudio+newUpdateStudio pStudioId_ =+  UpdateStudio'+    { adminRoleArn = Prelude.Nothing,+      clientToken = Prelude.Nothing,+      displayName = Prelude.Nothing,+      userRoleArn = Prelude.Nothing,+      studioId = pStudioId_+    }++-- | The IAM role that Studio Admins will assume when logging in to the+-- Nimble Studio portal.+updateStudio_adminRoleArn :: Lens.Lens' UpdateStudio (Prelude.Maybe Prelude.Text)+updateStudio_adminRoleArn = Lens.lens (\UpdateStudio' {adminRoleArn} -> adminRoleArn) (\s@UpdateStudio' {} a -> s {adminRoleArn = a} :: UpdateStudio)++-- | Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request. If you don’t specify a client token, the+-- Amazon Web Services SDK automatically generates a client token and uses+-- it for the request to ensure idempotency.+updateStudio_clientToken :: Lens.Lens' UpdateStudio (Prelude.Maybe Prelude.Text)+updateStudio_clientToken = Lens.lens (\UpdateStudio' {clientToken} -> clientToken) (\s@UpdateStudio' {} a -> s {clientToken = a} :: UpdateStudio)++-- | A friendly name for the studio.+updateStudio_displayName :: Lens.Lens' UpdateStudio (Prelude.Maybe Prelude.Text)+updateStudio_displayName = Lens.lens (\UpdateStudio' {displayName} -> displayName) (\s@UpdateStudio' {} a -> s {displayName = a} :: UpdateStudio) Prelude.. Lens.mapping Data._Sensitive++-- | The IAM role that Studio Users will assume when logging in to the Nimble+-- Studio portal.+updateStudio_userRoleArn :: Lens.Lens' UpdateStudio (Prelude.Maybe Prelude.Text)+updateStudio_userRoleArn = Lens.lens (\UpdateStudio' {userRoleArn} -> userRoleArn) (\s@UpdateStudio' {} a -> s {userRoleArn = a} :: UpdateStudio)++-- | The studio ID.+updateStudio_studioId :: Lens.Lens' UpdateStudio Prelude.Text+updateStudio_studioId = Lens.lens (\UpdateStudio' {studioId} -> studioId) (\s@UpdateStudio' {} a -> s {studioId = a} :: UpdateStudio)++instance Core.AWSRequest UpdateStudio where+  type AWSResponse UpdateStudio = UpdateStudioResponse+  request overrides =+    Request.patchJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdateStudioResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "studio")+      )++instance Prelude.Hashable UpdateStudio where+  hashWithSalt _salt UpdateStudio' {..} =+    _salt+      `Prelude.hashWithSalt` adminRoleArn+      `Prelude.hashWithSalt` clientToken+      `Prelude.hashWithSalt` displayName+      `Prelude.hashWithSalt` userRoleArn+      `Prelude.hashWithSalt` studioId++instance Prelude.NFData UpdateStudio where+  rnf UpdateStudio' {..} =+    Prelude.rnf adminRoleArn+      `Prelude.seq` Prelude.rnf clientToken+      `Prelude.seq` Prelude.rnf displayName+      `Prelude.seq` Prelude.rnf userRoleArn+      `Prelude.seq` Prelude.rnf studioId++instance Data.ToHeaders UpdateStudio where+  toHeaders UpdateStudio' {..} =+    Prelude.mconcat+      [ "X-Amz-Client-Token" Data.=# clientToken,+        "Content-Type"+          Data.=# ("application/x-amz-json-1.1" :: Prelude.ByteString)+      ]++instance Data.ToJSON UpdateStudio where+  toJSON UpdateStudio' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("adminRoleArn" Data..=) Prelude.<$> adminRoleArn,+            ("displayName" Data..=) Prelude.<$> displayName,+            ("userRoleArn" Data..=) Prelude.<$> userRoleArn+          ]+      )++instance Data.ToPath UpdateStudio where+  toPath UpdateStudio' {..} =+    Prelude.mconcat+      ["/2020-08-01/studios/", Data.toBS studioId]++instance Data.ToQuery UpdateStudio where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateStudioResponse' smart constructor.+data UpdateStudioResponse = UpdateStudioResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | Information about a studio.+    studio :: Studio+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateStudioResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'updateStudioResponse_httpStatus' - The response's http status code.+--+-- 'studio', 'updateStudioResponse_studio' - Information about a studio.+newUpdateStudioResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'studio'+  Studio ->+  UpdateStudioResponse+newUpdateStudioResponse pHttpStatus_ pStudio_ =+  UpdateStudioResponse'+    { httpStatus = pHttpStatus_,+      studio = pStudio_+    }++-- | The response's http status code.+updateStudioResponse_httpStatus :: Lens.Lens' UpdateStudioResponse Prelude.Int+updateStudioResponse_httpStatus = Lens.lens (\UpdateStudioResponse' {httpStatus} -> httpStatus) (\s@UpdateStudioResponse' {} a -> s {httpStatus = a} :: UpdateStudioResponse)++-- | Information about a studio.+updateStudioResponse_studio :: Lens.Lens' UpdateStudioResponse Studio+updateStudioResponse_studio = Lens.lens (\UpdateStudioResponse' {studio} -> studio) (\s@UpdateStudioResponse' {} a -> s {studio = a} :: UpdateStudioResponse)++instance Prelude.NFData UpdateStudioResponse where+  rnf UpdateStudioResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf studio
+ gen/Amazonka/Nimble/UpdateStudioComponent.hs view
@@ -0,0 +1,356 @@+{-# 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.Nimble.UpdateStudioComponent+-- 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 a studio component resource.+module Amazonka.Nimble.UpdateStudioComponent+  ( -- * Creating a Request+    UpdateStudioComponent (..),+    newUpdateStudioComponent,++    -- * Request Lenses+    updateStudioComponent_clientToken,+    updateStudioComponent_configuration,+    updateStudioComponent_description,+    updateStudioComponent_ec2SecurityGroupIds,+    updateStudioComponent_initializationScripts,+    updateStudioComponent_name,+    updateStudioComponent_runtimeRoleArn,+    updateStudioComponent_scriptParameters,+    updateStudioComponent_secureInitializationRoleArn,+    updateStudioComponent_subtype,+    updateStudioComponent_type,+    updateStudioComponent_studioComponentId,+    updateStudioComponent_studioId,++    -- * Destructuring the Response+    UpdateStudioComponentResponse (..),+    newUpdateStudioComponentResponse,++    -- * Response Lenses+    updateStudioComponentResponse_studioComponent,+    updateStudioComponentResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Nimble.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateStudioComponent' smart constructor.+data UpdateStudioComponent = UpdateStudioComponent'+  { -- | Unique, case-sensitive identifier that you provide to ensure the+    -- idempotency of the request. If you don’t specify a client token, the+    -- Amazon Web Services SDK automatically generates a client token and uses+    -- it for the request to ensure idempotency.+    clientToken :: Prelude.Maybe Prelude.Text,+    -- | The configuration of the studio component, based on component type.+    configuration :: Prelude.Maybe StudioComponentConfiguration,+    -- | The description.+    description :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The EC2 security groups that control access to the studio component.+    ec2SecurityGroupIds :: Prelude.Maybe [Prelude.Text],+    -- | Initialization scripts for studio components.+    initializationScripts :: Prelude.Maybe [StudioComponentInitializationScript],+    -- | The name for the studio component.+    name :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | An IAM role attached to a Studio Component that gives the studio+    -- component access to Amazon Web Services resources at anytime while the+    -- instance is running.+    runtimeRoleArn :: Prelude.Maybe Prelude.Text,+    -- | Parameters for the studio component scripts.+    scriptParameters :: Prelude.Maybe (Data.Sensitive [ScriptParameterKeyValue]),+    -- | An IAM role attached to Studio Component when the system initialization+    -- script runs which give the studio component access to Amazon Web+    -- Services resources when the system initialization script runs.+    secureInitializationRoleArn :: Prelude.Maybe Prelude.Text,+    -- | The specific subtype of a studio component.+    subtype :: Prelude.Maybe StudioComponentSubtype,+    -- | The type of the studio component.+    type' :: Prelude.Maybe StudioComponentType,+    -- | The studio component ID.+    studioComponentId :: Prelude.Text,+    -- | The studio ID.+    studioId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateStudioComponent' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientToken', 'updateStudioComponent_clientToken' - Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request. If you don’t specify a client token, the+-- Amazon Web Services SDK automatically generates a client token and uses+-- it for the request to ensure idempotency.+--+-- 'configuration', 'updateStudioComponent_configuration' - The configuration of the studio component, based on component type.+--+-- 'description', 'updateStudioComponent_description' - The description.+--+-- 'ec2SecurityGroupIds', 'updateStudioComponent_ec2SecurityGroupIds' - The EC2 security groups that control access to the studio component.+--+-- 'initializationScripts', 'updateStudioComponent_initializationScripts' - Initialization scripts for studio components.+--+-- 'name', 'updateStudioComponent_name' - The name for the studio component.+--+-- 'runtimeRoleArn', 'updateStudioComponent_runtimeRoleArn' - An IAM role attached to a Studio Component that gives the studio+-- component access to Amazon Web Services resources at anytime while the+-- instance is running.+--+-- 'scriptParameters', 'updateStudioComponent_scriptParameters' - Parameters for the studio component scripts.+--+-- 'secureInitializationRoleArn', 'updateStudioComponent_secureInitializationRoleArn' - An IAM role attached to Studio Component when the system initialization+-- script runs which give the studio component access to Amazon Web+-- Services resources when the system initialization script runs.+--+-- 'subtype', 'updateStudioComponent_subtype' - The specific subtype of a studio component.+--+-- 'type'', 'updateStudioComponent_type' - The type of the studio component.+--+-- 'studioComponentId', 'updateStudioComponent_studioComponentId' - The studio component ID.+--+-- 'studioId', 'updateStudioComponent_studioId' - The studio ID.+newUpdateStudioComponent ::+  -- | 'studioComponentId'+  Prelude.Text ->+  -- | 'studioId'+  Prelude.Text ->+  UpdateStudioComponent+newUpdateStudioComponent+  pStudioComponentId_+  pStudioId_ =+    UpdateStudioComponent'+      { clientToken =+          Prelude.Nothing,+        configuration = Prelude.Nothing,+        description = Prelude.Nothing,+        ec2SecurityGroupIds = Prelude.Nothing,+        initializationScripts = Prelude.Nothing,+        name = Prelude.Nothing,+        runtimeRoleArn = Prelude.Nothing,+        scriptParameters = Prelude.Nothing,+        secureInitializationRoleArn = Prelude.Nothing,+        subtype = Prelude.Nothing,+        type' = Prelude.Nothing,+        studioComponentId = pStudioComponentId_,+        studioId = pStudioId_+      }++-- | Unique, case-sensitive identifier that you provide to ensure the+-- idempotency of the request. If you don’t specify a client token, the+-- Amazon Web Services SDK automatically generates a client token and uses+-- it for the request to ensure idempotency.+updateStudioComponent_clientToken :: Lens.Lens' UpdateStudioComponent (Prelude.Maybe Prelude.Text)+updateStudioComponent_clientToken = Lens.lens (\UpdateStudioComponent' {clientToken} -> clientToken) (\s@UpdateStudioComponent' {} a -> s {clientToken = a} :: UpdateStudioComponent)++-- | The configuration of the studio component, based on component type.+updateStudioComponent_configuration :: Lens.Lens' UpdateStudioComponent (Prelude.Maybe StudioComponentConfiguration)+updateStudioComponent_configuration = Lens.lens (\UpdateStudioComponent' {configuration} -> configuration) (\s@UpdateStudioComponent' {} a -> s {configuration = a} :: UpdateStudioComponent)++-- | The description.+updateStudioComponent_description :: Lens.Lens' UpdateStudioComponent (Prelude.Maybe Prelude.Text)+updateStudioComponent_description = Lens.lens (\UpdateStudioComponent' {description} -> description) (\s@UpdateStudioComponent' {} a -> s {description = a} :: UpdateStudioComponent) Prelude.. Lens.mapping Data._Sensitive++-- | The EC2 security groups that control access to the studio component.+updateStudioComponent_ec2SecurityGroupIds :: Lens.Lens' UpdateStudioComponent (Prelude.Maybe [Prelude.Text])+updateStudioComponent_ec2SecurityGroupIds = Lens.lens (\UpdateStudioComponent' {ec2SecurityGroupIds} -> ec2SecurityGroupIds) (\s@UpdateStudioComponent' {} a -> s {ec2SecurityGroupIds = a} :: UpdateStudioComponent) Prelude.. Lens.mapping Lens.coerced++-- | Initialization scripts for studio components.+updateStudioComponent_initializationScripts :: Lens.Lens' UpdateStudioComponent (Prelude.Maybe [StudioComponentInitializationScript])+updateStudioComponent_initializationScripts = Lens.lens (\UpdateStudioComponent' {initializationScripts} -> initializationScripts) (\s@UpdateStudioComponent' {} a -> s {initializationScripts = a} :: UpdateStudioComponent) Prelude.. Lens.mapping Lens.coerced++-- | The name for the studio component.+updateStudioComponent_name :: Lens.Lens' UpdateStudioComponent (Prelude.Maybe Prelude.Text)+updateStudioComponent_name = Lens.lens (\UpdateStudioComponent' {name} -> name) (\s@UpdateStudioComponent' {} a -> s {name = a} :: UpdateStudioComponent) Prelude.. Lens.mapping Data._Sensitive++-- | An IAM role attached to a Studio Component that gives the studio+-- component access to Amazon Web Services resources at anytime while the+-- instance is running.+updateStudioComponent_runtimeRoleArn :: Lens.Lens' UpdateStudioComponent (Prelude.Maybe Prelude.Text)+updateStudioComponent_runtimeRoleArn = Lens.lens (\UpdateStudioComponent' {runtimeRoleArn} -> runtimeRoleArn) (\s@UpdateStudioComponent' {} a -> s {runtimeRoleArn = a} :: UpdateStudioComponent)++-- | Parameters for the studio component scripts.+updateStudioComponent_scriptParameters :: Lens.Lens' UpdateStudioComponent (Prelude.Maybe [ScriptParameterKeyValue])+updateStudioComponent_scriptParameters = Lens.lens (\UpdateStudioComponent' {scriptParameters} -> scriptParameters) (\s@UpdateStudioComponent' {} a -> s {scriptParameters = a} :: UpdateStudioComponent) Prelude.. Lens.mapping (Data._Sensitive Prelude.. Lens.coerced)++-- | An IAM role attached to Studio Component when the system initialization+-- script runs which give the studio component access to Amazon Web+-- Services resources when the system initialization script runs.+updateStudioComponent_secureInitializationRoleArn :: Lens.Lens' UpdateStudioComponent (Prelude.Maybe Prelude.Text)+updateStudioComponent_secureInitializationRoleArn = Lens.lens (\UpdateStudioComponent' {secureInitializationRoleArn} -> secureInitializationRoleArn) (\s@UpdateStudioComponent' {} a -> s {secureInitializationRoleArn = a} :: UpdateStudioComponent)++-- | The specific subtype of a studio component.+updateStudioComponent_subtype :: Lens.Lens' UpdateStudioComponent (Prelude.Maybe StudioComponentSubtype)+updateStudioComponent_subtype = Lens.lens (\UpdateStudioComponent' {subtype} -> subtype) (\s@UpdateStudioComponent' {} a -> s {subtype = a} :: UpdateStudioComponent)++-- | The type of the studio component.+updateStudioComponent_type :: Lens.Lens' UpdateStudioComponent (Prelude.Maybe StudioComponentType)+updateStudioComponent_type = Lens.lens (\UpdateStudioComponent' {type'} -> type') (\s@UpdateStudioComponent' {} a -> s {type' = a} :: UpdateStudioComponent)++-- | The studio component ID.+updateStudioComponent_studioComponentId :: Lens.Lens' UpdateStudioComponent Prelude.Text+updateStudioComponent_studioComponentId = Lens.lens (\UpdateStudioComponent' {studioComponentId} -> studioComponentId) (\s@UpdateStudioComponent' {} a -> s {studioComponentId = a} :: UpdateStudioComponent)++-- | The studio ID.+updateStudioComponent_studioId :: Lens.Lens' UpdateStudioComponent Prelude.Text+updateStudioComponent_studioId = Lens.lens (\UpdateStudioComponent' {studioId} -> studioId) (\s@UpdateStudioComponent' {} a -> s {studioId = a} :: UpdateStudioComponent)++instance Core.AWSRequest UpdateStudioComponent where+  type+    AWSResponse UpdateStudioComponent =+      UpdateStudioComponentResponse+  request overrides =+    Request.patchJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdateStudioComponentResponse'+            Prelude.<$> (x Data..?> "studioComponent")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UpdateStudioComponent where+  hashWithSalt _salt UpdateStudioComponent' {..} =+    _salt+      `Prelude.hashWithSalt` clientToken+      `Prelude.hashWithSalt` configuration+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` ec2SecurityGroupIds+      `Prelude.hashWithSalt` initializationScripts+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` runtimeRoleArn+      `Prelude.hashWithSalt` scriptParameters+      `Prelude.hashWithSalt` secureInitializationRoleArn+      `Prelude.hashWithSalt` subtype+      `Prelude.hashWithSalt` type'+      `Prelude.hashWithSalt` studioComponentId+      `Prelude.hashWithSalt` studioId++instance Prelude.NFData UpdateStudioComponent where+  rnf UpdateStudioComponent' {..} =+    Prelude.rnf clientToken+      `Prelude.seq` Prelude.rnf configuration+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf ec2SecurityGroupIds+      `Prelude.seq` Prelude.rnf initializationScripts+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf runtimeRoleArn+      `Prelude.seq` Prelude.rnf scriptParameters+      `Prelude.seq` Prelude.rnf secureInitializationRoleArn+      `Prelude.seq` Prelude.rnf subtype+      `Prelude.seq` Prelude.rnf type'+      `Prelude.seq` Prelude.rnf studioComponentId+      `Prelude.seq` Prelude.rnf studioId++instance Data.ToHeaders UpdateStudioComponent where+  toHeaders UpdateStudioComponent' {..} =+    Prelude.mconcat+      [ "X-Amz-Client-Token" Data.=# clientToken,+        "Content-Type"+          Data.=# ("application/x-amz-json-1.1" :: Prelude.ByteString)+      ]++instance Data.ToJSON UpdateStudioComponent where+  toJSON UpdateStudioComponent' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("configuration" Data..=) Prelude.<$> configuration,+            ("description" Data..=) Prelude.<$> description,+            ("ec2SecurityGroupIds" Data..=)+              Prelude.<$> ec2SecurityGroupIds,+            ("initializationScripts" Data..=)+              Prelude.<$> initializationScripts,+            ("name" Data..=) Prelude.<$> name,+            ("runtimeRoleArn" Data..=)+              Prelude.<$> runtimeRoleArn,+            ("scriptParameters" Data..=)+              Prelude.<$> scriptParameters,+            ("secureInitializationRoleArn" Data..=)+              Prelude.<$> secureInitializationRoleArn,+            ("subtype" Data..=) Prelude.<$> subtype,+            ("type" Data..=) Prelude.<$> type'+          ]+      )++instance Data.ToPath UpdateStudioComponent where+  toPath UpdateStudioComponent' {..} =+    Prelude.mconcat+      [ "/2020-08-01/studios/",+        Data.toBS studioId,+        "/studio-components/",+        Data.toBS studioComponentId+      ]++instance Data.ToQuery UpdateStudioComponent where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateStudioComponentResponse' smart constructor.+data UpdateStudioComponentResponse = UpdateStudioComponentResponse'+  { -- | Information about the studio component.+    studioComponent :: Prelude.Maybe StudioComponent,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateStudioComponentResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'studioComponent', 'updateStudioComponentResponse_studioComponent' - Information about the studio component.+--+-- 'httpStatus', 'updateStudioComponentResponse_httpStatus' - The response's http status code.+newUpdateStudioComponentResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateStudioComponentResponse+newUpdateStudioComponentResponse pHttpStatus_ =+  UpdateStudioComponentResponse'+    { studioComponent =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Information about the studio component.+updateStudioComponentResponse_studioComponent :: Lens.Lens' UpdateStudioComponentResponse (Prelude.Maybe StudioComponent)+updateStudioComponentResponse_studioComponent = Lens.lens (\UpdateStudioComponentResponse' {studioComponent} -> studioComponent) (\s@UpdateStudioComponentResponse' {} a -> s {studioComponent = a} :: UpdateStudioComponentResponse)++-- | The response's http status code.+updateStudioComponentResponse_httpStatus :: Lens.Lens' UpdateStudioComponentResponse Prelude.Int+updateStudioComponentResponse_httpStatus = Lens.lens (\UpdateStudioComponentResponse' {httpStatus} -> httpStatus) (\s@UpdateStudioComponentResponse' {} a -> s {httpStatus = a} :: UpdateStudioComponentResponse)++instance Prelude.NFData UpdateStudioComponentResponse where+  rnf UpdateStudioComponentResponse' {..} =+    Prelude.rnf studioComponent+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Nimble/Waiters.hs view
@@ -0,0 +1,419 @@+{-# 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.Nimble.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.Nimble.Waiters where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Nimble.GetLaunchProfile+import Amazonka.Nimble.GetStreamingImage+import Amazonka.Nimble.GetStreamingSession+import Amazonka.Nimble.GetStreamingSessionStream+import Amazonka.Nimble.GetStudio+import Amazonka.Nimble.GetStudioComponent+import Amazonka.Nimble.Lens+import Amazonka.Nimble.Types+import qualified Amazonka.Prelude as Prelude++-- | Polls 'Amazonka.Nimble.GetLaunchProfile' every 5 seconds until a successful state is reached. An error is returned after 150 failed checks.+newLaunchProfileDeleted :: Core.Wait GetLaunchProfile+newLaunchProfileDeleted =+  Core.Wait+    { Core.name = "LaunchProfileDeleted",+      Core.attempts = 150,+      Core.delay = 5,+      Core.acceptors =+        [ Core.matchAll+            "DELETED"+            Core.AcceptSuccess+            ( getLaunchProfileResponse_launchProfile+                Prelude.. Lens._Just+                Prelude.. launchProfile_state+                Prelude.. Lens._Just+                Prelude.. Lens.to Data.toTextCI+            ),+          Core.matchAll+            "DELETE_FAILED"+            Core.AcceptFailure+            ( getLaunchProfileResponse_launchProfile+                Prelude.. Lens._Just+                Prelude.. launchProfile_state+                Prelude.. Lens._Just+                Prelude.. Lens.to Data.toTextCI+            )+        ]+    }++-- | Polls 'Amazonka.Nimble.GetLaunchProfile' every 5 seconds until a successful state is reached. An error is returned after 150 failed checks.+newLaunchProfileReady :: Core.Wait GetLaunchProfile+newLaunchProfileReady =+  Core.Wait+    { Core.name = "LaunchProfileReady",+      Core.attempts = 150,+      Core.delay = 5,+      Core.acceptors =+        [ Core.matchAll+            "READY"+            Core.AcceptSuccess+            ( getLaunchProfileResponse_launchProfile+                Prelude.. Lens._Just+                Prelude.. launchProfile_state+                Prelude.. Lens._Just+                Prelude.. Lens.to Data.toTextCI+            ),+          Core.matchAll+            "CREATE_FAILED"+            Core.AcceptFailure+            ( getLaunchProfileResponse_launchProfile+                Prelude.. Lens._Just+                Prelude.. launchProfile_state+                Prelude.. Lens._Just+                Prelude.. Lens.to Data.toTextCI+            ),+          Core.matchAll+            "UPDATE_FAILED"+            Core.AcceptFailure+            ( getLaunchProfileResponse_launchProfile+                Prelude.. Lens._Just+                Prelude.. launchProfile_state+                Prelude.. Lens._Just+                Prelude.. Lens.to Data.toTextCI+            )+        ]+    }++-- | Polls 'Amazonka.Nimble.GetStreamingImage' every 2 seconds until a successful state is reached. An error is returned after 60 failed checks.+newStreamingImageDeleted :: Core.Wait GetStreamingImage+newStreamingImageDeleted =+  Core.Wait+    { Core.name = "StreamingImageDeleted",+      Core.attempts = 60,+      Core.delay = 2,+      Core.acceptors =+        [ Core.matchAll+            "DELETED"+            Core.AcceptSuccess+            ( getStreamingImageResponse_streamingImage+                Prelude.. Lens._Just+                Prelude.. streamingImage_state+                Prelude.. Lens._Just+                Prelude.. Lens.to Data.toTextCI+            ),+          Core.matchAll+            "DELETE_FAILED"+            Core.AcceptFailure+            ( getStreamingImageResponse_streamingImage+                Prelude.. Lens._Just+                Prelude.. streamingImage_state+                Prelude.. Lens._Just+                Prelude.. Lens.to Data.toTextCI+            )+        ]+    }++-- | Polls 'Amazonka.Nimble.GetStreamingImage' every 2 seconds until a successful state is reached. An error is returned after 60 failed checks.+newStreamingImageReady :: Core.Wait GetStreamingImage+newStreamingImageReady =+  Core.Wait+    { Core.name = "StreamingImageReady",+      Core.attempts = 60,+      Core.delay = 2,+      Core.acceptors =+        [ Core.matchAll+            "READY"+            Core.AcceptSuccess+            ( getStreamingImageResponse_streamingImage+                Prelude.. Lens._Just+                Prelude.. streamingImage_state+                Prelude.. Lens._Just+                Prelude.. Lens.to Data.toTextCI+            ),+          Core.matchAll+            "CREATE_FAILED"+            Core.AcceptFailure+            ( getStreamingImageResponse_streamingImage+                Prelude.. Lens._Just+                Prelude.. streamingImage_state+                Prelude.. Lens._Just+                Prelude.. Lens.to Data.toTextCI+            ),+          Core.matchAll+            "UPDATE_FAILED"+            Core.AcceptFailure+            ( getStreamingImageResponse_streamingImage+                Prelude.. Lens._Just+                Prelude.. streamingImage_state+                Prelude.. Lens._Just+                Prelude.. Lens.to Data.toTextCI+            )+        ]+    }++-- | Polls 'Amazonka.Nimble.GetStreamingSession' every 5 seconds until a successful state is reached. An error is returned after 180 failed checks.+newStreamingSessionDeleted :: Core.Wait GetStreamingSession+newStreamingSessionDeleted =+  Core.Wait+    { Core.name = "StreamingSessionDeleted",+      Core.attempts = 180,+      Core.delay = 5,+      Core.acceptors =+        [ Core.matchAll+            "DELETED"+            Core.AcceptSuccess+            ( getStreamingSessionResponse_session+                Prelude.. Lens._Just+                Prelude.. streamingSession_state+                Prelude.. Lens._Just+                Prelude.. Lens.to Data.toTextCI+            ),+          Core.matchAll+            "DELETE_FAILED"+            Core.AcceptFailure+            ( getStreamingSessionResponse_session+                Prelude.. Lens._Just+                Prelude.. streamingSession_state+                Prelude.. Lens._Just+                Prelude.. Lens.to Data.toTextCI+            )+        ]+    }++-- | Polls 'Amazonka.Nimble.GetStreamingSession' every 10 seconds until a successful state is reached. An error is returned after 180 failed checks.+newStreamingSessionReady :: Core.Wait GetStreamingSession+newStreamingSessionReady =+  Core.Wait+    { Core.name = "StreamingSessionReady",+      Core.attempts = 180,+      Core.delay = 10,+      Core.acceptors =+        [ Core.matchAll+            "READY"+            Core.AcceptSuccess+            ( getStreamingSessionResponse_session+                Prelude.. Lens._Just+                Prelude.. streamingSession_state+                Prelude.. Lens._Just+                Prelude.. Lens.to Data.toTextCI+            ),+          Core.matchAll+            "CREATE_FAILED"+            Core.AcceptFailure+            ( getStreamingSessionResponse_session+                Prelude.. Lens._Just+                Prelude.. streamingSession_state+                Prelude.. Lens._Just+                Prelude.. Lens.to Data.toTextCI+            ),+          Core.matchAll+            "START_FAILED"+            Core.AcceptFailure+            ( getStreamingSessionResponse_session+                Prelude.. Lens._Just+                Prelude.. streamingSession_state+                Prelude.. Lens._Just+                Prelude.. Lens.to Data.toTextCI+            )+        ]+    }++-- | Polls 'Amazonka.Nimble.GetStreamingSession' every 5 seconds until a successful state is reached. An error is returned after 180 failed checks.+newStreamingSessionStopped :: Core.Wait GetStreamingSession+newStreamingSessionStopped =+  Core.Wait+    { Core.name = "StreamingSessionStopped",+      Core.attempts = 180,+      Core.delay = 5,+      Core.acceptors =+        [ Core.matchAll+            "STOPPED"+            Core.AcceptSuccess+            ( getStreamingSessionResponse_session+                Prelude.. Lens._Just+                Prelude.. streamingSession_state+                Prelude.. Lens._Just+                Prelude.. Lens.to Data.toTextCI+            ),+          Core.matchAll+            "STOP_FAILED"+            Core.AcceptFailure+            ( getStreamingSessionResponse_session+                Prelude.. Lens._Just+                Prelude.. streamingSession_state+                Prelude.. Lens._Just+                Prelude.. Lens.to Data.toTextCI+            )+        ]+    }++-- | Polls 'Amazonka.Nimble.GetStreamingSessionStream' every 5 seconds until a successful state is reached. An error is returned after 30 failed checks.+newStreamingSessionStreamReady :: Core.Wait GetStreamingSessionStream+newStreamingSessionStreamReady =+  Core.Wait+    { Core.name =+        "StreamingSessionStreamReady",+      Core.attempts = 30,+      Core.delay = 5,+      Core.acceptors =+        [ Core.matchAll+            "READY"+            Core.AcceptSuccess+            ( getStreamingSessionStreamResponse_stream+                Prelude.. Lens._Just+                Prelude.. streamingSessionStream_state+                Prelude.. Lens._Just+                Prelude.. Lens.to Data.toTextCI+            ),+          Core.matchAll+            "CREATE_FAILED"+            Core.AcceptFailure+            ( getStreamingSessionStreamResponse_stream+                Prelude.. Lens._Just+                Prelude.. streamingSessionStream_state+                Prelude.. Lens._Just+                Prelude.. Lens.to Data.toTextCI+            )+        ]+    }++-- | Polls 'Amazonka.Nimble.GetStudioComponent' every 1 seconds until a successful state is reached. An error is returned after 120 failed checks.+newStudioComponentDeleted :: Core.Wait GetStudioComponent+newStudioComponentDeleted =+  Core.Wait+    { Core.name = "StudioComponentDeleted",+      Core.attempts = 120,+      Core.delay = 1,+      Core.acceptors =+        [ Core.matchAll+            "DELETED"+            Core.AcceptSuccess+            ( getStudioComponentResponse_studioComponent+                Prelude.. Lens._Just+                Prelude.. studioComponent_state+                Prelude.. Lens._Just+                Prelude.. Lens.to Data.toTextCI+            ),+          Core.matchAll+            "DELETE_FAILED"+            Core.AcceptFailure+            ( getStudioComponentResponse_studioComponent+                Prelude.. Lens._Just+                Prelude.. studioComponent_state+                Prelude.. Lens._Just+                Prelude.. Lens.to Data.toTextCI+            )+        ]+    }++-- | Polls 'Amazonka.Nimble.GetStudioComponent' every 2 seconds until a successful state is reached. An error is returned after 60 failed checks.+newStudioComponentReady :: Core.Wait GetStudioComponent+newStudioComponentReady =+  Core.Wait+    { Core.name = "StudioComponentReady",+      Core.attempts = 60,+      Core.delay = 2,+      Core.acceptors =+        [ Core.matchAll+            "READY"+            Core.AcceptSuccess+            ( getStudioComponentResponse_studioComponent+                Prelude.. Lens._Just+                Prelude.. studioComponent_state+                Prelude.. Lens._Just+                Prelude.. Lens.to Data.toTextCI+            ),+          Core.matchAll+            "CREATE_FAILED"+            Core.AcceptFailure+            ( getStudioComponentResponse_studioComponent+                Prelude.. Lens._Just+                Prelude.. studioComponent_state+                Prelude.. Lens._Just+                Prelude.. Lens.to Data.toTextCI+            ),+          Core.matchAll+            "UPDATE_FAILED"+            Core.AcceptFailure+            ( getStudioComponentResponse_studioComponent+                Prelude.. Lens._Just+                Prelude.. studioComponent_state+                Prelude.. Lens._Just+                Prelude.. Lens.to Data.toTextCI+            )+        ]+    }++-- | Polls 'Amazonka.Nimble.GetStudio' every 2 seconds until a successful state is reached. An error is returned after 60 failed checks.+newStudioDeleted :: Core.Wait GetStudio+newStudioDeleted =+  Core.Wait+    { Core.name = "StudioDeleted",+      Core.attempts = 60,+      Core.delay = 2,+      Core.acceptors =+        [ Core.matchAll+            "DELETED"+            Core.AcceptSuccess+            ( getStudioResponse_studio+                Prelude.. studio_state+                Prelude.. Lens._Just+                Prelude.. Lens.to Data.toTextCI+            ),+          Core.matchAll+            "DELETE_FAILED"+            Core.AcceptFailure+            ( getStudioResponse_studio+                Prelude.. studio_state+                Prelude.. Lens._Just+                Prelude.. Lens.to Data.toTextCI+            )+        ]+    }++-- | Polls 'Amazonka.Nimble.GetStudio' every 2 seconds until a successful state is reached. An error is returned after 60 failed checks.+newStudioReady :: Core.Wait GetStudio+newStudioReady =+  Core.Wait+    { Core.name = "StudioReady",+      Core.attempts = 60,+      Core.delay = 2,+      Core.acceptors =+        [ Core.matchAll+            "READY"+            Core.AcceptSuccess+            ( getStudioResponse_studio+                Prelude.. studio_state+                Prelude.. Lens._Just+                Prelude.. Lens.to Data.toTextCI+            ),+          Core.matchAll+            "CREATE_FAILED"+            Core.AcceptFailure+            ( getStudioResponse_studio+                Prelude.. studio_state+                Prelude.. Lens._Just+                Prelude.. Lens.to Data.toTextCI+            ),+          Core.matchAll+            "UPDATE_FAILED"+            Core.AcceptFailure+            ( getStudioResponse_studio+                Prelude.. studio_state+                Prelude.. Lens._Just+                Prelude.. Lens.to Data.toTextCI+            )+        ]+    }
+ 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.Nimble+import Test.Amazonka.Nimble.Internal+import Test.Tasty++main :: IO ()+main =+  defaultMain $+    testGroup+      "Nimble"+      [ testGroup "tests" tests,+        testGroup "fixtures" fixtures+      ]
+ test/Test/Amazonka/Gen/Nimble.hs view
@@ -0,0 +1,1018 @@+{-# 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.Nimble+-- Copyright   : (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.Nimble where++import Amazonka.Nimble+import qualified Data.Proxy as Proxy+import Test.Amazonka.Fixture+import Test.Amazonka.Nimble.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"+--         [ requestAcceptEulas $+--             newAcceptEulas+--+--         , requestCreateLaunchProfile $+--             newCreateLaunchProfile+--+--         , requestCreateStreamingImage $+--             newCreateStreamingImage+--+--         , requestCreateStreamingSession $+--             newCreateStreamingSession+--+--         , requestCreateStreamingSessionStream $+--             newCreateStreamingSessionStream+--+--         , requestCreateStudio $+--             newCreateStudio+--+--         , requestCreateStudioComponent $+--             newCreateStudioComponent+--+--         , requestDeleteLaunchProfile $+--             newDeleteLaunchProfile+--+--         , requestDeleteLaunchProfileMember $+--             newDeleteLaunchProfileMember+--+--         , requestDeleteStreamingImage $+--             newDeleteStreamingImage+--+--         , requestDeleteStreamingSession $+--             newDeleteStreamingSession+--+--         , requestDeleteStudio $+--             newDeleteStudio+--+--         , requestDeleteStudioComponent $+--             newDeleteStudioComponent+--+--         , requestDeleteStudioMember $+--             newDeleteStudioMember+--+--         , requestGetEula $+--             newGetEula+--+--         , requestGetLaunchProfile $+--             newGetLaunchProfile+--+--         , requestGetLaunchProfileDetails $+--             newGetLaunchProfileDetails+--+--         , requestGetLaunchProfileInitialization $+--             newGetLaunchProfileInitialization+--+--         , requestGetLaunchProfileMember $+--             newGetLaunchProfileMember+--+--         , requestGetStreamingImage $+--             newGetStreamingImage+--+--         , requestGetStreamingSession $+--             newGetStreamingSession+--+--         , requestGetStreamingSessionBackup $+--             newGetStreamingSessionBackup+--+--         , requestGetStreamingSessionStream $+--             newGetStreamingSessionStream+--+--         , requestGetStudio $+--             newGetStudio+--+--         , requestGetStudioComponent $+--             newGetStudioComponent+--+--         , requestGetStudioMember $+--             newGetStudioMember+--+--         , requestListEulaAcceptances $+--             newListEulaAcceptances+--+--         , requestListEulas $+--             newListEulas+--+--         , requestListLaunchProfileMembers $+--             newListLaunchProfileMembers+--+--         , requestListLaunchProfiles $+--             newListLaunchProfiles+--+--         , requestListStreamingImages $+--             newListStreamingImages+--+--         , requestListStreamingSessionBackups $+--             newListStreamingSessionBackups+--+--         , requestListStreamingSessions $+--             newListStreamingSessions+--+--         , requestListStudioComponents $+--             newListStudioComponents+--+--         , requestListStudioMembers $+--             newListStudioMembers+--+--         , requestListStudios $+--             newListStudios+--+--         , requestListTagsForResource $+--             newListTagsForResource+--+--         , requestPutLaunchProfileMembers $+--             newPutLaunchProfileMembers+--+--         , requestPutStudioMembers $+--             newPutStudioMembers+--+--         , requestStartStreamingSession $+--             newStartStreamingSession+--+--         , requestStartStudioSSOConfigurationRepair $+--             newStartStudioSSOConfigurationRepair+--+--         , requestStopStreamingSession $+--             newStopStreamingSession+--+--         , requestTagResource $+--             newTagResource+--+--         , requestUntagResource $+--             newUntagResource+--+--         , requestUpdateLaunchProfile $+--             newUpdateLaunchProfile+--+--         , requestUpdateLaunchProfileMember $+--             newUpdateLaunchProfileMember+--+--         , requestUpdateStreamingImage $+--             newUpdateStreamingImage+--+--         , requestUpdateStudio $+--             newUpdateStudio+--+--         , requestUpdateStudioComponent $+--             newUpdateStudioComponent+--+--           ]++--     , testGroup "response"+--         [ responseAcceptEulas $+--             newAcceptEulasResponse+--+--         , responseCreateLaunchProfile $+--             newCreateLaunchProfileResponse+--+--         , responseCreateStreamingImage $+--             newCreateStreamingImageResponse+--+--         , responseCreateStreamingSession $+--             newCreateStreamingSessionResponse+--+--         , responseCreateStreamingSessionStream $+--             newCreateStreamingSessionStreamResponse+--+--         , responseCreateStudio $+--             newCreateStudioResponse+--+--         , responseCreateStudioComponent $+--             newCreateStudioComponentResponse+--+--         , responseDeleteLaunchProfile $+--             newDeleteLaunchProfileResponse+--+--         , responseDeleteLaunchProfileMember $+--             newDeleteLaunchProfileMemberResponse+--+--         , responseDeleteStreamingImage $+--             newDeleteStreamingImageResponse+--+--         , responseDeleteStreamingSession $+--             newDeleteStreamingSessionResponse+--+--         , responseDeleteStudio $+--             newDeleteStudioResponse+--+--         , responseDeleteStudioComponent $+--             newDeleteStudioComponentResponse+--+--         , responseDeleteStudioMember $+--             newDeleteStudioMemberResponse+--+--         , responseGetEula $+--             newGetEulaResponse+--+--         , responseGetLaunchProfile $+--             newGetLaunchProfileResponse+--+--         , responseGetLaunchProfileDetails $+--             newGetLaunchProfileDetailsResponse+--+--         , responseGetLaunchProfileInitialization $+--             newGetLaunchProfileInitializationResponse+--+--         , responseGetLaunchProfileMember $+--             newGetLaunchProfileMemberResponse+--+--         , responseGetStreamingImage $+--             newGetStreamingImageResponse+--+--         , responseGetStreamingSession $+--             newGetStreamingSessionResponse+--+--         , responseGetStreamingSessionBackup $+--             newGetStreamingSessionBackupResponse+--+--         , responseGetStreamingSessionStream $+--             newGetStreamingSessionStreamResponse+--+--         , responseGetStudio $+--             newGetStudioResponse+--+--         , responseGetStudioComponent $+--             newGetStudioComponentResponse+--+--         , responseGetStudioMember $+--             newGetStudioMemberResponse+--+--         , responseListEulaAcceptances $+--             newListEulaAcceptancesResponse+--+--         , responseListEulas $+--             newListEulasResponse+--+--         , responseListLaunchProfileMembers $+--             newListLaunchProfileMembersResponse+--+--         , responseListLaunchProfiles $+--             newListLaunchProfilesResponse+--+--         , responseListStreamingImages $+--             newListStreamingImagesResponse+--+--         , responseListStreamingSessionBackups $+--             newListStreamingSessionBackupsResponse+--+--         , responseListStreamingSessions $+--             newListStreamingSessionsResponse+--+--         , responseListStudioComponents $+--             newListStudioComponentsResponse+--+--         , responseListStudioMembers $+--             newListStudioMembersResponse+--+--         , responseListStudios $+--             newListStudiosResponse+--+--         , responseListTagsForResource $+--             newListTagsForResourceResponse+--+--         , responsePutLaunchProfileMembers $+--             newPutLaunchProfileMembersResponse+--+--         , responsePutStudioMembers $+--             newPutStudioMembersResponse+--+--         , responseStartStreamingSession $+--             newStartStreamingSessionResponse+--+--         , responseStartStudioSSOConfigurationRepair $+--             newStartStudioSSOConfigurationRepairResponse+--+--         , responseStopStreamingSession $+--             newStopStreamingSessionResponse+--+--         , responseTagResource $+--             newTagResourceResponse+--+--         , responseUntagResource $+--             newUntagResourceResponse+--+--         , responseUpdateLaunchProfile $+--             newUpdateLaunchProfileResponse+--+--         , responseUpdateLaunchProfileMember $+--             newUpdateLaunchProfileMemberResponse+--+--         , responseUpdateStreamingImage $+--             newUpdateStreamingImageResponse+--+--         , responseUpdateStudio $+--             newUpdateStudioResponse+--+--         , responseUpdateStudioComponent $+--             newUpdateStudioComponentResponse+--+--           ]+--     ]++-- Requests++requestAcceptEulas :: AcceptEulas -> TestTree+requestAcceptEulas =+  req+    "AcceptEulas"+    "fixture/AcceptEulas.yaml"++requestCreateLaunchProfile :: CreateLaunchProfile -> TestTree+requestCreateLaunchProfile =+  req+    "CreateLaunchProfile"+    "fixture/CreateLaunchProfile.yaml"++requestCreateStreamingImage :: CreateStreamingImage -> TestTree+requestCreateStreamingImage =+  req+    "CreateStreamingImage"+    "fixture/CreateStreamingImage.yaml"++requestCreateStreamingSession :: CreateStreamingSession -> TestTree+requestCreateStreamingSession =+  req+    "CreateStreamingSession"+    "fixture/CreateStreamingSession.yaml"++requestCreateStreamingSessionStream :: CreateStreamingSessionStream -> TestTree+requestCreateStreamingSessionStream =+  req+    "CreateStreamingSessionStream"+    "fixture/CreateStreamingSessionStream.yaml"++requestCreateStudio :: CreateStudio -> TestTree+requestCreateStudio =+  req+    "CreateStudio"+    "fixture/CreateStudio.yaml"++requestCreateStudioComponent :: CreateStudioComponent -> TestTree+requestCreateStudioComponent =+  req+    "CreateStudioComponent"+    "fixture/CreateStudioComponent.yaml"++requestDeleteLaunchProfile :: DeleteLaunchProfile -> TestTree+requestDeleteLaunchProfile =+  req+    "DeleteLaunchProfile"+    "fixture/DeleteLaunchProfile.yaml"++requestDeleteLaunchProfileMember :: DeleteLaunchProfileMember -> TestTree+requestDeleteLaunchProfileMember =+  req+    "DeleteLaunchProfileMember"+    "fixture/DeleteLaunchProfileMember.yaml"++requestDeleteStreamingImage :: DeleteStreamingImage -> TestTree+requestDeleteStreamingImage =+  req+    "DeleteStreamingImage"+    "fixture/DeleteStreamingImage.yaml"++requestDeleteStreamingSession :: DeleteStreamingSession -> TestTree+requestDeleteStreamingSession =+  req+    "DeleteStreamingSession"+    "fixture/DeleteStreamingSession.yaml"++requestDeleteStudio :: DeleteStudio -> TestTree+requestDeleteStudio =+  req+    "DeleteStudio"+    "fixture/DeleteStudio.yaml"++requestDeleteStudioComponent :: DeleteStudioComponent -> TestTree+requestDeleteStudioComponent =+  req+    "DeleteStudioComponent"+    "fixture/DeleteStudioComponent.yaml"++requestDeleteStudioMember :: DeleteStudioMember -> TestTree+requestDeleteStudioMember =+  req+    "DeleteStudioMember"+    "fixture/DeleteStudioMember.yaml"++requestGetEula :: GetEula -> TestTree+requestGetEula =+  req+    "GetEula"+    "fixture/GetEula.yaml"++requestGetLaunchProfile :: GetLaunchProfile -> TestTree+requestGetLaunchProfile =+  req+    "GetLaunchProfile"+    "fixture/GetLaunchProfile.yaml"++requestGetLaunchProfileDetails :: GetLaunchProfileDetails -> TestTree+requestGetLaunchProfileDetails =+  req+    "GetLaunchProfileDetails"+    "fixture/GetLaunchProfileDetails.yaml"++requestGetLaunchProfileInitialization :: GetLaunchProfileInitialization -> TestTree+requestGetLaunchProfileInitialization =+  req+    "GetLaunchProfileInitialization"+    "fixture/GetLaunchProfileInitialization.yaml"++requestGetLaunchProfileMember :: GetLaunchProfileMember -> TestTree+requestGetLaunchProfileMember =+  req+    "GetLaunchProfileMember"+    "fixture/GetLaunchProfileMember.yaml"++requestGetStreamingImage :: GetStreamingImage -> TestTree+requestGetStreamingImage =+  req+    "GetStreamingImage"+    "fixture/GetStreamingImage.yaml"++requestGetStreamingSession :: GetStreamingSession -> TestTree+requestGetStreamingSession =+  req+    "GetStreamingSession"+    "fixture/GetStreamingSession.yaml"++requestGetStreamingSessionBackup :: GetStreamingSessionBackup -> TestTree+requestGetStreamingSessionBackup =+  req+    "GetStreamingSessionBackup"+    "fixture/GetStreamingSessionBackup.yaml"++requestGetStreamingSessionStream :: GetStreamingSessionStream -> TestTree+requestGetStreamingSessionStream =+  req+    "GetStreamingSessionStream"+    "fixture/GetStreamingSessionStream.yaml"++requestGetStudio :: GetStudio -> TestTree+requestGetStudio =+  req+    "GetStudio"+    "fixture/GetStudio.yaml"++requestGetStudioComponent :: GetStudioComponent -> TestTree+requestGetStudioComponent =+  req+    "GetStudioComponent"+    "fixture/GetStudioComponent.yaml"++requestGetStudioMember :: GetStudioMember -> TestTree+requestGetStudioMember =+  req+    "GetStudioMember"+    "fixture/GetStudioMember.yaml"++requestListEulaAcceptances :: ListEulaAcceptances -> TestTree+requestListEulaAcceptances =+  req+    "ListEulaAcceptances"+    "fixture/ListEulaAcceptances.yaml"++requestListEulas :: ListEulas -> TestTree+requestListEulas =+  req+    "ListEulas"+    "fixture/ListEulas.yaml"++requestListLaunchProfileMembers :: ListLaunchProfileMembers -> TestTree+requestListLaunchProfileMembers =+  req+    "ListLaunchProfileMembers"+    "fixture/ListLaunchProfileMembers.yaml"++requestListLaunchProfiles :: ListLaunchProfiles -> TestTree+requestListLaunchProfiles =+  req+    "ListLaunchProfiles"+    "fixture/ListLaunchProfiles.yaml"++requestListStreamingImages :: ListStreamingImages -> TestTree+requestListStreamingImages =+  req+    "ListStreamingImages"+    "fixture/ListStreamingImages.yaml"++requestListStreamingSessionBackups :: ListStreamingSessionBackups -> TestTree+requestListStreamingSessionBackups =+  req+    "ListStreamingSessionBackups"+    "fixture/ListStreamingSessionBackups.yaml"++requestListStreamingSessions :: ListStreamingSessions -> TestTree+requestListStreamingSessions =+  req+    "ListStreamingSessions"+    "fixture/ListStreamingSessions.yaml"++requestListStudioComponents :: ListStudioComponents -> TestTree+requestListStudioComponents =+  req+    "ListStudioComponents"+    "fixture/ListStudioComponents.yaml"++requestListStudioMembers :: ListStudioMembers -> TestTree+requestListStudioMembers =+  req+    "ListStudioMembers"+    "fixture/ListStudioMembers.yaml"++requestListStudios :: ListStudios -> TestTree+requestListStudios =+  req+    "ListStudios"+    "fixture/ListStudios.yaml"++requestListTagsForResource :: ListTagsForResource -> TestTree+requestListTagsForResource =+  req+    "ListTagsForResource"+    "fixture/ListTagsForResource.yaml"++requestPutLaunchProfileMembers :: PutLaunchProfileMembers -> TestTree+requestPutLaunchProfileMembers =+  req+    "PutLaunchProfileMembers"+    "fixture/PutLaunchProfileMembers.yaml"++requestPutStudioMembers :: PutStudioMembers -> TestTree+requestPutStudioMembers =+  req+    "PutStudioMembers"+    "fixture/PutStudioMembers.yaml"++requestStartStreamingSession :: StartStreamingSession -> TestTree+requestStartStreamingSession =+  req+    "StartStreamingSession"+    "fixture/StartStreamingSession.yaml"++requestStartStudioSSOConfigurationRepair :: StartStudioSSOConfigurationRepair -> TestTree+requestStartStudioSSOConfigurationRepair =+  req+    "StartStudioSSOConfigurationRepair"+    "fixture/StartStudioSSOConfigurationRepair.yaml"++requestStopStreamingSession :: StopStreamingSession -> TestTree+requestStopStreamingSession =+  req+    "StopStreamingSession"+    "fixture/StopStreamingSession.yaml"++requestTagResource :: TagResource -> TestTree+requestTagResource =+  req+    "TagResource"+    "fixture/TagResource.yaml"++requestUntagResource :: UntagResource -> TestTree+requestUntagResource =+  req+    "UntagResource"+    "fixture/UntagResource.yaml"++requestUpdateLaunchProfile :: UpdateLaunchProfile -> TestTree+requestUpdateLaunchProfile =+  req+    "UpdateLaunchProfile"+    "fixture/UpdateLaunchProfile.yaml"++requestUpdateLaunchProfileMember :: UpdateLaunchProfileMember -> TestTree+requestUpdateLaunchProfileMember =+  req+    "UpdateLaunchProfileMember"+    "fixture/UpdateLaunchProfileMember.yaml"++requestUpdateStreamingImage :: UpdateStreamingImage -> TestTree+requestUpdateStreamingImage =+  req+    "UpdateStreamingImage"+    "fixture/UpdateStreamingImage.yaml"++requestUpdateStudio :: UpdateStudio -> TestTree+requestUpdateStudio =+  req+    "UpdateStudio"+    "fixture/UpdateStudio.yaml"++requestUpdateStudioComponent :: UpdateStudioComponent -> TestTree+requestUpdateStudioComponent =+  req+    "UpdateStudioComponent"+    "fixture/UpdateStudioComponent.yaml"++-- Responses++responseAcceptEulas :: AcceptEulasResponse -> TestTree+responseAcceptEulas =+  res+    "AcceptEulasResponse"+    "fixture/AcceptEulasResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy AcceptEulas)++responseCreateLaunchProfile :: CreateLaunchProfileResponse -> TestTree+responseCreateLaunchProfile =+  res+    "CreateLaunchProfileResponse"+    "fixture/CreateLaunchProfileResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateLaunchProfile)++responseCreateStreamingImage :: CreateStreamingImageResponse -> TestTree+responseCreateStreamingImage =+  res+    "CreateStreamingImageResponse"+    "fixture/CreateStreamingImageResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateStreamingImage)++responseCreateStreamingSession :: CreateStreamingSessionResponse -> TestTree+responseCreateStreamingSession =+  res+    "CreateStreamingSessionResponse"+    "fixture/CreateStreamingSessionResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateStreamingSession)++responseCreateStreamingSessionStream :: CreateStreamingSessionStreamResponse -> TestTree+responseCreateStreamingSessionStream =+  res+    "CreateStreamingSessionStreamResponse"+    "fixture/CreateStreamingSessionStreamResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateStreamingSessionStream)++responseCreateStudio :: CreateStudioResponse -> TestTree+responseCreateStudio =+  res+    "CreateStudioResponse"+    "fixture/CreateStudioResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateStudio)++responseCreateStudioComponent :: CreateStudioComponentResponse -> TestTree+responseCreateStudioComponent =+  res+    "CreateStudioComponentResponse"+    "fixture/CreateStudioComponentResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateStudioComponent)++responseDeleteLaunchProfile :: DeleteLaunchProfileResponse -> TestTree+responseDeleteLaunchProfile =+  res+    "DeleteLaunchProfileResponse"+    "fixture/DeleteLaunchProfileResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteLaunchProfile)++responseDeleteLaunchProfileMember :: DeleteLaunchProfileMemberResponse -> TestTree+responseDeleteLaunchProfileMember =+  res+    "DeleteLaunchProfileMemberResponse"+    "fixture/DeleteLaunchProfileMemberResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteLaunchProfileMember)++responseDeleteStreamingImage :: DeleteStreamingImageResponse -> TestTree+responseDeleteStreamingImage =+  res+    "DeleteStreamingImageResponse"+    "fixture/DeleteStreamingImageResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteStreamingImage)++responseDeleteStreamingSession :: DeleteStreamingSessionResponse -> TestTree+responseDeleteStreamingSession =+  res+    "DeleteStreamingSessionResponse"+    "fixture/DeleteStreamingSessionResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteStreamingSession)++responseDeleteStudio :: DeleteStudioResponse -> TestTree+responseDeleteStudio =+  res+    "DeleteStudioResponse"+    "fixture/DeleteStudioResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteStudio)++responseDeleteStudioComponent :: DeleteStudioComponentResponse -> TestTree+responseDeleteStudioComponent =+  res+    "DeleteStudioComponentResponse"+    "fixture/DeleteStudioComponentResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteStudioComponent)++responseDeleteStudioMember :: DeleteStudioMemberResponse -> TestTree+responseDeleteStudioMember =+  res+    "DeleteStudioMemberResponse"+    "fixture/DeleteStudioMemberResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteStudioMember)++responseGetEula :: GetEulaResponse -> TestTree+responseGetEula =+  res+    "GetEulaResponse"+    "fixture/GetEulaResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetEula)++responseGetLaunchProfile :: GetLaunchProfileResponse -> TestTree+responseGetLaunchProfile =+  res+    "GetLaunchProfileResponse"+    "fixture/GetLaunchProfileResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetLaunchProfile)++responseGetLaunchProfileDetails :: GetLaunchProfileDetailsResponse -> TestTree+responseGetLaunchProfileDetails =+  res+    "GetLaunchProfileDetailsResponse"+    "fixture/GetLaunchProfileDetailsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetLaunchProfileDetails)++responseGetLaunchProfileInitialization :: GetLaunchProfileInitializationResponse -> TestTree+responseGetLaunchProfileInitialization =+  res+    "GetLaunchProfileInitializationResponse"+    "fixture/GetLaunchProfileInitializationResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetLaunchProfileInitialization)++responseGetLaunchProfileMember :: GetLaunchProfileMemberResponse -> TestTree+responseGetLaunchProfileMember =+  res+    "GetLaunchProfileMemberResponse"+    "fixture/GetLaunchProfileMemberResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetLaunchProfileMember)++responseGetStreamingImage :: GetStreamingImageResponse -> TestTree+responseGetStreamingImage =+  res+    "GetStreamingImageResponse"+    "fixture/GetStreamingImageResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetStreamingImage)++responseGetStreamingSession :: GetStreamingSessionResponse -> TestTree+responseGetStreamingSession =+  res+    "GetStreamingSessionResponse"+    "fixture/GetStreamingSessionResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetStreamingSession)++responseGetStreamingSessionBackup :: GetStreamingSessionBackupResponse -> TestTree+responseGetStreamingSessionBackup =+  res+    "GetStreamingSessionBackupResponse"+    "fixture/GetStreamingSessionBackupResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetStreamingSessionBackup)++responseGetStreamingSessionStream :: GetStreamingSessionStreamResponse -> TestTree+responseGetStreamingSessionStream =+  res+    "GetStreamingSessionStreamResponse"+    "fixture/GetStreamingSessionStreamResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetStreamingSessionStream)++responseGetStudio :: GetStudioResponse -> TestTree+responseGetStudio =+  res+    "GetStudioResponse"+    "fixture/GetStudioResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetStudio)++responseGetStudioComponent :: GetStudioComponentResponse -> TestTree+responseGetStudioComponent =+  res+    "GetStudioComponentResponse"+    "fixture/GetStudioComponentResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetStudioComponent)++responseGetStudioMember :: GetStudioMemberResponse -> TestTree+responseGetStudioMember =+  res+    "GetStudioMemberResponse"+    "fixture/GetStudioMemberResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetStudioMember)++responseListEulaAcceptances :: ListEulaAcceptancesResponse -> TestTree+responseListEulaAcceptances =+  res+    "ListEulaAcceptancesResponse"+    "fixture/ListEulaAcceptancesResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListEulaAcceptances)++responseListEulas :: ListEulasResponse -> TestTree+responseListEulas =+  res+    "ListEulasResponse"+    "fixture/ListEulasResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListEulas)++responseListLaunchProfileMembers :: ListLaunchProfileMembersResponse -> TestTree+responseListLaunchProfileMembers =+  res+    "ListLaunchProfileMembersResponse"+    "fixture/ListLaunchProfileMembersResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListLaunchProfileMembers)++responseListLaunchProfiles :: ListLaunchProfilesResponse -> TestTree+responseListLaunchProfiles =+  res+    "ListLaunchProfilesResponse"+    "fixture/ListLaunchProfilesResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListLaunchProfiles)++responseListStreamingImages :: ListStreamingImagesResponse -> TestTree+responseListStreamingImages =+  res+    "ListStreamingImagesResponse"+    "fixture/ListStreamingImagesResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListStreamingImages)++responseListStreamingSessionBackups :: ListStreamingSessionBackupsResponse -> TestTree+responseListStreamingSessionBackups =+  res+    "ListStreamingSessionBackupsResponse"+    "fixture/ListStreamingSessionBackupsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListStreamingSessionBackups)++responseListStreamingSessions :: ListStreamingSessionsResponse -> TestTree+responseListStreamingSessions =+  res+    "ListStreamingSessionsResponse"+    "fixture/ListStreamingSessionsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListStreamingSessions)++responseListStudioComponents :: ListStudioComponentsResponse -> TestTree+responseListStudioComponents =+  res+    "ListStudioComponentsResponse"+    "fixture/ListStudioComponentsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListStudioComponents)++responseListStudioMembers :: ListStudioMembersResponse -> TestTree+responseListStudioMembers =+  res+    "ListStudioMembersResponse"+    "fixture/ListStudioMembersResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListStudioMembers)++responseListStudios :: ListStudiosResponse -> TestTree+responseListStudios =+  res+    "ListStudiosResponse"+    "fixture/ListStudiosResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListStudios)++responseListTagsForResource :: ListTagsForResourceResponse -> TestTree+responseListTagsForResource =+  res+    "ListTagsForResourceResponse"+    "fixture/ListTagsForResourceResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListTagsForResource)++responsePutLaunchProfileMembers :: PutLaunchProfileMembersResponse -> TestTree+responsePutLaunchProfileMembers =+  res+    "PutLaunchProfileMembersResponse"+    "fixture/PutLaunchProfileMembersResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy PutLaunchProfileMembers)++responsePutStudioMembers :: PutStudioMembersResponse -> TestTree+responsePutStudioMembers =+  res+    "PutStudioMembersResponse"+    "fixture/PutStudioMembersResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy PutStudioMembers)++responseStartStreamingSession :: StartStreamingSessionResponse -> TestTree+responseStartStreamingSession =+  res+    "StartStreamingSessionResponse"+    "fixture/StartStreamingSessionResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy StartStreamingSession)++responseStartStudioSSOConfigurationRepair :: StartStudioSSOConfigurationRepairResponse -> TestTree+responseStartStudioSSOConfigurationRepair =+  res+    "StartStudioSSOConfigurationRepairResponse"+    "fixture/StartStudioSSOConfigurationRepairResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy StartStudioSSOConfigurationRepair)++responseStopStreamingSession :: StopStreamingSessionResponse -> TestTree+responseStopStreamingSession =+  res+    "StopStreamingSessionResponse"+    "fixture/StopStreamingSessionResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy StopStreamingSession)++responseTagResource :: TagResourceResponse -> TestTree+responseTagResource =+  res+    "TagResourceResponse"+    "fixture/TagResourceResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy TagResource)++responseUntagResource :: UntagResourceResponse -> TestTree+responseUntagResource =+  res+    "UntagResourceResponse"+    "fixture/UntagResourceResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UntagResource)++responseUpdateLaunchProfile :: UpdateLaunchProfileResponse -> TestTree+responseUpdateLaunchProfile =+  res+    "UpdateLaunchProfileResponse"+    "fixture/UpdateLaunchProfileResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateLaunchProfile)++responseUpdateLaunchProfileMember :: UpdateLaunchProfileMemberResponse -> TestTree+responseUpdateLaunchProfileMember =+  res+    "UpdateLaunchProfileMemberResponse"+    "fixture/UpdateLaunchProfileMemberResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateLaunchProfileMember)++responseUpdateStreamingImage :: UpdateStreamingImageResponse -> TestTree+responseUpdateStreamingImage =+  res+    "UpdateStreamingImageResponse"+    "fixture/UpdateStreamingImageResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateStreamingImage)++responseUpdateStudio :: UpdateStudioResponse -> TestTree+responseUpdateStudio =+  res+    "UpdateStudioResponse"+    "fixture/UpdateStudioResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateStudio)++responseUpdateStudioComponent :: UpdateStudioComponentResponse -> TestTree+responseUpdateStudioComponent =+  res+    "UpdateStudioComponentResponse"+    "fixture/UpdateStudioComponentResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateStudioComponent)
+ test/Test/Amazonka/Nimble.hs view
@@ -0,0 +1,20 @@+-- |+-- Module      : Test.Amazonka.Nimble+-- Copyright   : (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.Nimble+  ( tests,+    fixtures,+  )+where++import Test.Tasty (TestTree)++tests :: [TestTree]+tests = []++fixtures :: [TestTree]+fixtures = []
+ test/Test/Amazonka/Nimble/Internal.hs view
@@ -0,0 +1,8 @@+-- |+-- Module      : Test.Amazonka.Nimble.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.Nimble.Internal where