packages feed

amazonka-cloud9 (empty) → 1.6.0

raw patch · 44 files changed

+3143/−0 lines, 44 filesdep +amazonka-cloud9dep +amazonka-coredep +amazonka-testsetup-changed

Dependencies added: amazonka-cloud9, amazonka-core, amazonka-test, base, bytestring, 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,45 @@+# Amazon Cloud9 SDK++* [Version](#version)+* [Description](#description)+* [Contribute](#contribute)+* [Licence](#licence)+++## Version++`1.6.0`+++## Description++Documentation is available via [Hackage](http://hackage.haskell.org/package/amazonka-cloud9)+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 [Network.AWS.Cloud9](http://hackage.haskell.org/package/amazonka-cloud9/docs/Network-AWS-Cloud9.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-cloud9` 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.
+ Setup.hs view
@@ -0,0 +1,2 @@+import           Distribution.Simple+main = defaultMain
+ amazonka-cloud9.cabal view
@@ -0,0 +1,95 @@+name:                  amazonka-cloud9+version:               1.6.0+synopsis:              Amazon Cloud9 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>+copyright:             Copyright (c) 2013-2018 Brendan Hay+category:              Network, AWS, Cloud, Distributed Computing+build-type:            Simple+cabal-version:         >= 1.10+extra-source-files:    README.md fixture/*.yaml fixture/*.proto src/.gitkeep+description:+    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.+    .+    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+    such as <http://hackage.haskell.org/package/lens lens> or+    <http://hackage.haskell.org/package/lens-family-core lens-family-core>.+    .+    See "Network.AWS.Cloud9" or <https://aws.amazon.com/documentation/ the AWS documentation>+    to get started.++source-repository head+    type:              git+    location:          git://github.com/brendanhay/amazonka.git+    subdir:            amazonka-cloud9++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:+          Network.AWS.Cloud9+        , Network.AWS.Cloud9.CreateEnvironmentEC+        , Network.AWS.Cloud9.CreateEnvironmentMembership+        , Network.AWS.Cloud9.DeleteEnvironment+        , Network.AWS.Cloud9.DeleteEnvironmentMembership+        , Network.AWS.Cloud9.DescribeEnvironmentMemberships+        , Network.AWS.Cloud9.DescribeEnvironmentStatus+        , Network.AWS.Cloud9.DescribeEnvironments+        , Network.AWS.Cloud9.ListEnvironments+        , Network.AWS.Cloud9.Types+        , Network.AWS.Cloud9.UpdateEnvironment+        , Network.AWS.Cloud9.UpdateEnvironmentMembership+        , Network.AWS.Cloud9.Waiters++    other-modules:+          Network.AWS.Cloud9.Types.Product+        , Network.AWS.Cloud9.Types.Sum++    build-depends:+          amazonka-core == 1.6.0.*+        , base          >= 4.7     && < 5++test-suite amazonka-cloud9-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.AWS.Cloud9+        , Test.AWS.Gen.Cloud9+        , Test.AWS.Cloud9.Internal++    build-depends:+          amazonka-core == 1.6.0.*+        , amazonka-test == 1.6.0.*+        , amazonka-cloud9+        , base+        , bytestring+        , tasty+        , tasty-hunit+        , text+        , time+        , unordered-containers
+ fixture/CreateEnvironmentEC.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/cloud9/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  cloud9.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/CreateEnvironmentECResponse.proto view
+ fixture/CreateEnvironmentMembership.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/cloud9/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  cloud9.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/CreateEnvironmentMembershipResponse.proto view
+ fixture/DeleteEnvironment.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/cloud9/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  cloud9.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/DeleteEnvironmentMembership.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/cloud9/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  cloud9.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/DeleteEnvironmentMembershipResponse.proto view
+ fixture/DeleteEnvironmentResponse.proto view
+ fixture/DescribeEnvironmentMemberships.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/cloud9/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  cloud9.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/DescribeEnvironmentMembershipsResponse.proto view
+ fixture/DescribeEnvironmentStatus.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/cloud9/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  cloud9.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/DescribeEnvironmentStatusResponse.proto view
+ fixture/DescribeEnvironments.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/cloud9/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  cloud9.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/DescribeEnvironmentsResponse.proto view
+ fixture/ListEnvironments.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/cloud9/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  cloud9.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/ListEnvironmentsResponse.proto view
+ fixture/UpdateEnvironment.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/cloud9/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  cloud9.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/UpdateEnvironmentMembership.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/cloud9/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  cloud9.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/UpdateEnvironmentMembershipResponse.proto view
+ fixture/UpdateEnvironmentResponse.proto view
+ gen/Network/AWS/Cloud9.hs view
@@ -0,0 +1,184 @@+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.Cloud9+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- __AWS Cloud9__+--+-- AWS Cloud9 is a collection of tools that you can use to code, build, run, test, debug, and release software in the cloud.+--+-- For more information about AWS Cloud9, see the <https://docs.aws.amazon.com/cloud9/latest/user-guide AWS Cloud9 User Guide> .+--+-- AWS Cloud9 supports these operations:+--+--     * @CreateEnvironmentEC2@ : Creates an AWS Cloud9 development environment, launches an Amazon EC2 instance, and then connects from the instance to the environment.+--+--     * @CreateEnvironmentMembership@ : Adds an environment member to an environment.+--+--     * @DeleteEnvironment@ : Deletes an environment. If an Amazon EC2 instance is connected to the environment, also terminates the instance.+--+--     * @DeleteEnvironmentMembership@ : Deletes an environment member from an environment.+--+--     * @DescribeEnvironmentMemberships@ : Gets information about environment members for an environment.+--+--     * @DescribeEnvironments@ : Gets information about environments.+--+--     * @DescribeEnvironmentStatus@ : Gets status information for an environment.+--+--     * @ListEnvironments@ : Gets a list of environment identifiers.+--+--     * @UpdateEnvironment@ : Changes the settings of an existing environment.+--+--     * @UpdateEnvironmentMembership@ : Changes the settings of an existing environment member for an environment.+--+--+--+module Network.AWS.Cloud9+    (+    -- * Service Configuration+      cloud9++    -- * Errors+    -- $errors++    -- ** ConflictException+    , _ConflictException++    -- ** ForbiddenException+    , _ForbiddenException++    -- ** NotFoundException+    , _NotFoundException++    -- ** TooManyRequestsException+    , _TooManyRequestsException++    -- ** InternalServerErrorException+    , _InternalServerErrorException++    -- ** BadRequestException+    , _BadRequestException++    -- ** LimitExceededException+    , _LimitExceededException++    -- * Waiters+    -- $waiters++    -- * Operations+    -- $operations++    -- ** ListEnvironments (Paginated)+    , module Network.AWS.Cloud9.ListEnvironments++    -- ** UpdateEnvironment+    , module Network.AWS.Cloud9.UpdateEnvironment++    -- ** DeleteEnvironment+    , module Network.AWS.Cloud9.DeleteEnvironment++    -- ** DescribeEnvironmentStatus+    , module Network.AWS.Cloud9.DescribeEnvironmentStatus++    -- ** CreateEnvironmentEC+    , module Network.AWS.Cloud9.CreateEnvironmentEC++    -- ** CreateEnvironmentMembership+    , module Network.AWS.Cloud9.CreateEnvironmentMembership++    -- ** DescribeEnvironments+    , module Network.AWS.Cloud9.DescribeEnvironments++    -- ** DeleteEnvironmentMembership+    , module Network.AWS.Cloud9.DeleteEnvironmentMembership++    -- ** UpdateEnvironmentMembership+    , module Network.AWS.Cloud9.UpdateEnvironmentMembership++    -- ** DescribeEnvironmentMemberships (Paginated)+    , module Network.AWS.Cloud9.DescribeEnvironmentMemberships++    -- * Types++    -- ** EnvironmentStatus+    , EnvironmentStatus (..)++    -- ** EnvironmentType+    , EnvironmentType (..)++    -- ** MemberPermissions+    , MemberPermissions (..)++    -- ** Permissions+    , Permissions (..)++    -- ** Environment+    , Environment+    , environment+    , eArn+    , eOwnerARN+    , eName+    , eId+    , eType+    , eDescription++    -- ** EnvironmentMember+    , EnvironmentMember+    , environmentMember+    , emLastAccess+    , emUserId+    , emUserARN+    , emPermissions+    , emEnvironmentId+    ) where++import Network.AWS.Cloud9.CreateEnvironmentEC+import Network.AWS.Cloud9.CreateEnvironmentMembership+import Network.AWS.Cloud9.DeleteEnvironment+import Network.AWS.Cloud9.DeleteEnvironmentMembership+import Network.AWS.Cloud9.DescribeEnvironmentMemberships+import Network.AWS.Cloud9.DescribeEnvironments+import Network.AWS.Cloud9.DescribeEnvironmentStatus+import Network.AWS.Cloud9.ListEnvironments+import Network.AWS.Cloud9.Types+import Network.AWS.Cloud9.UpdateEnvironment+import Network.AWS.Cloud9.UpdateEnvironmentMembership+import Network.AWS.Cloud9.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 'Cloud9'.+-}++{- $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/Network/AWS/Cloud9/CreateEnvironmentEC.hs view
@@ -0,0 +1,200 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.Cloud9.CreateEnvironmentEC+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates an AWS Cloud9 development environment, launches an Amazon Elastic Compute Cloud (Amazon EC2) instance, and then connects from the instance to the environment.+--+--+module Network.AWS.Cloud9.CreateEnvironmentEC+    (+    -- * Creating a Request+      createEnvironmentEC+    , CreateEnvironmentEC+    -- * Request Lenses+    , ceecAutomaticStopTimeMinutes+    , ceecSubnetId+    , ceecOwnerARN+    , ceecClientRequestToken+    , ceecDescription+    , ceecName+    , ceecInstanceType++    -- * Destructuring the Response+    , createEnvironmentECResponse+    , CreateEnvironmentECResponse+    -- * Response Lenses+    , ceecrsEnvironmentId+    , ceecrsResponseStatus+    ) where++import Network.AWS.Cloud9.Types+import Network.AWS.Cloud9.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | /See:/ 'createEnvironmentEC' smart constructor.+data CreateEnvironmentEC = CreateEnvironmentEC'+  { _ceecAutomaticStopTimeMinutes :: !(Maybe Int)+  , _ceecSubnetId                 :: !(Maybe Text)+  , _ceecOwnerARN                 :: !(Maybe Text)+  , _ceecClientRequestToken       :: !(Maybe Text)+  , _ceecDescription              :: !(Maybe Text)+  , _ceecName                     :: !Text+  , _ceecInstanceType             :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'CreateEnvironmentEC' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ceecAutomaticStopTimeMinutes' - The number of minutes until the running instance is shut down after the environment has last been used.+--+-- * 'ceecSubnetId' - The ID of the subnet in Amazon VPC that AWS Cloud9 will use to communicate with the Amazon EC2 instance.+--+-- * 'ceecOwnerARN' - The Amazon Resource Name (ARN) of the environment owner. This ARN can be the ARN of any AWS IAM principal. If this value is not specified, the ARN defaults to this environment's creator.+--+-- * 'ceecClientRequestToken' - A unique, case-sensitive string that helps AWS Cloud9 to ensure this operation completes no more than one time. For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html Client Tokens> in the /Amazon EC2 API Reference/ .+--+-- * 'ceecDescription' - The description of the environment to create.+--+-- * 'ceecName' - The name of the environment to create. This name is visible to other AWS IAM users in the same AWS account.+--+-- * 'ceecInstanceType' - The type of instance to connect to the environment (for example, @t2.micro@ ).+createEnvironmentEC+    :: Text -- ^ 'ceecName'+    -> Text -- ^ 'ceecInstanceType'+    -> CreateEnvironmentEC+createEnvironmentEC pName_ pInstanceType_ =+  CreateEnvironmentEC'+    { _ceecAutomaticStopTimeMinutes = Nothing+    , _ceecSubnetId = Nothing+    , _ceecOwnerARN = Nothing+    , _ceecClientRequestToken = Nothing+    , _ceecDescription = Nothing+    , _ceecName = pName_+    , _ceecInstanceType = pInstanceType_+    }+++-- | The number of minutes until the running instance is shut down after the environment has last been used.+ceecAutomaticStopTimeMinutes :: Lens' CreateEnvironmentEC (Maybe Int)+ceecAutomaticStopTimeMinutes = lens _ceecAutomaticStopTimeMinutes (\ s a -> s{_ceecAutomaticStopTimeMinutes = a})++-- | The ID of the subnet in Amazon VPC that AWS Cloud9 will use to communicate with the Amazon EC2 instance.+ceecSubnetId :: Lens' CreateEnvironmentEC (Maybe Text)+ceecSubnetId = lens _ceecSubnetId (\ s a -> s{_ceecSubnetId = a})++-- | The Amazon Resource Name (ARN) of the environment owner. This ARN can be the ARN of any AWS IAM principal. If this value is not specified, the ARN defaults to this environment's creator.+ceecOwnerARN :: Lens' CreateEnvironmentEC (Maybe Text)+ceecOwnerARN = lens _ceecOwnerARN (\ s a -> s{_ceecOwnerARN = a})++-- | A unique, case-sensitive string that helps AWS Cloud9 to ensure this operation completes no more than one time. For more information, see <http://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html Client Tokens> in the /Amazon EC2 API Reference/ .+ceecClientRequestToken :: Lens' CreateEnvironmentEC (Maybe Text)+ceecClientRequestToken = lens _ceecClientRequestToken (\ s a -> s{_ceecClientRequestToken = a})++-- | The description of the environment to create.+ceecDescription :: Lens' CreateEnvironmentEC (Maybe Text)+ceecDescription = lens _ceecDescription (\ s a -> s{_ceecDescription = a})++-- | The name of the environment to create. This name is visible to other AWS IAM users in the same AWS account.+ceecName :: Lens' CreateEnvironmentEC Text+ceecName = lens _ceecName (\ s a -> s{_ceecName = a})++-- | The type of instance to connect to the environment (for example, @t2.micro@ ).+ceecInstanceType :: Lens' CreateEnvironmentEC Text+ceecInstanceType = lens _ceecInstanceType (\ s a -> s{_ceecInstanceType = a})++instance AWSRequest CreateEnvironmentEC where+        type Rs CreateEnvironmentEC =+             CreateEnvironmentECResponse+        request = postJSON cloud9+        response+          = receiveJSON+              (\ s h x ->+                 CreateEnvironmentECResponse' <$>+                   (x .?> "environmentId") <*> (pure (fromEnum s)))++instance Hashable CreateEnvironmentEC where++instance NFData CreateEnvironmentEC where++instance ToHeaders CreateEnvironmentEC where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("AWSCloud9WorkspaceManagementService.CreateEnvironmentEC"+                       :: ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON CreateEnvironmentEC where+        toJSON CreateEnvironmentEC'{..}+          = object+              (catMaybes+                 [("automaticStopTimeMinutes" .=) <$>+                    _ceecAutomaticStopTimeMinutes,+                  ("subnetId" .=) <$> _ceecSubnetId,+                  ("ownerArn" .=) <$> _ceecOwnerARN,+                  ("clientRequestToken" .=) <$>+                    _ceecClientRequestToken,+                  ("description" .=) <$> _ceecDescription,+                  Just ("name" .= _ceecName),+                  Just ("instanceType" .= _ceecInstanceType)])++instance ToPath CreateEnvironmentEC where+        toPath = const "/"++instance ToQuery CreateEnvironmentEC where+        toQuery = const mempty++-- | /See:/ 'createEnvironmentECResponse' smart constructor.+data CreateEnvironmentECResponse = CreateEnvironmentECResponse'+  { _ceecrsEnvironmentId  :: !(Maybe Text)+  , _ceecrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'CreateEnvironmentECResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ceecrsEnvironmentId' - The ID of the environment that was created.+--+-- * 'ceecrsResponseStatus' - -- | The response status code.+createEnvironmentECResponse+    :: Int -- ^ 'ceecrsResponseStatus'+    -> CreateEnvironmentECResponse+createEnvironmentECResponse pResponseStatus_ =+  CreateEnvironmentECResponse'+    {_ceecrsEnvironmentId = Nothing, _ceecrsResponseStatus = pResponseStatus_}+++-- | The ID of the environment that was created.+ceecrsEnvironmentId :: Lens' CreateEnvironmentECResponse (Maybe Text)+ceecrsEnvironmentId = lens _ceecrsEnvironmentId (\ s a -> s{_ceecrsEnvironmentId = a})++-- | -- | The response status code.+ceecrsResponseStatus :: Lens' CreateEnvironmentECResponse Int+ceecrsResponseStatus = lens _ceecrsResponseStatus (\ s a -> s{_ceecrsResponseStatus = a})++instance NFData CreateEnvironmentECResponse where
+ gen/Network/AWS/Cloud9/CreateEnvironmentMembership.hs view
@@ -0,0 +1,160 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.Cloud9.CreateEnvironmentMembership+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Adds an environment member to an AWS Cloud9 development environment.+--+--+module Network.AWS.Cloud9.CreateEnvironmentMembership+    (+    -- * Creating a Request+      createEnvironmentMembership+    , CreateEnvironmentMembership+    -- * Request Lenses+    , cemEnvironmentId+    , cemUserARN+    , cemPermissions++    -- * Destructuring the Response+    , createEnvironmentMembershipResponse+    , CreateEnvironmentMembershipResponse+    -- * Response Lenses+    , cemrsMembership+    , cemrsResponseStatus+    ) where++import Network.AWS.Cloud9.Types+import Network.AWS.Cloud9.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | /See:/ 'createEnvironmentMembership' smart constructor.+data CreateEnvironmentMembership = CreateEnvironmentMembership'+  { _cemEnvironmentId :: !Text+  , _cemUserARN       :: !Text+  , _cemPermissions   :: !MemberPermissions+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'CreateEnvironmentMembership' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cemEnvironmentId' - The ID of the environment that contains the environment member you want to add.+--+-- * 'cemUserARN' - The Amazon Resource Name (ARN) of the environment member you want to add.+--+-- * 'cemPermissions' - The type of environment member permissions you want to associate with this environment member. Available values include:     * @read-only@ : Has read-only access to the environment.     * @read-write@ : Has read-write access to the environment.+createEnvironmentMembership+    :: Text -- ^ 'cemEnvironmentId'+    -> Text -- ^ 'cemUserARN'+    -> MemberPermissions -- ^ 'cemPermissions'+    -> CreateEnvironmentMembership+createEnvironmentMembership pEnvironmentId_ pUserARN_ pPermissions_ =+  CreateEnvironmentMembership'+    { _cemEnvironmentId = pEnvironmentId_+    , _cemUserARN = pUserARN_+    , _cemPermissions = pPermissions_+    }+++-- | The ID of the environment that contains the environment member you want to add.+cemEnvironmentId :: Lens' CreateEnvironmentMembership Text+cemEnvironmentId = lens _cemEnvironmentId (\ s a -> s{_cemEnvironmentId = a})++-- | The Amazon Resource Name (ARN) of the environment member you want to add.+cemUserARN :: Lens' CreateEnvironmentMembership Text+cemUserARN = lens _cemUserARN (\ s a -> s{_cemUserARN = a})++-- | The type of environment member permissions you want to associate with this environment member. Available values include:     * @read-only@ : Has read-only access to the environment.     * @read-write@ : Has read-write access to the environment.+cemPermissions :: Lens' CreateEnvironmentMembership MemberPermissions+cemPermissions = lens _cemPermissions (\ s a -> s{_cemPermissions = a})++instance AWSRequest CreateEnvironmentMembership where+        type Rs CreateEnvironmentMembership =+             CreateEnvironmentMembershipResponse+        request = postJSON cloud9+        response+          = receiveJSON+              (\ s h x ->+                 CreateEnvironmentMembershipResponse' <$>+                   (x .?> "membership") <*> (pure (fromEnum s)))++instance Hashable CreateEnvironmentMembership where++instance NFData CreateEnvironmentMembership where++instance ToHeaders CreateEnvironmentMembership where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("AWSCloud9WorkspaceManagementService.CreateEnvironmentMembership"+                       :: ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON CreateEnvironmentMembership where+        toJSON CreateEnvironmentMembership'{..}+          = object+              (catMaybes+                 [Just ("environmentId" .= _cemEnvironmentId),+                  Just ("userArn" .= _cemUserARN),+                  Just ("permissions" .= _cemPermissions)])++instance ToPath CreateEnvironmentMembership where+        toPath = const "/"++instance ToQuery CreateEnvironmentMembership where+        toQuery = const mempty++-- | /See:/ 'createEnvironmentMembershipResponse' smart constructor.+data CreateEnvironmentMembershipResponse = CreateEnvironmentMembershipResponse'+  { _cemrsMembership     :: !(Maybe EnvironmentMember)+  , _cemrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'CreateEnvironmentMembershipResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cemrsMembership' - Information about the environment member that was added.+--+-- * 'cemrsResponseStatus' - -- | The response status code.+createEnvironmentMembershipResponse+    :: Int -- ^ 'cemrsResponseStatus'+    -> CreateEnvironmentMembershipResponse+createEnvironmentMembershipResponse pResponseStatus_ =+  CreateEnvironmentMembershipResponse'+    {_cemrsMembership = Nothing, _cemrsResponseStatus = pResponseStatus_}+++-- | Information about the environment member that was added.+cemrsMembership :: Lens' CreateEnvironmentMembershipResponse (Maybe EnvironmentMember)+cemrsMembership = lens _cemrsMembership (\ s a -> s{_cemrsMembership = a})++-- | -- | The response status code.+cemrsResponseStatus :: Lens' CreateEnvironmentMembershipResponse Int+cemrsResponseStatus = lens _cemrsResponseStatus (\ s a -> s{_cemrsResponseStatus = a})++instance NFData CreateEnvironmentMembershipResponse+         where
+ gen/Network/AWS/Cloud9/DeleteEnvironment.hs view
@@ -0,0 +1,124 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.Cloud9.DeleteEnvironment+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes an AWS Cloud9 development environment. If an Amazon EC2 instance is connected to the environment, also terminates the instance.+--+--+module Network.AWS.Cloud9.DeleteEnvironment+    (+    -- * Creating a Request+      deleteEnvironment+    , DeleteEnvironment+    -- * Request Lenses+    , deEnvironmentId++    -- * Destructuring the Response+    , deleteEnvironmentResponse+    , DeleteEnvironmentResponse+    -- * Response Lenses+    , dersResponseStatus+    ) where++import Network.AWS.Cloud9.Types+import Network.AWS.Cloud9.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | /See:/ 'deleteEnvironment' smart constructor.+newtype DeleteEnvironment = DeleteEnvironment'+  { _deEnvironmentId :: Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DeleteEnvironment' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'deEnvironmentId' - The ID of the environment to delete.+deleteEnvironment+    :: Text -- ^ 'deEnvironmentId'+    -> DeleteEnvironment+deleteEnvironment pEnvironmentId_ =+  DeleteEnvironment' {_deEnvironmentId = pEnvironmentId_}+++-- | The ID of the environment to delete.+deEnvironmentId :: Lens' DeleteEnvironment Text+deEnvironmentId = lens _deEnvironmentId (\ s a -> s{_deEnvironmentId = a})++instance AWSRequest DeleteEnvironment where+        type Rs DeleteEnvironment = DeleteEnvironmentResponse+        request = postJSON cloud9+        response+          = receiveEmpty+              (\ s h x ->+                 DeleteEnvironmentResponse' <$> (pure (fromEnum s)))++instance Hashable DeleteEnvironment where++instance NFData DeleteEnvironment where++instance ToHeaders DeleteEnvironment where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("AWSCloud9WorkspaceManagementService.DeleteEnvironment"+                       :: ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON DeleteEnvironment where+        toJSON DeleteEnvironment'{..}+          = object+              (catMaybes+                 [Just ("environmentId" .= _deEnvironmentId)])++instance ToPath DeleteEnvironment where+        toPath = const "/"++instance ToQuery DeleteEnvironment where+        toQuery = const mempty++-- | /See:/ 'deleteEnvironmentResponse' smart constructor.+newtype DeleteEnvironmentResponse = DeleteEnvironmentResponse'+  { _dersResponseStatus :: Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DeleteEnvironmentResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dersResponseStatus' - -- | The response status code.+deleteEnvironmentResponse+    :: Int -- ^ 'dersResponseStatus'+    -> DeleteEnvironmentResponse+deleteEnvironmentResponse pResponseStatus_ =+  DeleteEnvironmentResponse' {_dersResponseStatus = pResponseStatus_}+++-- | -- | The response status code.+dersResponseStatus :: Lens' DeleteEnvironmentResponse Int+dersResponseStatus = lens _dersResponseStatus (\ s a -> s{_dersResponseStatus = a})++instance NFData DeleteEnvironmentResponse where
+ gen/Network/AWS/Cloud9/DeleteEnvironmentMembership.hs view
@@ -0,0 +1,138 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.Cloud9.DeleteEnvironmentMembership+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes an environment member from an AWS Cloud9 development environment.+--+--+module Network.AWS.Cloud9.DeleteEnvironmentMembership+    (+    -- * Creating a Request+      deleteEnvironmentMembership+    , DeleteEnvironmentMembership+    -- * Request Lenses+    , demEnvironmentId+    , demUserARN++    -- * Destructuring the Response+    , deleteEnvironmentMembershipResponse+    , DeleteEnvironmentMembershipResponse+    -- * Response Lenses+    , demrsResponseStatus+    ) where++import Network.AWS.Cloud9.Types+import Network.AWS.Cloud9.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | /See:/ 'deleteEnvironmentMembership' smart constructor.+data DeleteEnvironmentMembership = DeleteEnvironmentMembership'+  { _demEnvironmentId :: !Text+  , _demUserARN       :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DeleteEnvironmentMembership' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'demEnvironmentId' - The ID of the environment to delete the environment member from.+--+-- * 'demUserARN' - The Amazon Resource Name (ARN) of the environment member to delete from the environment.+deleteEnvironmentMembership+    :: Text -- ^ 'demEnvironmentId'+    -> Text -- ^ 'demUserARN'+    -> DeleteEnvironmentMembership+deleteEnvironmentMembership pEnvironmentId_ pUserARN_ =+  DeleteEnvironmentMembership'+    {_demEnvironmentId = pEnvironmentId_, _demUserARN = pUserARN_}+++-- | The ID of the environment to delete the environment member from.+demEnvironmentId :: Lens' DeleteEnvironmentMembership Text+demEnvironmentId = lens _demEnvironmentId (\ s a -> s{_demEnvironmentId = a})++-- | The Amazon Resource Name (ARN) of the environment member to delete from the environment.+demUserARN :: Lens' DeleteEnvironmentMembership Text+demUserARN = lens _demUserARN (\ s a -> s{_demUserARN = a})++instance AWSRequest DeleteEnvironmentMembership where+        type Rs DeleteEnvironmentMembership =+             DeleteEnvironmentMembershipResponse+        request = postJSON cloud9+        response+          = receiveEmpty+              (\ s h x ->+                 DeleteEnvironmentMembershipResponse' <$>+                   (pure (fromEnum s)))++instance Hashable DeleteEnvironmentMembership where++instance NFData DeleteEnvironmentMembership where++instance ToHeaders DeleteEnvironmentMembership where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("AWSCloud9WorkspaceManagementService.DeleteEnvironmentMembership"+                       :: ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON DeleteEnvironmentMembership where+        toJSON DeleteEnvironmentMembership'{..}+          = object+              (catMaybes+                 [Just ("environmentId" .= _demEnvironmentId),+                  Just ("userArn" .= _demUserARN)])++instance ToPath DeleteEnvironmentMembership where+        toPath = const "/"++instance ToQuery DeleteEnvironmentMembership where+        toQuery = const mempty++-- | /See:/ 'deleteEnvironmentMembershipResponse' smart constructor.+newtype DeleteEnvironmentMembershipResponse = DeleteEnvironmentMembershipResponse'+  { _demrsResponseStatus :: Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DeleteEnvironmentMembershipResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'demrsResponseStatus' - -- | The response status code.+deleteEnvironmentMembershipResponse+    :: Int -- ^ 'demrsResponseStatus'+    -> DeleteEnvironmentMembershipResponse+deleteEnvironmentMembershipResponse pResponseStatus_ =+  DeleteEnvironmentMembershipResponse' {_demrsResponseStatus = pResponseStatus_}+++-- | -- | The response status code.+demrsResponseStatus :: Lens' DeleteEnvironmentMembershipResponse Int+demrsResponseStatus = lens _demrsResponseStatus (\ s a -> s{_demrsResponseStatus = a})++instance NFData DeleteEnvironmentMembershipResponse+         where
+ gen/Network/AWS/Cloud9/DescribeEnvironmentMemberships.hs view
@@ -0,0 +1,205 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.Cloud9.DescribeEnvironmentMemberships+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets information about environment members for an AWS Cloud9 development environment.+--+--+--+-- This operation returns paginated results.+module Network.AWS.Cloud9.DescribeEnvironmentMemberships+    (+    -- * Creating a Request+      describeEnvironmentMemberships+    , DescribeEnvironmentMemberships+    -- * Request Lenses+    , dUserARN+    , dNextToken+    , dPermissions+    , dEnvironmentId+    , dMaxResults++    -- * Destructuring the Response+    , describeEnvironmentMembershipsResponse+    , DescribeEnvironmentMembershipsResponse+    -- * Response Lenses+    , drsNextToken+    , drsMemberships+    , drsResponseStatus+    ) where++import Network.AWS.Cloud9.Types+import Network.AWS.Cloud9.Types.Product+import Network.AWS.Lens+import Network.AWS.Pager+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | /See:/ 'describeEnvironmentMemberships' smart constructor.+data DescribeEnvironmentMemberships = DescribeEnvironmentMemberships'+  { _dUserARN       :: !(Maybe Text)+  , _dNextToken     :: !(Maybe Text)+  , _dPermissions   :: !(Maybe [Permissions])+  , _dEnvironmentId :: !(Maybe Text)+  , _dMaxResults    :: !(Maybe Nat)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DescribeEnvironmentMemberships' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dUserARN' - The Amazon Resource Name (ARN) of an individual environment member to get information about. If no value is specified, information about all environment members are returned.+--+-- * 'dNextToken' - During a previous call, if there are more than 25 items in the list, only the first 25 items are returned, along with a unique string called a /next token/ . To get the next batch of items in the list, call this operation again, adding the next token to the call. To get all of the items in the list, keep calling this operation with each subsequent next token that is returned, until no more next tokens are returned.+--+-- * 'dPermissions' - The type of environment member permissions to get information about. Available values include:     * @owner@ : Owns the environment.     * @read-only@ : Has read-only access to the environment.     * @read-write@ : Has read-write access to the environment. If no value is specified, information about all environment members are returned.+--+-- * 'dEnvironmentId' - The ID of the environment to get environment member information about.+--+-- * 'dMaxResults' - The maximum number of environment members to get information about.+describeEnvironmentMemberships+    :: DescribeEnvironmentMemberships+describeEnvironmentMemberships =+  DescribeEnvironmentMemberships'+    { _dUserARN = Nothing+    , _dNextToken = Nothing+    , _dPermissions = Nothing+    , _dEnvironmentId = Nothing+    , _dMaxResults = Nothing+    }+++-- | The Amazon Resource Name (ARN) of an individual environment member to get information about. If no value is specified, information about all environment members are returned.+dUserARN :: Lens' DescribeEnvironmentMemberships (Maybe Text)+dUserARN = lens _dUserARN (\ s a -> s{_dUserARN = a})++-- | During a previous call, if there are more than 25 items in the list, only the first 25 items are returned, along with a unique string called a /next token/ . To get the next batch of items in the list, call this operation again, adding the next token to the call. To get all of the items in the list, keep calling this operation with each subsequent next token that is returned, until no more next tokens are returned.+dNextToken :: Lens' DescribeEnvironmentMemberships (Maybe Text)+dNextToken = lens _dNextToken (\ s a -> s{_dNextToken = a})++-- | The type of environment member permissions to get information about. Available values include:     * @owner@ : Owns the environment.     * @read-only@ : Has read-only access to the environment.     * @read-write@ : Has read-write access to the environment. If no value is specified, information about all environment members are returned.+dPermissions :: Lens' DescribeEnvironmentMemberships [Permissions]+dPermissions = lens _dPermissions (\ s a -> s{_dPermissions = a}) . _Default . _Coerce++-- | The ID of the environment to get environment member information about.+dEnvironmentId :: Lens' DescribeEnvironmentMemberships (Maybe Text)+dEnvironmentId = lens _dEnvironmentId (\ s a -> s{_dEnvironmentId = a})++-- | The maximum number of environment members to get information about.+dMaxResults :: Lens' DescribeEnvironmentMemberships (Maybe Natural)+dMaxResults = lens _dMaxResults (\ s a -> s{_dMaxResults = a}) . mapping _Nat++instance AWSPager DescribeEnvironmentMemberships+         where+        page rq rs+          | stop (rs ^. drsNextToken) = Nothing+          | stop (rs ^. drsMemberships) = Nothing+          | otherwise =+            Just $ rq & dNextToken .~ rs ^. drsNextToken++instance AWSRequest DescribeEnvironmentMemberships+         where+        type Rs DescribeEnvironmentMemberships =+             DescribeEnvironmentMembershipsResponse+        request = postJSON cloud9+        response+          = receiveJSON+              (\ s h x ->+                 DescribeEnvironmentMembershipsResponse' <$>+                   (x .?> "nextToken") <*>+                     (x .?> "memberships" .!@ mempty)+                     <*> (pure (fromEnum s)))++instance Hashable DescribeEnvironmentMemberships+         where++instance NFData DescribeEnvironmentMemberships where++instance ToHeaders DescribeEnvironmentMemberships+         where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("AWSCloud9WorkspaceManagementService.DescribeEnvironmentMemberships"+                       :: ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON DescribeEnvironmentMemberships where+        toJSON DescribeEnvironmentMemberships'{..}+          = object+              (catMaybes+                 [("userArn" .=) <$> _dUserARN,+                  ("nextToken" .=) <$> _dNextToken,+                  ("permissions" .=) <$> _dPermissions,+                  ("environmentId" .=) <$> _dEnvironmentId,+                  ("maxResults" .=) <$> _dMaxResults])++instance ToPath DescribeEnvironmentMemberships where+        toPath = const "/"++instance ToQuery DescribeEnvironmentMemberships where+        toQuery = const mempty++-- | /See:/ 'describeEnvironmentMembershipsResponse' smart constructor.+data DescribeEnvironmentMembershipsResponse = DescribeEnvironmentMembershipsResponse'+  { _drsNextToken      :: !(Maybe Text)+  , _drsMemberships    :: !(Maybe [EnvironmentMember])+  , _drsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DescribeEnvironmentMembershipsResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'drsNextToken' - If there are more than 25 items in the list, only the first 25 items are returned, along with a unique string called a /next token/ . To get the next batch of items in the list, call this operation again, adding the next token to the call.+--+-- * 'drsMemberships' - Information about the environment members for the environment.+--+-- * 'drsResponseStatus' - -- | The response status code.+describeEnvironmentMembershipsResponse+    :: Int -- ^ 'drsResponseStatus'+    -> DescribeEnvironmentMembershipsResponse+describeEnvironmentMembershipsResponse pResponseStatus_ =+  DescribeEnvironmentMembershipsResponse'+    { _drsNextToken = Nothing+    , _drsMemberships = Nothing+    , _drsResponseStatus = pResponseStatus_+    }+++-- | If there are more than 25 items in the list, only the first 25 items are returned, along with a unique string called a /next token/ . To get the next batch of items in the list, call this operation again, adding the next token to the call.+drsNextToken :: Lens' DescribeEnvironmentMembershipsResponse (Maybe Text)+drsNextToken = lens _drsNextToken (\ s a -> s{_drsNextToken = a})++-- | Information about the environment members for the environment.+drsMemberships :: Lens' DescribeEnvironmentMembershipsResponse [EnvironmentMember]+drsMemberships = lens _drsMemberships (\ s a -> s{_drsMemberships = a}) . _Default . _Coerce++-- | -- | The response status code.+drsResponseStatus :: Lens' DescribeEnvironmentMembershipsResponse Int+drsResponseStatus = lens _drsResponseStatus (\ s a -> s{_drsResponseStatus = a})++instance NFData+           DescribeEnvironmentMembershipsResponse+         where
+ gen/Network/AWS/Cloud9/DescribeEnvironmentStatus.hs view
@@ -0,0 +1,148 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.Cloud9.DescribeEnvironmentStatus+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets status information for an AWS Cloud9 development environment.+--+--+module Network.AWS.Cloud9.DescribeEnvironmentStatus+    (+    -- * Creating a Request+      describeEnvironmentStatus+    , DescribeEnvironmentStatus+    -- * Request Lenses+    , desEnvironmentId++    -- * Destructuring the Response+    , describeEnvironmentStatusResponse+    , DescribeEnvironmentStatusResponse+    -- * Response Lenses+    , desrsStatus+    , desrsMessage+    , desrsResponseStatus+    ) where++import Network.AWS.Cloud9.Types+import Network.AWS.Cloud9.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | /See:/ 'describeEnvironmentStatus' smart constructor.+newtype DescribeEnvironmentStatus = DescribeEnvironmentStatus'+  { _desEnvironmentId :: Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DescribeEnvironmentStatus' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'desEnvironmentId' - The ID of the environment to get status information about.+describeEnvironmentStatus+    :: Text -- ^ 'desEnvironmentId'+    -> DescribeEnvironmentStatus+describeEnvironmentStatus pEnvironmentId_ =+  DescribeEnvironmentStatus' {_desEnvironmentId = pEnvironmentId_}+++-- | The ID of the environment to get status information about.+desEnvironmentId :: Lens' DescribeEnvironmentStatus Text+desEnvironmentId = lens _desEnvironmentId (\ s a -> s{_desEnvironmentId = a})++instance AWSRequest DescribeEnvironmentStatus where+        type Rs DescribeEnvironmentStatus =+             DescribeEnvironmentStatusResponse+        request = postJSON cloud9+        response+          = receiveJSON+              (\ s h x ->+                 DescribeEnvironmentStatusResponse' <$>+                   (x .?> "status") <*> (x .?> "message") <*>+                     (pure (fromEnum s)))++instance Hashable DescribeEnvironmentStatus where++instance NFData DescribeEnvironmentStatus where++instance ToHeaders DescribeEnvironmentStatus where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("AWSCloud9WorkspaceManagementService.DescribeEnvironmentStatus"+                       :: ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON DescribeEnvironmentStatus where+        toJSON DescribeEnvironmentStatus'{..}+          = object+              (catMaybes+                 [Just ("environmentId" .= _desEnvironmentId)])++instance ToPath DescribeEnvironmentStatus where+        toPath = const "/"++instance ToQuery DescribeEnvironmentStatus where+        toQuery = const mempty++-- | /See:/ 'describeEnvironmentStatusResponse' smart constructor.+data DescribeEnvironmentStatusResponse = DescribeEnvironmentStatusResponse'+  { _desrsStatus         :: !(Maybe EnvironmentStatus)+  , _desrsMessage        :: !(Maybe Text)+  , _desrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DescribeEnvironmentStatusResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'desrsStatus' - The status of the environment. Available values include:     * @connecting@ : The environment is connecting.     * @creating@ : The environment is being created.     * @deleting@ : The environment is being deleted.     * @error@ : The environment is in an error state.     * @ready@ : The environment is ready.     * @stopped@ : The environment is stopped.     * @stopping@ : The environment is stopping.+--+-- * 'desrsMessage' - Any informational message about the status of the environment.+--+-- * 'desrsResponseStatus' - -- | The response status code.+describeEnvironmentStatusResponse+    :: Int -- ^ 'desrsResponseStatus'+    -> DescribeEnvironmentStatusResponse+describeEnvironmentStatusResponse pResponseStatus_ =+  DescribeEnvironmentStatusResponse'+    { _desrsStatus = Nothing+    , _desrsMessage = Nothing+    , _desrsResponseStatus = pResponseStatus_+    }+++-- | The status of the environment. Available values include:     * @connecting@ : The environment is connecting.     * @creating@ : The environment is being created.     * @deleting@ : The environment is being deleted.     * @error@ : The environment is in an error state.     * @ready@ : The environment is ready.     * @stopped@ : The environment is stopped.     * @stopping@ : The environment is stopping.+desrsStatus :: Lens' DescribeEnvironmentStatusResponse (Maybe EnvironmentStatus)+desrsStatus = lens _desrsStatus (\ s a -> s{_desrsStatus = a})++-- | Any informational message about the status of the environment.+desrsMessage :: Lens' DescribeEnvironmentStatusResponse (Maybe Text)+desrsMessage = lens _desrsMessage (\ s a -> s{_desrsMessage = a})++-- | -- | The response status code.+desrsResponseStatus :: Lens' DescribeEnvironmentStatusResponse Int+desrsResponseStatus = lens _desrsResponseStatus (\ s a -> s{_desrsResponseStatus = a})++instance NFData DescribeEnvironmentStatusResponse+         where
+ gen/Network/AWS/Cloud9/DescribeEnvironments.hs view
@@ -0,0 +1,136 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.Cloud9.DescribeEnvironments+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets information about AWS Cloud9 development environments.+--+--+module Network.AWS.Cloud9.DescribeEnvironments+    (+    -- * Creating a Request+      describeEnvironments+    , DescribeEnvironments+    -- * Request Lenses+    , deEnvironmentIds++    -- * Destructuring the Response+    , describeEnvironmentsResponse+    , DescribeEnvironmentsResponse+    -- * Response Lenses+    , deersEnvironments+    , deersResponseStatus+    ) where++import Network.AWS.Cloud9.Types+import Network.AWS.Cloud9.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | /See:/ 'describeEnvironments' smart constructor.+newtype DescribeEnvironments = DescribeEnvironments'+  { _deEnvironmentIds :: List1 Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DescribeEnvironments' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'deEnvironmentIds' - The IDs of individual environments to get information about.+describeEnvironments+    :: NonEmpty Text -- ^ 'deEnvironmentIds'+    -> DescribeEnvironments+describeEnvironments pEnvironmentIds_ =+  DescribeEnvironments' {_deEnvironmentIds = _List1 # pEnvironmentIds_}+++-- | The IDs of individual environments to get information about.+deEnvironmentIds :: Lens' DescribeEnvironments (NonEmpty Text)+deEnvironmentIds = lens _deEnvironmentIds (\ s a -> s{_deEnvironmentIds = a}) . _List1++instance AWSRequest DescribeEnvironments where+        type Rs DescribeEnvironments =+             DescribeEnvironmentsResponse+        request = postJSON cloud9+        response+          = receiveJSON+              (\ s h x ->+                 DescribeEnvironmentsResponse' <$>+                   (x .?> "environments" .!@ mempty) <*>+                     (pure (fromEnum s)))++instance Hashable DescribeEnvironments where++instance NFData DescribeEnvironments where++instance ToHeaders DescribeEnvironments where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("AWSCloud9WorkspaceManagementService.DescribeEnvironments"+                       :: ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON DescribeEnvironments where+        toJSON DescribeEnvironments'{..}+          = object+              (catMaybes+                 [Just ("environmentIds" .= _deEnvironmentIds)])++instance ToPath DescribeEnvironments where+        toPath = const "/"++instance ToQuery DescribeEnvironments where+        toQuery = const mempty++-- | /See:/ 'describeEnvironmentsResponse' smart constructor.+data DescribeEnvironmentsResponse = DescribeEnvironmentsResponse'+  { _deersEnvironments   :: !(Maybe [Environment])+  , _deersResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DescribeEnvironmentsResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'deersEnvironments' - Information about the environments that are returned.+--+-- * 'deersResponseStatus' - -- | The response status code.+describeEnvironmentsResponse+    :: Int -- ^ 'deersResponseStatus'+    -> DescribeEnvironmentsResponse+describeEnvironmentsResponse pResponseStatus_ =+  DescribeEnvironmentsResponse'+    {_deersEnvironments = Nothing, _deersResponseStatus = pResponseStatus_}+++-- | Information about the environments that are returned.+deersEnvironments :: Lens' DescribeEnvironmentsResponse [Environment]+deersEnvironments = lens _deersEnvironments (\ s a -> s{_deersEnvironments = a}) . _Default . _Coerce++-- | -- | The response status code.+deersResponseStatus :: Lens' DescribeEnvironmentsResponse Int+deersResponseStatus = lens _deersResponseStatus (\ s a -> s{_deersResponseStatus = a})++instance NFData DescribeEnvironmentsResponse where
+ gen/Network/AWS/Cloud9/ListEnvironments.hs view
@@ -0,0 +1,165 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.Cloud9.ListEnvironments+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets a list of AWS Cloud9 development environment identifiers.+--+--+--+-- This operation returns paginated results.+module Network.AWS.Cloud9.ListEnvironments+    (+    -- * Creating a Request+      listEnvironments+    , ListEnvironments+    -- * Request Lenses+    , leNextToken+    , leMaxResults++    -- * Destructuring the Response+    , listEnvironmentsResponse+    , ListEnvironmentsResponse+    -- * Response Lenses+    , lersEnvironmentIds+    , lersNextToken+    , lersResponseStatus+    ) where++import Network.AWS.Cloud9.Types+import Network.AWS.Cloud9.Types.Product+import Network.AWS.Lens+import Network.AWS.Pager+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | /See:/ 'listEnvironments' smart constructor.+data ListEnvironments = ListEnvironments'+  { _leNextToken  :: !(Maybe Text)+  , _leMaxResults :: !(Maybe Nat)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ListEnvironments' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'leNextToken' - During a previous call, if there are more than 25 items in the list, only the first 25 items are returned, along with a unique string called a /next token/ . To get the next batch of items in the list, call this operation again, adding the next token to the call. To get all of the items in the list, keep calling this operation with each subsequent next token that is returned, until no more next tokens are returned.+--+-- * 'leMaxResults' - The maximum number of environments to get identifiers for.+listEnvironments+    :: ListEnvironments+listEnvironments =+  ListEnvironments' {_leNextToken = Nothing, _leMaxResults = Nothing}+++-- | During a previous call, if there are more than 25 items in the list, only the first 25 items are returned, along with a unique string called a /next token/ . To get the next batch of items in the list, call this operation again, adding the next token to the call. To get all of the items in the list, keep calling this operation with each subsequent next token that is returned, until no more next tokens are returned.+leNextToken :: Lens' ListEnvironments (Maybe Text)+leNextToken = lens _leNextToken (\ s a -> s{_leNextToken = a})++-- | The maximum number of environments to get identifiers for.+leMaxResults :: Lens' ListEnvironments (Maybe Natural)+leMaxResults = lens _leMaxResults (\ s a -> s{_leMaxResults = a}) . mapping _Nat++instance AWSPager ListEnvironments where+        page rq rs+          | stop (rs ^. lersNextToken) = Nothing+          | stop (rs ^. lersEnvironmentIds) = Nothing+          | otherwise =+            Just $ rq & leNextToken .~ rs ^. lersNextToken++instance AWSRequest ListEnvironments where+        type Rs ListEnvironments = ListEnvironmentsResponse+        request = postJSON cloud9+        response+          = receiveJSON+              (\ s h x ->+                 ListEnvironmentsResponse' <$>+                   (x .?> "environmentIds" .!@ mempty) <*>+                     (x .?> "nextToken")+                     <*> (pure (fromEnum s)))++instance Hashable ListEnvironments where++instance NFData ListEnvironments where++instance ToHeaders ListEnvironments where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("AWSCloud9WorkspaceManagementService.ListEnvironments"+                       :: ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON ListEnvironments where+        toJSON ListEnvironments'{..}+          = object+              (catMaybes+                 [("nextToken" .=) <$> _leNextToken,+                  ("maxResults" .=) <$> _leMaxResults])++instance ToPath ListEnvironments where+        toPath = const "/"++instance ToQuery ListEnvironments where+        toQuery = const mempty++-- | /See:/ 'listEnvironmentsResponse' smart constructor.+data ListEnvironmentsResponse = ListEnvironmentsResponse'+  { _lersEnvironmentIds :: !(Maybe [Text])+  , _lersNextToken      :: !(Maybe Text)+  , _lersResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ListEnvironmentsResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lersEnvironmentIds' - The list of environment identifiers.+--+-- * 'lersNextToken' - If there are more than 25 items in the list, only the first 25 items are returned, along with a unique string called a /next token/ . To get the next batch of items in the list, call this operation again, adding the next token to the call.+--+-- * 'lersResponseStatus' - -- | The response status code.+listEnvironmentsResponse+    :: Int -- ^ 'lersResponseStatus'+    -> ListEnvironmentsResponse+listEnvironmentsResponse pResponseStatus_ =+  ListEnvironmentsResponse'+    { _lersEnvironmentIds = Nothing+    , _lersNextToken = Nothing+    , _lersResponseStatus = pResponseStatus_+    }+++-- | The list of environment identifiers.+lersEnvironmentIds :: Lens' ListEnvironmentsResponse [Text]+lersEnvironmentIds = lens _lersEnvironmentIds (\ s a -> s{_lersEnvironmentIds = a}) . _Default . _Coerce++-- | If there are more than 25 items in the list, only the first 25 items are returned, along with a unique string called a /next token/ . To get the next batch of items in the list, call this operation again, adding the next token to the call.+lersNextToken :: Lens' ListEnvironmentsResponse (Maybe Text)+lersNextToken = lens _lersNextToken (\ s a -> s{_lersNextToken = a})++-- | -- | The response status code.+lersResponseStatus :: Lens' ListEnvironmentsResponse Int+lersResponseStatus = lens _lersResponseStatus (\ s a -> s{_lersResponseStatus = a})++instance NFData ListEnvironmentsResponse where
+ gen/Network/AWS/Cloud9/Types.hs view
@@ -0,0 +1,152 @@+{-# LANGUAGE OverloadedStrings #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.Cloud9.Types+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Network.AWS.Cloud9.Types+    (+    -- * Service Configuration+      cloud9++    -- * Errors+    , _ConflictException+    , _ForbiddenException+    , _NotFoundException+    , _TooManyRequestsException+    , _InternalServerErrorException+    , _BadRequestException+    , _LimitExceededException++    -- * EnvironmentStatus+    , EnvironmentStatus (..)++    -- * EnvironmentType+    , EnvironmentType (..)++    -- * MemberPermissions+    , MemberPermissions (..)++    -- * Permissions+    , Permissions (..)++    -- * Environment+    , Environment+    , environment+    , eArn+    , eOwnerARN+    , eName+    , eId+    , eType+    , eDescription++    -- * EnvironmentMember+    , EnvironmentMember+    , environmentMember+    , emLastAccess+    , emUserId+    , emUserARN+    , emPermissions+    , emEnvironmentId+    ) where++import Network.AWS.Cloud9.Types.Product+import Network.AWS.Cloud9.Types.Sum+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Sign.V4++-- | API version @2017-09-23@ of the Amazon Cloud9 SDK configuration.+cloud9 :: Service+cloud9 =+  Service+    { _svcAbbrev = "Cloud9"+    , _svcSigner = v4+    , _svcPrefix = "cloud9"+    , _svcVersion = "2017-09-23"+    , _svcEndpoint = defaultEndpoint cloud9+    , _svcTimeout = Just 70+    , _svcCheck = statusSuccess+    , _svcError = parseJSONError "Cloud9"+    , _svcRetry = retry+    }+  where+    retry =+      Exponential+        { _retryBase = 5.0e-2+        , _retryGrowth = 2+        , _retryAttempts = 5+        , _retryCheck = check+        }+    check e+      | has (hasCode "ThrottledException" . hasStatus 400) e =+        Just "throttled_exception"+      | has (hasStatus 429) e = Just "too_many_requests"+      | has (hasCode "ThrottlingException" . hasStatus 400) e =+        Just "throttling_exception"+      | has (hasCode "Throttling" . hasStatus 400) e = Just "throttling"+      | has (hasStatus 504) e = Just "gateway_timeout"+      | has (hasCode "RequestThrottledException" . hasStatus 400) e =+        Just "request_throttled_exception"+      | has (hasStatus 502) e = Just "bad_gateway"+      | has (hasStatus 503) e = Just "service_unavailable"+      | has (hasStatus 500) e = Just "general_server_error"+      | has (hasStatus 509) e = Just "limit_exceeded"+      | otherwise = Nothing+++-- | A conflict occurred.+--+--+_ConflictException :: AsError a => Getting (First ServiceError) a ServiceError+_ConflictException = _MatchServiceError cloud9 "ConflictException"+++-- | An access permissions issue occurred.+--+--+_ForbiddenException :: AsError a => Getting (First ServiceError) a ServiceError+_ForbiddenException = _MatchServiceError cloud9 "ForbiddenException"+++-- | The target resource cannot be found.+--+--+_NotFoundException :: AsError a => Getting (First ServiceError) a ServiceError+_NotFoundException = _MatchServiceError cloud9 "NotFoundException"+++-- | Too many service requests were made over the given time period.+--+--+_TooManyRequestsException :: AsError a => Getting (First ServiceError) a ServiceError+_TooManyRequestsException = _MatchServiceError cloud9 "TooManyRequestsException"+++-- | An internal server error occurred.+--+--+_InternalServerErrorException :: AsError a => Getting (First ServiceError) a ServiceError+_InternalServerErrorException =+  _MatchServiceError cloud9 "InternalServerErrorException"+++-- | The target request is invalid.+--+--+_BadRequestException :: AsError a => Getting (First ServiceError) a ServiceError+_BadRequestException = _MatchServiceError cloud9 "BadRequestException"+++-- | A service limit was exceeded.+--+--+_LimitExceededException :: AsError a => Getting (First ServiceError) a ServiceError+_LimitExceededException = _MatchServiceError cloud9 "LimitExceededException"+
+ gen/Network/AWS/Cloud9/Types/Product.hs view
@@ -0,0 +1,177 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.Cloud9.Types.Product+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Network.AWS.Cloud9.Types.Product where++import Network.AWS.Cloud9.Types.Sum+import Network.AWS.Lens+import Network.AWS.Prelude++-- | Information about an AWS Cloud9 development environment.+--+--+--+-- /See:/ 'environment' smart constructor.+data Environment = Environment'+  { _eArn         :: !(Maybe Text)+  , _eOwnerARN    :: !(Maybe Text)+  , _eName        :: !(Maybe Text)+  , _eId          :: !(Maybe Text)+  , _eType        :: !(Maybe EnvironmentType)+  , _eDescription :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Environment' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'eArn' - The Amazon Resource Name (ARN) of the environment.+--+-- * 'eOwnerARN' - The Amazon Resource Name (ARN) of the environment owner.+--+-- * 'eName' - The name of the environment.+--+-- * 'eId' - The ID of the environment.+--+-- * 'eType' - The type of environment. Valid values include the following:     * @ec2@ : An Amazon Elastic Compute Cloud (Amazon EC2) instance connects to the environment.     * @ssh@ : Your own server connects to the environment.+--+-- * 'eDescription' - The description for the environment.+environment+    :: Environment+environment =+  Environment'+    { _eArn = Nothing+    , _eOwnerARN = Nothing+    , _eName = Nothing+    , _eId = Nothing+    , _eType = Nothing+    , _eDescription = Nothing+    }+++-- | The Amazon Resource Name (ARN) of the environment.+eArn :: Lens' Environment (Maybe Text)+eArn = lens _eArn (\ s a -> s{_eArn = a})++-- | The Amazon Resource Name (ARN) of the environment owner.+eOwnerARN :: Lens' Environment (Maybe Text)+eOwnerARN = lens _eOwnerARN (\ s a -> s{_eOwnerARN = a})++-- | The name of the environment.+eName :: Lens' Environment (Maybe Text)+eName = lens _eName (\ s a -> s{_eName = a})++-- | The ID of the environment.+eId :: Lens' Environment (Maybe Text)+eId = lens _eId (\ s a -> s{_eId = a})++-- | The type of environment. Valid values include the following:     * @ec2@ : An Amazon Elastic Compute Cloud (Amazon EC2) instance connects to the environment.     * @ssh@ : Your own server connects to the environment.+eType :: Lens' Environment (Maybe EnvironmentType)+eType = lens _eType (\ s a -> s{_eType = a})++-- | The description for the environment.+eDescription :: Lens' Environment (Maybe Text)+eDescription = lens _eDescription (\ s a -> s{_eDescription = a})++instance FromJSON Environment where+        parseJSON+          = withObject "Environment"+              (\ x ->+                 Environment' <$>+                   (x .:? "arn") <*> (x .:? "ownerArn") <*>+                     (x .:? "name")+                     <*> (x .:? "id")+                     <*> (x .:? "type")+                     <*> (x .:? "description"))++instance Hashable Environment where++instance NFData Environment where++-- | Information about an environment member for an AWS Cloud9 development environment.+--+--+--+-- /See:/ 'environmentMember' smart constructor.+data EnvironmentMember = EnvironmentMember'+  { _emLastAccess    :: !(Maybe POSIX)+  , _emUserId        :: !(Maybe Text)+  , _emUserARN       :: !(Maybe Text)+  , _emPermissions   :: !(Maybe Permissions)+  , _emEnvironmentId :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'EnvironmentMember' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'emLastAccess' - The time, expressed in epoch time format, when the environment member last opened the environment.+--+-- * 'emUserId' - The user ID in AWS Identity and Access Management (AWS IAM) of the environment member.+--+-- * 'emUserARN' - The Amazon Resource Name (ARN) of the environment member.+--+-- * 'emPermissions' - The type of environment member permissions associated with this environment member. Available values include:     * @owner@ : Owns the environment.     * @read-only@ : Has read-only access to the environment.     * @read-write@ : Has read-write access to the environment.+--+-- * 'emEnvironmentId' - The ID of the environment for the environment member.+environmentMember+    :: EnvironmentMember+environmentMember =+  EnvironmentMember'+    { _emLastAccess = Nothing+    , _emUserId = Nothing+    , _emUserARN = Nothing+    , _emPermissions = Nothing+    , _emEnvironmentId = Nothing+    }+++-- | The time, expressed in epoch time format, when the environment member last opened the environment.+emLastAccess :: Lens' EnvironmentMember (Maybe UTCTime)+emLastAccess = lens _emLastAccess (\ s a -> s{_emLastAccess = a}) . mapping _Time++-- | The user ID in AWS Identity and Access Management (AWS IAM) of the environment member.+emUserId :: Lens' EnvironmentMember (Maybe Text)+emUserId = lens _emUserId (\ s a -> s{_emUserId = a})++-- | The Amazon Resource Name (ARN) of the environment member.+emUserARN :: Lens' EnvironmentMember (Maybe Text)+emUserARN = lens _emUserARN (\ s a -> s{_emUserARN = a})++-- | The type of environment member permissions associated with this environment member. Available values include:     * @owner@ : Owns the environment.     * @read-only@ : Has read-only access to the environment.     * @read-write@ : Has read-write access to the environment.+emPermissions :: Lens' EnvironmentMember (Maybe Permissions)+emPermissions = lens _emPermissions (\ s a -> s{_emPermissions = a})++-- | The ID of the environment for the environment member.+emEnvironmentId :: Lens' EnvironmentMember (Maybe Text)+emEnvironmentId = lens _emEnvironmentId (\ s a -> s{_emEnvironmentId = a})++instance FromJSON EnvironmentMember where+        parseJSON+          = withObject "EnvironmentMember"+              (\ x ->+                 EnvironmentMember' <$>+                   (x .:? "lastAccess") <*> (x .:? "userId") <*>+                     (x .:? "userArn")+                     <*> (x .:? "permissions")+                     <*> (x .:? "environmentId"))++instance Hashable EnvironmentMember where++instance NFData EnvironmentMember where
+ gen/Network/AWS/Cloud9/Types/Sum.hs view
@@ -0,0 +1,149 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE LambdaCase         #-}+{-# LANGUAGE OverloadedStrings  #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.Cloud9.Types.Sum+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Network.AWS.Cloud9.Types.Sum where++import Network.AWS.Prelude++data EnvironmentStatus+  = Connecting+  | Creating+  | Deleting+  | Error'+  | Ready+  | Stopped+  | Stopping+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText EnvironmentStatus where+    parser = takeLowerText >>= \case+        "connecting" -> pure Connecting+        "creating" -> pure Creating+        "deleting" -> pure Deleting+        "error" -> pure Error'+        "ready" -> pure Ready+        "stopped" -> pure Stopped+        "stopping" -> pure Stopping+        e -> fromTextError $ "Failure parsing EnvironmentStatus from value: '" <> e+           <> "'. Accepted values: connecting, creating, deleting, error, ready, stopped, stopping"++instance ToText EnvironmentStatus where+    toText = \case+        Connecting -> "connecting"+        Creating -> "creating"+        Deleting -> "deleting"+        Error' -> "error"+        Ready -> "ready"+        Stopped -> "stopped"+        Stopping -> "stopping"++instance Hashable     EnvironmentStatus+instance NFData       EnvironmentStatus+instance ToByteString EnvironmentStatus+instance ToQuery      EnvironmentStatus+instance ToHeader     EnvironmentStatus++instance FromJSON EnvironmentStatus where+    parseJSON = parseJSONText "EnvironmentStatus"++data EnvironmentType+  = EC2+  | SSH+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText EnvironmentType where+    parser = takeLowerText >>= \case+        "ec2" -> pure EC2+        "ssh" -> pure SSH+        e -> fromTextError $ "Failure parsing EnvironmentType from value: '" <> e+           <> "'. Accepted values: ec2, ssh"++instance ToText EnvironmentType where+    toText = \case+        EC2 -> "ec2"+        SSH -> "ssh"++instance Hashable     EnvironmentType+instance NFData       EnvironmentType+instance ToByteString EnvironmentType+instance ToQuery      EnvironmentType+instance ToHeader     EnvironmentType++instance FromJSON EnvironmentType where+    parseJSON = parseJSONText "EnvironmentType"++data MemberPermissions+  = MPReadOnly+  | MPReadWrite+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText MemberPermissions where+    parser = takeLowerText >>= \case+        "read-only" -> pure MPReadOnly+        "read-write" -> pure MPReadWrite+        e -> fromTextError $ "Failure parsing MemberPermissions from value: '" <> e+           <> "'. Accepted values: read-only, read-write"++instance ToText MemberPermissions where+    toText = \case+        MPReadOnly -> "read-only"+        MPReadWrite -> "read-write"++instance Hashable     MemberPermissions+instance NFData       MemberPermissions+instance ToByteString MemberPermissions+instance ToQuery      MemberPermissions+instance ToHeader     MemberPermissions++instance ToJSON MemberPermissions where+    toJSON = toJSONText++data Permissions+  = Owner+  | ReadOnly+  | ReadWrite+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText Permissions where+    parser = takeLowerText >>= \case+        "owner" -> pure Owner+        "read-only" -> pure ReadOnly+        "read-write" -> pure ReadWrite+        e -> fromTextError $ "Failure parsing Permissions from value: '" <> e+           <> "'. Accepted values: owner, read-only, read-write"++instance ToText Permissions where+    toText = \case+        Owner -> "owner"+        ReadOnly -> "read-only"+        ReadWrite -> "read-write"++instance Hashable     Permissions+instance NFData       Permissions+instance ToByteString Permissions+instance ToQuery      Permissions+instance ToHeader     Permissions++instance ToJSON Permissions where+    toJSON = toJSONText++instance FromJSON Permissions where+    parseJSON = parseJSONText "Permissions"
+ gen/Network/AWS/Cloud9/UpdateEnvironment.hs view
@@ -0,0 +1,146 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.Cloud9.UpdateEnvironment+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Changes the settings of an existing AWS Cloud9 development environment.+--+--+module Network.AWS.Cloud9.UpdateEnvironment+    (+    -- * Creating a Request+      updateEnvironment+    , UpdateEnvironment+    -- * Request Lenses+    , ueName+    , ueDescription+    , ueEnvironmentId++    -- * Destructuring the Response+    , updateEnvironmentResponse+    , UpdateEnvironmentResponse+    -- * Response Lenses+    , uersResponseStatus+    ) where++import Network.AWS.Cloud9.Types+import Network.AWS.Cloud9.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | /See:/ 'updateEnvironment' smart constructor.+data UpdateEnvironment = UpdateEnvironment'+  { _ueName          :: !(Maybe Text)+  , _ueDescription   :: !(Maybe Text)+  , _ueEnvironmentId :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'UpdateEnvironment' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ueName' - A replacement name for the environment.+--+-- * 'ueDescription' - Any new or replacement description for the environment.+--+-- * 'ueEnvironmentId' - The ID of the environment to change settings.+updateEnvironment+    :: Text -- ^ 'ueEnvironmentId'+    -> UpdateEnvironment+updateEnvironment pEnvironmentId_ =+  UpdateEnvironment'+    { _ueName = Nothing+    , _ueDescription = Nothing+    , _ueEnvironmentId = pEnvironmentId_+    }+++-- | A replacement name for the environment.+ueName :: Lens' UpdateEnvironment (Maybe Text)+ueName = lens _ueName (\ s a -> s{_ueName = a})++-- | Any new or replacement description for the environment.+ueDescription :: Lens' UpdateEnvironment (Maybe Text)+ueDescription = lens _ueDescription (\ s a -> s{_ueDescription = a})++-- | The ID of the environment to change settings.+ueEnvironmentId :: Lens' UpdateEnvironment Text+ueEnvironmentId = lens _ueEnvironmentId (\ s a -> s{_ueEnvironmentId = a})++instance AWSRequest UpdateEnvironment where+        type Rs UpdateEnvironment = UpdateEnvironmentResponse+        request = postJSON cloud9+        response+          = receiveEmpty+              (\ s h x ->+                 UpdateEnvironmentResponse' <$> (pure (fromEnum s)))++instance Hashable UpdateEnvironment where++instance NFData UpdateEnvironment where++instance ToHeaders UpdateEnvironment where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("AWSCloud9WorkspaceManagementService.UpdateEnvironment"+                       :: ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON UpdateEnvironment where+        toJSON UpdateEnvironment'{..}+          = object+              (catMaybes+                 [("name" .=) <$> _ueName,+                  ("description" .=) <$> _ueDescription,+                  Just ("environmentId" .= _ueEnvironmentId)])++instance ToPath UpdateEnvironment where+        toPath = const "/"++instance ToQuery UpdateEnvironment where+        toQuery = const mempty++-- | /See:/ 'updateEnvironmentResponse' smart constructor.+newtype UpdateEnvironmentResponse = UpdateEnvironmentResponse'+  { _uersResponseStatus :: Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'UpdateEnvironmentResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'uersResponseStatus' - -- | The response status code.+updateEnvironmentResponse+    :: Int -- ^ 'uersResponseStatus'+    -> UpdateEnvironmentResponse+updateEnvironmentResponse pResponseStatus_ =+  UpdateEnvironmentResponse' {_uersResponseStatus = pResponseStatus_}+++-- | -- | The response status code.+uersResponseStatus :: Lens' UpdateEnvironmentResponse Int+uersResponseStatus = lens _uersResponseStatus (\ s a -> s{_uersResponseStatus = a})++instance NFData UpdateEnvironmentResponse where
+ gen/Network/AWS/Cloud9/UpdateEnvironmentMembership.hs view
@@ -0,0 +1,160 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.Cloud9.UpdateEnvironmentMembership+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Changes the settings of an existing environment member for an AWS Cloud9 development environment.+--+--+module Network.AWS.Cloud9.UpdateEnvironmentMembership+    (+    -- * Creating a Request+      updateEnvironmentMembership+    , UpdateEnvironmentMembership+    -- * Request Lenses+    , uemEnvironmentId+    , uemUserARN+    , uemPermissions++    -- * Destructuring the Response+    , updateEnvironmentMembershipResponse+    , UpdateEnvironmentMembershipResponse+    -- * Response Lenses+    , uemrsMembership+    , uemrsResponseStatus+    ) where++import Network.AWS.Cloud9.Types+import Network.AWS.Cloud9.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | /See:/ 'updateEnvironmentMembership' smart constructor.+data UpdateEnvironmentMembership = UpdateEnvironmentMembership'+  { _uemEnvironmentId :: !Text+  , _uemUserARN       :: !Text+  , _uemPermissions   :: !MemberPermissions+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'UpdateEnvironmentMembership' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'uemEnvironmentId' - The ID of the environment for the environment member whose settings you want to change.+--+-- * 'uemUserARN' - The Amazon Resource Name (ARN) of the environment member whose settings you want to change.+--+-- * 'uemPermissions' - The replacement type of environment member permissions you want to associate with this environment member. Available values include:     * @read-only@ : Has read-only access to the environment.     * @read-write@ : Has read-write access to the environment.+updateEnvironmentMembership+    :: Text -- ^ 'uemEnvironmentId'+    -> Text -- ^ 'uemUserARN'+    -> MemberPermissions -- ^ 'uemPermissions'+    -> UpdateEnvironmentMembership+updateEnvironmentMembership pEnvironmentId_ pUserARN_ pPermissions_ =+  UpdateEnvironmentMembership'+    { _uemEnvironmentId = pEnvironmentId_+    , _uemUserARN = pUserARN_+    , _uemPermissions = pPermissions_+    }+++-- | The ID of the environment for the environment member whose settings you want to change.+uemEnvironmentId :: Lens' UpdateEnvironmentMembership Text+uemEnvironmentId = lens _uemEnvironmentId (\ s a -> s{_uemEnvironmentId = a})++-- | The Amazon Resource Name (ARN) of the environment member whose settings you want to change.+uemUserARN :: Lens' UpdateEnvironmentMembership Text+uemUserARN = lens _uemUserARN (\ s a -> s{_uemUserARN = a})++-- | The replacement type of environment member permissions you want to associate with this environment member. Available values include:     * @read-only@ : Has read-only access to the environment.     * @read-write@ : Has read-write access to the environment.+uemPermissions :: Lens' UpdateEnvironmentMembership MemberPermissions+uemPermissions = lens _uemPermissions (\ s a -> s{_uemPermissions = a})++instance AWSRequest UpdateEnvironmentMembership where+        type Rs UpdateEnvironmentMembership =+             UpdateEnvironmentMembershipResponse+        request = postJSON cloud9+        response+          = receiveJSON+              (\ s h x ->+                 UpdateEnvironmentMembershipResponse' <$>+                   (x .?> "membership") <*> (pure (fromEnum s)))++instance Hashable UpdateEnvironmentMembership where++instance NFData UpdateEnvironmentMembership where++instance ToHeaders UpdateEnvironmentMembership where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("AWSCloud9WorkspaceManagementService.UpdateEnvironmentMembership"+                       :: ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON UpdateEnvironmentMembership where+        toJSON UpdateEnvironmentMembership'{..}+          = object+              (catMaybes+                 [Just ("environmentId" .= _uemEnvironmentId),+                  Just ("userArn" .= _uemUserARN),+                  Just ("permissions" .= _uemPermissions)])++instance ToPath UpdateEnvironmentMembership where+        toPath = const "/"++instance ToQuery UpdateEnvironmentMembership where+        toQuery = const mempty++-- | /See:/ 'updateEnvironmentMembershipResponse' smart constructor.+data UpdateEnvironmentMembershipResponse = UpdateEnvironmentMembershipResponse'+  { _uemrsMembership     :: !(Maybe EnvironmentMember)+  , _uemrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'UpdateEnvironmentMembershipResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'uemrsMembership' - Information about the environment member whose settings were changed.+--+-- * 'uemrsResponseStatus' - -- | The response status code.+updateEnvironmentMembershipResponse+    :: Int -- ^ 'uemrsResponseStatus'+    -> UpdateEnvironmentMembershipResponse+updateEnvironmentMembershipResponse pResponseStatus_ =+  UpdateEnvironmentMembershipResponse'+    {_uemrsMembership = Nothing, _uemrsResponseStatus = pResponseStatus_}+++-- | Information about the environment member whose settings were changed.+uemrsMembership :: Lens' UpdateEnvironmentMembershipResponse (Maybe EnvironmentMember)+uemrsMembership = lens _uemrsMembership (\ s a -> s{_uemrsMembership = a})++-- | -- | The response status code.+uemrsResponseStatus :: Lens' UpdateEnvironmentMembershipResponse Int+uemrsResponseStatus = lens _uemrsResponseStatus (\ s a -> s{_uemrsResponseStatus = a})++instance NFData UpdateEnvironmentMembershipResponse+         where
+ gen/Network/AWS/Cloud9/Waiters.hs view
@@ -0,0 +1,21 @@+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE TypeFamilies      #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.Cloud9.Waiters+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Network.AWS.Cloud9.Waiters where++import Network.AWS.Cloud9.Types+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Waiter
+ src/.gitkeep view
+ test/Main.hs view
@@ -0,0 +1,21 @@+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module      : Main+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Main (main) where++import Test.Tasty+import Test.AWS.Cloud9+import Test.AWS.Cloud9.Internal++main :: IO ()+main = defaultMain $ testGroup "Cloud9"+    [ testGroup "tests"    tests+    , testGroup "fixtures" fixtures+    ]
+ test/Test/AWS/Cloud9.hs view
@@ -0,0 +1,20 @@+-- |+-- Module      : Test.AWS.Cloud9+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Test.AWS.Cloud9+    ( tests+    , fixtures+    ) where++import Test.Tasty (TestTree)++tests :: [TestTree]+tests = []++fixtures :: [TestTree]+fixtures = []
+ test/Test/AWS/Cloud9/Internal.hs view
@@ -0,0 +1,9 @@+-- |+-- Module      : Test.AWS.Cloud9.Internal+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Test.AWS.Cloud9.Internal where
+ test/Test/AWS/Gen/Cloud9.hs view
@@ -0,0 +1,219 @@+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-orphans        #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Test.AWS.Gen.Cloud9+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Test.AWS.Gen.Cloud9 where++import Data.Proxy+import Network.AWS.Cloud9+import Test.AWS.Cloud9.Internal+import Test.AWS.Fixture+import Test.AWS.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"+--         [ requestListEnvironments $+--             listEnvironments+--+--         , requestUpdateEnvironment $+--             updateEnvironment+--+--         , requestDeleteEnvironment $+--             deleteEnvironment+--+--         , requestDescribeEnvironmentStatus $+--             describeEnvironmentStatus+--+--         , requestCreateEnvironmentEC $+--             createEnvironmentEC+--+--         , requestCreateEnvironmentMembership $+--             createEnvironmentMembership+--+--         , requestDescribeEnvironments $+--             describeEnvironments+--+--         , requestDeleteEnvironmentMembership $+--             deleteEnvironmentMembership+--+--         , requestUpdateEnvironmentMembership $+--             updateEnvironmentMembership+--+--         , requestDescribeEnvironmentMemberships $+--             describeEnvironmentMemberships+--+--           ]++--     , testGroup "response"+--         [ responseListEnvironments $+--             listEnvironmentsResponse+--+--         , responseUpdateEnvironment $+--             updateEnvironmentResponse+--+--         , responseDeleteEnvironment $+--             deleteEnvironmentResponse+--+--         , responseDescribeEnvironmentStatus $+--             describeEnvironmentStatusResponse+--+--         , responseCreateEnvironmentEC $+--             createEnvironmentECResponse+--+--         , responseCreateEnvironmentMembership $+--             createEnvironmentMembershipResponse+--+--         , responseDescribeEnvironments $+--             describeEnvironmentsResponse+--+--         , responseDeleteEnvironmentMembership $+--             deleteEnvironmentMembershipResponse+--+--         , responseUpdateEnvironmentMembership $+--             updateEnvironmentMembershipResponse+--+--         , responseDescribeEnvironmentMemberships $+--             describeEnvironmentMembershipsResponse+--+--           ]+--     ]++-- Requests++requestListEnvironments :: ListEnvironments -> TestTree+requestListEnvironments = req+    "ListEnvironments"+    "fixture/ListEnvironments.yaml"++requestUpdateEnvironment :: UpdateEnvironment -> TestTree+requestUpdateEnvironment = req+    "UpdateEnvironment"+    "fixture/UpdateEnvironment.yaml"++requestDeleteEnvironment :: DeleteEnvironment -> TestTree+requestDeleteEnvironment = req+    "DeleteEnvironment"+    "fixture/DeleteEnvironment.yaml"++requestDescribeEnvironmentStatus :: DescribeEnvironmentStatus -> TestTree+requestDescribeEnvironmentStatus = req+    "DescribeEnvironmentStatus"+    "fixture/DescribeEnvironmentStatus.yaml"++requestCreateEnvironmentEC :: CreateEnvironmentEC -> TestTree+requestCreateEnvironmentEC = req+    "CreateEnvironmentEC"+    "fixture/CreateEnvironmentEC.yaml"++requestCreateEnvironmentMembership :: CreateEnvironmentMembership -> TestTree+requestCreateEnvironmentMembership = req+    "CreateEnvironmentMembership"+    "fixture/CreateEnvironmentMembership.yaml"++requestDescribeEnvironments :: DescribeEnvironments -> TestTree+requestDescribeEnvironments = req+    "DescribeEnvironments"+    "fixture/DescribeEnvironments.yaml"++requestDeleteEnvironmentMembership :: DeleteEnvironmentMembership -> TestTree+requestDeleteEnvironmentMembership = req+    "DeleteEnvironmentMembership"+    "fixture/DeleteEnvironmentMembership.yaml"++requestUpdateEnvironmentMembership :: UpdateEnvironmentMembership -> TestTree+requestUpdateEnvironmentMembership = req+    "UpdateEnvironmentMembership"+    "fixture/UpdateEnvironmentMembership.yaml"++requestDescribeEnvironmentMemberships :: DescribeEnvironmentMemberships -> TestTree+requestDescribeEnvironmentMemberships = req+    "DescribeEnvironmentMemberships"+    "fixture/DescribeEnvironmentMemberships.yaml"++-- Responses++responseListEnvironments :: ListEnvironmentsResponse -> TestTree+responseListEnvironments = res+    "ListEnvironmentsResponse"+    "fixture/ListEnvironmentsResponse.proto"+    cloud9+    (Proxy :: Proxy ListEnvironments)++responseUpdateEnvironment :: UpdateEnvironmentResponse -> TestTree+responseUpdateEnvironment = res+    "UpdateEnvironmentResponse"+    "fixture/UpdateEnvironmentResponse.proto"+    cloud9+    (Proxy :: Proxy UpdateEnvironment)++responseDeleteEnvironment :: DeleteEnvironmentResponse -> TestTree+responseDeleteEnvironment = res+    "DeleteEnvironmentResponse"+    "fixture/DeleteEnvironmentResponse.proto"+    cloud9+    (Proxy :: Proxy DeleteEnvironment)++responseDescribeEnvironmentStatus :: DescribeEnvironmentStatusResponse -> TestTree+responseDescribeEnvironmentStatus = res+    "DescribeEnvironmentStatusResponse"+    "fixture/DescribeEnvironmentStatusResponse.proto"+    cloud9+    (Proxy :: Proxy DescribeEnvironmentStatus)++responseCreateEnvironmentEC :: CreateEnvironmentECResponse -> TestTree+responseCreateEnvironmentEC = res+    "CreateEnvironmentECResponse"+    "fixture/CreateEnvironmentECResponse.proto"+    cloud9+    (Proxy :: Proxy CreateEnvironmentEC)++responseCreateEnvironmentMembership :: CreateEnvironmentMembershipResponse -> TestTree+responseCreateEnvironmentMembership = res+    "CreateEnvironmentMembershipResponse"+    "fixture/CreateEnvironmentMembershipResponse.proto"+    cloud9+    (Proxy :: Proxy CreateEnvironmentMembership)++responseDescribeEnvironments :: DescribeEnvironmentsResponse -> TestTree+responseDescribeEnvironments = res+    "DescribeEnvironmentsResponse"+    "fixture/DescribeEnvironmentsResponse.proto"+    cloud9+    (Proxy :: Proxy DescribeEnvironments)++responseDeleteEnvironmentMembership :: DeleteEnvironmentMembershipResponse -> TestTree+responseDeleteEnvironmentMembership = res+    "DeleteEnvironmentMembershipResponse"+    "fixture/DeleteEnvironmentMembershipResponse.proto"+    cloud9+    (Proxy :: Proxy DeleteEnvironmentMembership)++responseUpdateEnvironmentMembership :: UpdateEnvironmentMembershipResponse -> TestTree+responseUpdateEnvironmentMembership = res+    "UpdateEnvironmentMembershipResponse"+    "fixture/UpdateEnvironmentMembershipResponse.proto"+    cloud9+    (Proxy :: Proxy UpdateEnvironmentMembership)++responseDescribeEnvironmentMemberships :: DescribeEnvironmentMembershipsResponse -> TestTree+responseDescribeEnvironmentMemberships = res+    "DescribeEnvironmentMembershipsResponse"+    "fixture/DescribeEnvironmentMembershipsResponse.proto"+    cloud9+    (Proxy :: Proxy DescribeEnvironmentMemberships)