packages feed

amazonka-ds (empty) → 1.0.0

raw patch · 30 files changed

+5144/−0 lines, 30 filesdep +amazonka-coredep +amazonka-dsdep +amazonka-testsetup-changed

Dependencies added: amazonka-core, amazonka-ds, amazonka-test, base, bytestring, lens, tasty, tasty-hunit, text, time, unordered-containers

Files

+ LICENSE view
@@ -0,0 +1,373 @@+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.++Exhibit B - "Incompatible With Secondary Licenses" Notice+---------------------------------------------------------++  This Source Code Form is "Incompatible With Secondary Licenses", as+  defined by the Mozilla Public License, v. 2.0.
+ README.md view
@@ -0,0 +1,46 @@+# Amazon Directory Service SDK++* [Version](#version)+* [Description](#description)+* [Contribute](#contribute)+* [Licence](#licence)+++## Version++`1.0.0`+++## Description++AWS Directory Service++This is the /AWS Directory Service API Reference/. This guide provides+detailed information about AWS Directory Service operations, data types,+parameters, and errors.++Documentation is available via [Hackage](http://hackage.haskell.org/package/amazonka-ds)+and the [AWS API Reference](http://docs.aws.amazon.com/directoryservice/latest/devguide/welcome.html).++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 and sending requests.++Use of lenses is required for constructing and manipulating types.+This is due to the amount 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).++## 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-ds` 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-ds.cabal view
@@ -0,0 +1,102 @@+name:                  amazonka-ds+version:               1.0.0+synopsis:              Amazon Directory Service SDK.+homepage:              https://github.com/brendanhay/amazonka+license:               OtherLicense+license-file:          LICENSE+author:                Brendan Hay+maintainer:            Brendan Hay <brendan.g.hay@gmail.com>+copyright:             Copyright (c) 2013-2015 Brendan Hay+category:              Network, AWS, Cloud, Distributed Computing+build-type:            Simple+extra-source-files:    README.md+cabal-version:         >= 1.10++description:+    AWS Directory Service++    This is the /AWS Directory Service API Reference/. This guide provides+    detailed information about AWS Directory Service operations, data types,+    parameters, and errors.+    .+    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 and sending requests.+    .+    Use of lenses is required for constructing and manipulating types.+    This is due to the amount 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.DirectoryService" and the <http://docs.aws.amazon.com/directoryservice/latest/devguide/welcome.html AWS API Reference>+    to get started.++source-repository head+    type:     git+    location: git://github.com/brendanhay/amazonka.git++library+    default-language:  Haskell2010+    hs-source-dirs:    src gen++    ghc-options:       -Wall++    exposed-modules:+          Network.AWS.DirectoryService+        , Network.AWS.DirectoryService.ConnectDirectory+        , Network.AWS.DirectoryService.CreateAlias+        , Network.AWS.DirectoryService.CreateComputer+        , Network.AWS.DirectoryService.CreateDirectory+        , Network.AWS.DirectoryService.CreateSnapshot+        , Network.AWS.DirectoryService.DeleteDirectory+        , Network.AWS.DirectoryService.DeleteSnapshot+        , Network.AWS.DirectoryService.DescribeDirectories+        , Network.AWS.DirectoryService.DescribeSnapshots+        , Network.AWS.DirectoryService.DisableRadius+        , Network.AWS.DirectoryService.DisableSSO+        , Network.AWS.DirectoryService.EnableRadius+        , Network.AWS.DirectoryService.EnableSSO+        , Network.AWS.DirectoryService.GetDirectoryLimits+        , Network.AWS.DirectoryService.GetSnapshotLimits+        , Network.AWS.DirectoryService.RestoreFromSnapshot+        , Network.AWS.DirectoryService.Types+        , Network.AWS.DirectoryService.UpdateRadius+        , Network.AWS.DirectoryService.Waiters++    other-modules:+          Network.AWS.DirectoryService.Types.Product+        , Network.AWS.DirectoryService.Types.Sum++    build-depends:+          amazonka-core == 1.0.0.*+        , base          >= 4.7     && < 5++test-suite amazonka-ds-test+    type:              exitcode-stdio-1.0+    default-language:  Haskell2010+    hs-source-dirs:    test+    main-is:           Main.hs++    ghc-options:       -Wall -threaded++    -- This is not comprehensive if modules have manually been added.+    -- It exists to ensure cabal 'somewhat' detects test module changes.+    other-modules:+          Test.AWS.DirectoryService+        , Test.AWS.Gen.DirectoryService+        , Test.AWS.DirectoryService.Internal++    build-depends:+          amazonka-core == 1.0.0+        , amazonka-test == 1.0.0+        , amazonka-ds == 1.0.0+        , base+        , bytestring+        , lens+        , tasty+        , tasty-hunit+        , text+        , time+        , unordered-containers
+ gen/Network/AWS/DirectoryService.hs view
@@ -0,0 +1,300 @@+{-# 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.DirectoryService+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- AWS Directory Service+--+-- This is the /AWS Directory Service API Reference/. This guide provides+-- detailed information about AWS Directory Service operations, data types,+-- parameters, and errors.+--+-- /See:/ <http://docs.aws.amazon.com/directoryservice/latest/devguide/welcome.html AWS API Reference>+module Network.AWS.DirectoryService+    (+    -- * Service+      DirectoryService++    -- * Errors+    -- $errors++    -- ** AuthenticationFailedException+    , _AuthenticationFailedException++    -- ** DirectoryUnavailableException+    , _DirectoryUnavailableException++    -- ** InvalidParameterException+    , _InvalidParameterException++    -- ** UnsupportedOperationException+    , _UnsupportedOperationException++    -- ** EntityAlreadyExistsException+    , _EntityAlreadyExistsException++    -- ** DirectoryLimitExceededException+    , _DirectoryLimitExceededException++    -- ** EntityDoesNotExistException+    , _EntityDoesNotExistException++    -- ** InsufficientPermissionsException+    , _InsufficientPermissionsException++    -- ** InvalidNextTokenException+    , _InvalidNextTokenException++    -- ** ServiceException+    , _ServiceException++    -- ** SnapshotLimitExceededException+    , _SnapshotLimitExceededException++    -- ** ClientException+    , _ClientException++    -- * Waiters+    -- $waiters++    -- * Operations+    -- $operations++    -- ** GetSnapshotLimits+    , module Network.AWS.DirectoryService.GetSnapshotLimits++    -- ** ConnectDirectory+    , module Network.AWS.DirectoryService.ConnectDirectory++    -- ** DescribeDirectories+    , module Network.AWS.DirectoryService.DescribeDirectories++    -- ** CreateAlias+    , module Network.AWS.DirectoryService.CreateAlias++    -- ** CreateDirectory+    , module Network.AWS.DirectoryService.CreateDirectory++    -- ** EnableSSO+    , module Network.AWS.DirectoryService.EnableSSO++    -- ** EnableRadius+    , module Network.AWS.DirectoryService.EnableRadius++    -- ** DisableRadius+    , module Network.AWS.DirectoryService.DisableRadius++    -- ** DescribeSnapshots+    , module Network.AWS.DirectoryService.DescribeSnapshots++    -- ** RestoreFromSnapshot+    , module Network.AWS.DirectoryService.RestoreFromSnapshot++    -- ** DeleteSnapshot+    , module Network.AWS.DirectoryService.DeleteSnapshot++    -- ** CreateSnapshot+    , module Network.AWS.DirectoryService.CreateSnapshot++    -- ** DeleteDirectory+    , module Network.AWS.DirectoryService.DeleteDirectory++    -- ** DisableSSO+    , module Network.AWS.DirectoryService.DisableSSO++    -- ** CreateComputer+    , module Network.AWS.DirectoryService.CreateComputer++    -- ** GetDirectoryLimits+    , module Network.AWS.DirectoryService.GetDirectoryLimits++    -- ** UpdateRadius+    , module Network.AWS.DirectoryService.UpdateRadius++    -- * Types++    -- ** DirectorySize+    , DirectorySize (..)++    -- ** DirectoryStage+    , DirectoryStage (..)++    -- ** DirectoryType+    , DirectoryType (..)++    -- ** RadiusAuthenticationProtocol+    , RadiusAuthenticationProtocol (..)++    -- ** RadiusStatus+    , RadiusStatus (..)++    -- ** SnapshotStatus+    , SnapshotStatus (..)++    -- ** SnapshotType+    , SnapshotType (..)++    -- ** Attribute+    , Attribute+    , attribute+    , aValue+    , aName++    -- ** Computer+    , Computer+    , computer+    , cComputerId+    , cComputerAttributes+    , cComputerName++    -- ** DirectoryConnectSettings+    , DirectoryConnectSettings+    , directoryConnectSettings+    , dcsVPCId+    , dcsSubnetIds+    , dcsCustomerDNSIPs+    , dcsCustomerUserName++    -- ** DirectoryConnectSettingsDescription+    , DirectoryConnectSettingsDescription+    , directoryConnectSettingsDescription+    , dcsdCustomerUserName+    , dcsdSubnetIds+    , dcsdVPCId+    , dcsdConnectIPs+    , dcsdSecurityGroupId+    , dcsdAvailabilityZones++    -- ** DirectoryDescription+    , DirectoryDescription+    , directoryDescription+    , ddRadiusStatus+    , ddDirectoryId+    , ddStage+    , ddAccessURL+    , ddShortName+    , ddSize+    , ddRadiusSettings+    , ddLaunchTime+    , ddAlias+    , ddName+    , ddSSOEnabled+    , ddStageLastUpdatedDateTime+    , ddStageReason+    , ddDNSIPAddrs+    , ddVPCSettings+    , ddType+    , ddConnectSettings+    , ddDescription++    -- ** DirectoryLimits+    , DirectoryLimits+    , directoryLimits+    , dlConnectedDirectoriesCurrentCount+    , dlConnectedDirectoriesLimit+    , dlConnectedDirectoriesLimitReached+    , dlCloudOnlyDirectoriesLimit+    , dlCloudOnlyDirectoriesCurrentCount+    , dlCloudOnlyDirectoriesLimitReached++    -- ** DirectoryVPCSettings+    , DirectoryVPCSettings+    , directoryVPCSettings+    , dvsVPCId+    , dvsSubnetIds++    -- ** DirectoryVPCSettingsDescription+    , DirectoryVPCSettingsDescription+    , directoryVPCSettingsDescription+    , dvsdSubnetIds+    , dvsdVPCId+    , dvsdSecurityGroupId+    , dvsdAvailabilityZones++    -- ** RadiusSettings+    , RadiusSettings+    , radiusSettings+    , rsDisplayLabel+    , rsRadiusServers+    , rsRadiusRetries+    , rsAuthenticationProtocol+    , rsUseSameUsername+    , rsSharedSecret+    , rsRadiusTimeout+    , rsRadiusPort++    -- ** Snapshot+    , Snapshot+    , snapshot+    , sDirectoryId+    , sStatus+    , sStartTime+    , sName+    , sType+    , sSnapshotId++    -- ** SnapshotLimits+    , SnapshotLimits+    , snapshotLimits+    , slManualSnapshotsLimitReached+    , slManualSnapshotsCurrentCount+    , slManualSnapshotsLimit+    ) where++import           Network.AWS.DirectoryService.ConnectDirectory+import           Network.AWS.DirectoryService.CreateAlias+import           Network.AWS.DirectoryService.CreateComputer+import           Network.AWS.DirectoryService.CreateDirectory+import           Network.AWS.DirectoryService.CreateSnapshot+import           Network.AWS.DirectoryService.DeleteDirectory+import           Network.AWS.DirectoryService.DeleteSnapshot+import           Network.AWS.DirectoryService.DescribeDirectories+import           Network.AWS.DirectoryService.DescribeSnapshots+import           Network.AWS.DirectoryService.DisableRadius+import           Network.AWS.DirectoryService.DisableSSO+import           Network.AWS.DirectoryService.EnableRadius+import           Network.AWS.DirectoryService.EnableSSO+import           Network.AWS.DirectoryService.GetDirectoryLimits+import           Network.AWS.DirectoryService.GetSnapshotLimits+import           Network.AWS.DirectoryService.RestoreFromSnapshot+import           Network.AWS.DirectoryService.Types+import           Network.AWS.DirectoryService.UpdateRadius+import           Network.AWS.DirectoryService.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 'DirectoryService'.+-}++{- $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/DirectoryService/ConnectDirectory.hs view
@@ -0,0 +1,184 @@+{-# 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.DirectoryService.ConnectDirectory+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates an AD Connector to connect an on-premises directory.+--+-- /See:/ <http://docs.aws.amazon.com/directoryservice/latest/devguide/API_ConnectDirectory.html AWS API Reference> for ConnectDirectory.+module Network.AWS.DirectoryService.ConnectDirectory+    (+    -- * Creating a Request+      connectDirectory+    , ConnectDirectory+    -- * Request Lenses+    , cdShortName+    , cdDescription+    , cdName+    , cdPassword+    , cdSize+    , cdConnectSettings++    -- * Destructuring the Response+    , connectDirectoryResponse+    , ConnectDirectoryResponse+    -- * Response Lenses+    , cdrsDirectoryId+    , cdrsStatus+    ) where++import           Network.AWS.DirectoryService.Types+import           Network.AWS.DirectoryService.Types.Product+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- | Contains the inputs for the ConnectDirectory operation.+--+-- /See:/ 'connectDirectory' smart constructor.+data ConnectDirectory = ConnectDirectory'+    { _cdShortName       :: !(Maybe Text)+    , _cdDescription     :: !(Maybe Text)+    , _cdName            :: !Text+    , _cdPassword        :: !(Sensitive Text)+    , _cdSize            :: !DirectorySize+    , _cdConnectSettings :: !DirectoryConnectSettings+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ConnectDirectory' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cdShortName'+--+-- * 'cdDescription'+--+-- * 'cdName'+--+-- * 'cdPassword'+--+-- * 'cdSize'+--+-- * 'cdConnectSettings'+connectDirectory+    :: Text -- ^ 'cdName'+    -> Text -- ^ 'cdPassword'+    -> DirectorySize -- ^ 'cdSize'+    -> DirectoryConnectSettings -- ^ 'cdConnectSettings'+    -> ConnectDirectory+connectDirectory pName_ pPassword_ pSize_ pConnectSettings_ =+    ConnectDirectory'+    { _cdShortName = Nothing+    , _cdDescription = Nothing+    , _cdName = pName_+    , _cdPassword = _Sensitive # pPassword_+    , _cdSize = pSize_+    , _cdConnectSettings = pConnectSettings_+    }++-- | The NetBIOS name of the on-premises directory, such as 'CORP'.+cdShortName :: Lens' ConnectDirectory (Maybe Text)+cdShortName = lens _cdShortName (\ s a -> s{_cdShortName = a});++-- | A textual description for the directory.+cdDescription :: Lens' ConnectDirectory (Maybe Text)+cdDescription = lens _cdDescription (\ s a -> s{_cdDescription = a});++-- | The fully-qualified name of the on-premises directory, such as+-- 'corp.example.com'.+cdName :: Lens' ConnectDirectory Text+cdName = lens _cdName (\ s a -> s{_cdName = a});++-- | The password for the on-premises user account.+cdPassword :: Lens' ConnectDirectory Text+cdPassword = lens _cdPassword (\ s a -> s{_cdPassword = a}) . _Sensitive;++-- | The size of the directory.+cdSize :: Lens' ConnectDirectory DirectorySize+cdSize = lens _cdSize (\ s a -> s{_cdSize = a});++-- | A DirectoryConnectSettings object that contains additional information+-- for the operation.+cdConnectSettings :: Lens' ConnectDirectory DirectoryConnectSettings+cdConnectSettings = lens _cdConnectSettings (\ s a -> s{_cdConnectSettings = a});++instance AWSRequest ConnectDirectory where+        type Sv ConnectDirectory = DirectoryService+        type Rs ConnectDirectory = ConnectDirectoryResponse+        request = postJSON+        response+          = receiveJSON+              (\ s h x ->+                 ConnectDirectoryResponse' <$>+                   (x .?> "DirectoryId") <*> (pure (fromEnum s)))++instance ToHeaders ConnectDirectory where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("DirectoryService_20150416.ConnectDirectory" ::+                       ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON ConnectDirectory where+        toJSON ConnectDirectory'{..}+          = object+              ["ShortName" .= _cdShortName,+               "Description" .= _cdDescription, "Name" .= _cdName,+               "Password" .= _cdPassword, "Size" .= _cdSize,+               "ConnectSettings" .= _cdConnectSettings]++instance ToPath ConnectDirectory where+        toPath = const "/"++instance ToQuery ConnectDirectory where+        toQuery = const mempty++-- | Contains the results of the ConnectDirectory operation.+--+-- /See:/ 'connectDirectoryResponse' smart constructor.+data ConnectDirectoryResponse = ConnectDirectoryResponse'+    { _cdrsDirectoryId :: !(Maybe Text)+    , _cdrsStatus      :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ConnectDirectoryResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cdrsDirectoryId'+--+-- * 'cdrsStatus'+connectDirectoryResponse+    :: Int -- ^ 'cdrsStatus'+    -> ConnectDirectoryResponse+connectDirectoryResponse pStatus_ =+    ConnectDirectoryResponse'+    { _cdrsDirectoryId = Nothing+    , _cdrsStatus = pStatus_+    }++-- | The identifier of the new directory.+cdrsDirectoryId :: Lens' ConnectDirectoryResponse (Maybe Text)+cdrsDirectoryId = lens _cdrsDirectoryId (\ s a -> s{_cdrsDirectoryId = a});++-- | The response status code.+cdrsStatus :: Lens' ConnectDirectoryResponse Int+cdrsStatus = lens _cdrsStatus (\ s a -> s{_cdrsStatus = a});
+ gen/Network/AWS/DirectoryService/CreateAlias.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.DirectoryService.CreateAlias+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates an alias for a directory and assigns the alias to the directory.+-- The alias is used to construct the access URL for the directory, such as+-- 'http:\/\/\<alias>.awsapps.com'.+--+-- After an alias has been created, it cannot be deleted or reused, so this+-- operation should only be used when absolutely necessary.+--+-- /See:/ <http://docs.aws.amazon.com/directoryservice/latest/devguide/API_CreateAlias.html AWS API Reference> for CreateAlias.+module Network.AWS.DirectoryService.CreateAlias+    (+    -- * Creating a Request+      createAlias+    , CreateAlias+    -- * Request Lenses+    , caDirectoryId+    , caAlias++    -- * Destructuring the Response+    , createAliasResponse+    , CreateAliasResponse+    -- * Response Lenses+    , carsDirectoryId+    , carsAlias+    , carsStatus+    ) where++import           Network.AWS.DirectoryService.Types+import           Network.AWS.DirectoryService.Types.Product+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- | Contains the inputs for the CreateAlias operation.+--+-- /See:/ 'createAlias' smart constructor.+data CreateAlias = CreateAlias'+    { _caDirectoryId :: !Text+    , _caAlias       :: !Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'CreateAlias' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'caDirectoryId'+--+-- * 'caAlias'+createAlias+    :: Text -- ^ 'caDirectoryId'+    -> Text -- ^ 'caAlias'+    -> CreateAlias+createAlias pDirectoryId_ pAlias_ =+    CreateAlias'+    { _caDirectoryId = pDirectoryId_+    , _caAlias = pAlias_+    }++-- | The identifier of the directory to create the alias for.+caDirectoryId :: Lens' CreateAlias Text+caDirectoryId = lens _caDirectoryId (\ s a -> s{_caDirectoryId = a});++-- | The requested alias.+--+-- The alias must be unique amongst all aliases in AWS. This operation will+-- throw an 'EntityAlreadyExistsException' if this alias already exists.+caAlias :: Lens' CreateAlias Text+caAlias = lens _caAlias (\ s a -> s{_caAlias = a});++instance AWSRequest CreateAlias where+        type Sv CreateAlias = DirectoryService+        type Rs CreateAlias = CreateAliasResponse+        request = postJSON+        response+          = receiveJSON+              (\ s h x ->+                 CreateAliasResponse' <$>+                   (x .?> "DirectoryId") <*> (x .?> "Alias") <*>+                     (pure (fromEnum s)))++instance ToHeaders CreateAlias where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("DirectoryService_20150416.CreateAlias" ::+                       ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON CreateAlias where+        toJSON CreateAlias'{..}+          = object+              ["DirectoryId" .= _caDirectoryId,+               "Alias" .= _caAlias]++instance ToPath CreateAlias where+        toPath = const "/"++instance ToQuery CreateAlias where+        toQuery = const mempty++-- | Contains the results of the CreateAlias operation.+--+-- /See:/ 'createAliasResponse' smart constructor.+data CreateAliasResponse = CreateAliasResponse'+    { _carsDirectoryId :: !(Maybe Text)+    , _carsAlias       :: !(Maybe Text)+    , _carsStatus      :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'CreateAliasResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'carsDirectoryId'+--+-- * 'carsAlias'+--+-- * 'carsStatus'+createAliasResponse+    :: Int -- ^ 'carsStatus'+    -> CreateAliasResponse+createAliasResponse pStatus_ =+    CreateAliasResponse'+    { _carsDirectoryId = Nothing+    , _carsAlias = Nothing+    , _carsStatus = pStatus_+    }++-- | The identifier of the directory.+carsDirectoryId :: Lens' CreateAliasResponse (Maybe Text)+carsDirectoryId = lens _carsDirectoryId (\ s a -> s{_carsDirectoryId = a});++-- | The alias for the directory.+carsAlias :: Lens' CreateAliasResponse (Maybe Text)+carsAlias = lens _carsAlias (\ s a -> s{_carsAlias = a});++-- | The response status code.+carsStatus :: Lens' CreateAliasResponse Int+carsStatus = lens _carsStatus (\ s a -> s{_carsStatus = a});
+ gen/Network/AWS/DirectoryService/CreateComputer.hs view
@@ -0,0 +1,178 @@+{-# 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.DirectoryService.CreateComputer+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a computer account in the specified directory, and joins the+-- computer to the directory.+--+-- /See:/ <http://docs.aws.amazon.com/directoryservice/latest/devguide/API_CreateComputer.html AWS API Reference> for CreateComputer.+module Network.AWS.DirectoryService.CreateComputer+    (+    -- * Creating a Request+      createComputer+    , CreateComputer+    -- * Request Lenses+    , ccComputerAttributes+    , ccOrganizationalUnitDistinguishedName+    , ccDirectoryId+    , ccComputerName+    , ccPassword++    -- * Destructuring the Response+    , createComputerResponse+    , CreateComputerResponse+    -- * Response Lenses+    , ccrsComputer+    , ccrsStatus+    ) where++import           Network.AWS.DirectoryService.Types+import           Network.AWS.DirectoryService.Types.Product+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- | Contains the inputs for the CreateComputer operation.+--+-- /See:/ 'createComputer' smart constructor.+data CreateComputer = CreateComputer'+    { _ccComputerAttributes                  :: !(Maybe [Attribute])+    , _ccOrganizationalUnitDistinguishedName :: !(Maybe Text)+    , _ccDirectoryId                         :: !Text+    , _ccComputerName                        :: !Text+    , _ccPassword                            :: !(Sensitive Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'CreateComputer' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ccComputerAttributes'+--+-- * 'ccOrganizationalUnitDistinguishedName'+--+-- * 'ccDirectoryId'+--+-- * 'ccComputerName'+--+-- * 'ccPassword'+createComputer+    :: Text -- ^ 'ccDirectoryId'+    -> Text -- ^ 'ccComputerName'+    -> Text -- ^ 'ccPassword'+    -> CreateComputer+createComputer pDirectoryId_ pComputerName_ pPassword_ =+    CreateComputer'+    { _ccComputerAttributes = Nothing+    , _ccOrganizationalUnitDistinguishedName = Nothing+    , _ccDirectoryId = pDirectoryId_+    , _ccComputerName = pComputerName_+    , _ccPassword = _Sensitive # pPassword_+    }++-- | An array of Attribute objects that contain any LDAP attributes to apply+-- to the computer account.+ccComputerAttributes :: Lens' CreateComputer [Attribute]+ccComputerAttributes = lens _ccComputerAttributes (\ s a -> s{_ccComputerAttributes = a}) . _Default . _Coerce;++-- | The fully-qualified distinguished name of the organizational unit to+-- place the computer account in.+ccOrganizationalUnitDistinguishedName :: Lens' CreateComputer (Maybe Text)+ccOrganizationalUnitDistinguishedName = lens _ccOrganizationalUnitDistinguishedName (\ s a -> s{_ccOrganizationalUnitDistinguishedName = a});++-- | The identifier of the directory to create the computer account in.+ccDirectoryId :: Lens' CreateComputer Text+ccDirectoryId = lens _ccDirectoryId (\ s a -> s{_ccDirectoryId = a});++-- | The name of the computer account.+ccComputerName :: Lens' CreateComputer Text+ccComputerName = lens _ccComputerName (\ s a -> s{_ccComputerName = a});++-- | A one-time password that is used to join the computer to the directory.+-- You should generate a random, strong password to use for this parameter.+ccPassword :: Lens' CreateComputer Text+ccPassword = lens _ccPassword (\ s a -> s{_ccPassword = a}) . _Sensitive;++instance AWSRequest CreateComputer where+        type Sv CreateComputer = DirectoryService+        type Rs CreateComputer = CreateComputerResponse+        request = postJSON+        response+          = receiveJSON+              (\ s h x ->+                 CreateComputerResponse' <$>+                   (x .?> "Computer") <*> (pure (fromEnum s)))++instance ToHeaders CreateComputer where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("DirectoryService_20150416.CreateComputer" ::+                       ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON CreateComputer where+        toJSON CreateComputer'{..}+          = object+              ["ComputerAttributes" .= _ccComputerAttributes,+               "OrganizationalUnitDistinguishedName" .=+                 _ccOrganizationalUnitDistinguishedName,+               "DirectoryId" .= _ccDirectoryId,+               "ComputerName" .= _ccComputerName,+               "Password" .= _ccPassword]++instance ToPath CreateComputer where+        toPath = const "/"++instance ToQuery CreateComputer where+        toQuery = const mempty++-- | Contains the results for the CreateComputer operation.+--+-- /See:/ 'createComputerResponse' smart constructor.+data CreateComputerResponse = CreateComputerResponse'+    { _ccrsComputer :: !(Maybe Computer)+    , _ccrsStatus   :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'CreateComputerResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ccrsComputer'+--+-- * 'ccrsStatus'+createComputerResponse+    :: Int -- ^ 'ccrsStatus'+    -> CreateComputerResponse+createComputerResponse pStatus_ =+    CreateComputerResponse'+    { _ccrsComputer = Nothing+    , _ccrsStatus = pStatus_+    }++-- | A Computer object the represents the computer account.+ccrsComputer :: Lens' CreateComputerResponse (Maybe Computer)+ccrsComputer = lens _ccrsComputer (\ s a -> s{_ccrsComputer = a});++-- | The response status code.+ccrsStatus :: Lens' CreateComputerResponse Int+ccrsStatus = lens _ccrsStatus (\ s a -> s{_ccrsStatus = a});
+ gen/Network/AWS/DirectoryService/CreateDirectory.hs view
@@ -0,0 +1,184 @@+{-# 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.DirectoryService.CreateDirectory+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a Simple AD directory.+--+-- /See:/ <http://docs.aws.amazon.com/directoryservice/latest/devguide/API_CreateDirectory.html AWS API Reference> for CreateDirectory.+module Network.AWS.DirectoryService.CreateDirectory+    (+    -- * Creating a Request+      createDirectory+    , CreateDirectory+    -- * Request Lenses+    , cShortName+    , cVPCSettings+    , cDescription+    , cName+    , cPassword+    , cSize++    -- * Destructuring the Response+    , createDirectoryResponse+    , CreateDirectoryResponse+    -- * Response Lenses+    , crsDirectoryId+    , crsStatus+    ) where++import           Network.AWS.DirectoryService.Types+import           Network.AWS.DirectoryService.Types.Product+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- | Contains the inputs for the CreateDirectory operation.+--+-- /See:/ 'createDirectory' smart constructor.+data CreateDirectory = CreateDirectory'+    { _cShortName   :: !(Maybe Text)+    , _cVPCSettings :: !(Maybe DirectoryVPCSettings)+    , _cDescription :: !(Maybe Text)+    , _cName        :: !Text+    , _cPassword    :: !(Sensitive Text)+    , _cSize        :: !DirectorySize+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'CreateDirectory' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cShortName'+--+-- * 'cVPCSettings'+--+-- * 'cDescription'+--+-- * 'cName'+--+-- * 'cPassword'+--+-- * 'cSize'+createDirectory+    :: Text -- ^ 'cName'+    -> Text -- ^ 'cPassword'+    -> DirectorySize -- ^ 'cSize'+    -> CreateDirectory+createDirectory pName_ pPassword_ pSize_ =+    CreateDirectory'+    { _cShortName = Nothing+    , _cVPCSettings = Nothing+    , _cDescription = Nothing+    , _cName = pName_+    , _cPassword = _Sensitive # pPassword_+    , _cSize = pSize_+    }++-- | The short name of the directory, such as 'CORP'.+cShortName :: Lens' CreateDirectory (Maybe Text)+cShortName = lens _cShortName (\ s a -> s{_cShortName = a});++-- | A DirectoryVpcSettings object that contains additional information for+-- the operation.+cVPCSettings :: Lens' CreateDirectory (Maybe DirectoryVPCSettings)+cVPCSettings = lens _cVPCSettings (\ s a -> s{_cVPCSettings = a});++-- | A textual description for the directory.+cDescription :: Lens' CreateDirectory (Maybe Text)+cDescription = lens _cDescription (\ s a -> s{_cDescription = a});++-- | The fully qualified name for the directory, such as 'corp.example.com'.+cName :: Lens' CreateDirectory Text+cName = lens _cName (\ s a -> s{_cName = a});++-- | The password for the directory administrator. The directory creation+-- process creates a directory administrator account with the username+-- 'Administrator' and this password.+cPassword :: Lens' CreateDirectory Text+cPassword = lens _cPassword (\ s a -> s{_cPassword = a}) . _Sensitive;++-- | The size of the directory.+cSize :: Lens' CreateDirectory DirectorySize+cSize = lens _cSize (\ s a -> s{_cSize = a});++instance AWSRequest CreateDirectory where+        type Sv CreateDirectory = DirectoryService+        type Rs CreateDirectory = CreateDirectoryResponse+        request = postJSON+        response+          = receiveJSON+              (\ s h x ->+                 CreateDirectoryResponse' <$>+                   (x .?> "DirectoryId") <*> (pure (fromEnum s)))++instance ToHeaders CreateDirectory where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("DirectoryService_20150416.CreateDirectory" ::+                       ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON CreateDirectory where+        toJSON CreateDirectory'{..}+          = object+              ["ShortName" .= _cShortName,+               "VpcSettings" .= _cVPCSettings,+               "Description" .= _cDescription, "Name" .= _cName,+               "Password" .= _cPassword, "Size" .= _cSize]++instance ToPath CreateDirectory where+        toPath = const "/"++instance ToQuery CreateDirectory where+        toQuery = const mempty++-- | Contains the results of the CreateDirectory operation.+--+-- /See:/ 'createDirectoryResponse' smart constructor.+data CreateDirectoryResponse = CreateDirectoryResponse'+    { _crsDirectoryId :: !(Maybe Text)+    , _crsStatus      :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'CreateDirectoryResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'crsDirectoryId'+--+-- * 'crsStatus'+createDirectoryResponse+    :: Int -- ^ 'crsStatus'+    -> CreateDirectoryResponse+createDirectoryResponse pStatus_ =+    CreateDirectoryResponse'+    { _crsDirectoryId = Nothing+    , _crsStatus = pStatus_+    }++-- | The identifier of the directory that was created.+crsDirectoryId :: Lens' CreateDirectoryResponse (Maybe Text)+crsDirectoryId = lens _crsDirectoryId (\ s a -> s{_crsDirectoryId = a});++-- | The response status code.+crsStatus :: Lens' CreateDirectoryResponse Int+crsStatus = lens _crsStatus (\ s a -> s{_crsStatus = a});
+ gen/Network/AWS/DirectoryService/CreateSnapshot.hs view
@@ -0,0 +1,142 @@+{-# 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.DirectoryService.CreateSnapshot+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a snapshot of an existing directory.+--+-- You cannot take snapshots of extended or connected directories.+--+-- /See:/ <http://docs.aws.amazon.com/directoryservice/latest/devguide/API_CreateSnapshot.html AWS API Reference> for CreateSnapshot.+module Network.AWS.DirectoryService.CreateSnapshot+    (+    -- * Creating a Request+      createSnapshot+    , CreateSnapshot+    -- * Request Lenses+    , csName+    , csDirectoryId++    -- * Destructuring the Response+    , createSnapshotResponse+    , CreateSnapshotResponse+    -- * Response Lenses+    , csrsSnapshotId+    , csrsStatus+    ) where++import           Network.AWS.DirectoryService.Types+import           Network.AWS.DirectoryService.Types.Product+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- | Contains the inputs for the CreateSnapshot operation.+--+-- /See:/ 'createSnapshot' smart constructor.+data CreateSnapshot = CreateSnapshot'+    { _csName        :: !(Maybe Text)+    , _csDirectoryId :: !Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'CreateSnapshot' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'csName'+--+-- * 'csDirectoryId'+createSnapshot+    :: Text -- ^ 'csDirectoryId'+    -> CreateSnapshot+createSnapshot pDirectoryId_ =+    CreateSnapshot'+    { _csName = Nothing+    , _csDirectoryId = pDirectoryId_+    }++-- | The descriptive name to apply to the snapshot.+csName :: Lens' CreateSnapshot (Maybe Text)+csName = lens _csName (\ s a -> s{_csName = a});++-- | The identifier of the directory to take a snapshot of.+csDirectoryId :: Lens' CreateSnapshot Text+csDirectoryId = lens _csDirectoryId (\ s a -> s{_csDirectoryId = a});++instance AWSRequest CreateSnapshot where+        type Sv CreateSnapshot = DirectoryService+        type Rs CreateSnapshot = CreateSnapshotResponse+        request = postJSON+        response+          = receiveJSON+              (\ s h x ->+                 CreateSnapshotResponse' <$>+                   (x .?> "SnapshotId") <*> (pure (fromEnum s)))++instance ToHeaders CreateSnapshot where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("DirectoryService_20150416.CreateSnapshot" ::+                       ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON CreateSnapshot where+        toJSON CreateSnapshot'{..}+          = object+              ["Name" .= _csName, "DirectoryId" .= _csDirectoryId]++instance ToPath CreateSnapshot where+        toPath = const "/"++instance ToQuery CreateSnapshot where+        toQuery = const mempty++-- | Contains the results of the CreateSnapshot operation.+--+-- /See:/ 'createSnapshotResponse' smart constructor.+data CreateSnapshotResponse = CreateSnapshotResponse'+    { _csrsSnapshotId :: !(Maybe Text)+    , _csrsStatus     :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'CreateSnapshotResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'csrsSnapshotId'+--+-- * 'csrsStatus'+createSnapshotResponse+    :: Int -- ^ 'csrsStatus'+    -> CreateSnapshotResponse+createSnapshotResponse pStatus_ =+    CreateSnapshotResponse'+    { _csrsSnapshotId = Nothing+    , _csrsStatus = pStatus_+    }++-- | The identifier of the snapshot that was created.+csrsSnapshotId :: Lens' CreateSnapshotResponse (Maybe Text)+csrsSnapshotId = lens _csrsSnapshotId (\ s a -> s{_csrsSnapshotId = a});++-- | The response status code.+csrsStatus :: Lens' CreateSnapshotResponse Int+csrsStatus = lens _csrsStatus (\ s a -> s{_csrsStatus = a});
+ gen/Network/AWS/DirectoryService/DeleteDirectory.hs view
@@ -0,0 +1,130 @@+{-# 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.DirectoryService.DeleteDirectory+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes an AWS Directory Service directory.+--+-- /See:/ <http://docs.aws.amazon.com/directoryservice/latest/devguide/API_DeleteDirectory.html AWS API Reference> for DeleteDirectory.+module Network.AWS.DirectoryService.DeleteDirectory+    (+    -- * Creating a Request+      deleteDirectory+    , DeleteDirectory+    -- * Request Lenses+    , dDirectoryId++    -- * Destructuring the Response+    , deleteDirectoryResponse+    , DeleteDirectoryResponse+    -- * Response Lenses+    , drsDirectoryId+    , drsStatus+    ) where++import           Network.AWS.DirectoryService.Types+import           Network.AWS.DirectoryService.Types.Product+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- | Contains the inputs for the DeleteDirectory operation.+--+-- /See:/ 'deleteDirectory' smart constructor.+newtype DeleteDirectory = DeleteDirectory'+    { _dDirectoryId :: Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DeleteDirectory' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dDirectoryId'+deleteDirectory+    :: Text -- ^ 'dDirectoryId'+    -> DeleteDirectory+deleteDirectory pDirectoryId_ =+    DeleteDirectory'+    { _dDirectoryId = pDirectoryId_+    }++-- | The identifier of the directory to delete.+dDirectoryId :: Lens' DeleteDirectory Text+dDirectoryId = lens _dDirectoryId (\ s a -> s{_dDirectoryId = a});++instance AWSRequest DeleteDirectory where+        type Sv DeleteDirectory = DirectoryService+        type Rs DeleteDirectory = DeleteDirectoryResponse+        request = postJSON+        response+          = receiveJSON+              (\ s h x ->+                 DeleteDirectoryResponse' <$>+                   (x .?> "DirectoryId") <*> (pure (fromEnum s)))++instance ToHeaders DeleteDirectory where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("DirectoryService_20150416.DeleteDirectory" ::+                       ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON DeleteDirectory where+        toJSON DeleteDirectory'{..}+          = object ["DirectoryId" .= _dDirectoryId]++instance ToPath DeleteDirectory where+        toPath = const "/"++instance ToQuery DeleteDirectory where+        toQuery = const mempty++-- | Contains the results of the DeleteDirectory operation.+--+-- /See:/ 'deleteDirectoryResponse' smart constructor.+data DeleteDirectoryResponse = DeleteDirectoryResponse'+    { _drsDirectoryId :: !(Maybe Text)+    , _drsStatus      :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DeleteDirectoryResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'drsDirectoryId'+--+-- * 'drsStatus'+deleteDirectoryResponse+    :: Int -- ^ 'drsStatus'+    -> DeleteDirectoryResponse+deleteDirectoryResponse pStatus_ =+    DeleteDirectoryResponse'+    { _drsDirectoryId = Nothing+    , _drsStatus = pStatus_+    }++-- | The directory identifier.+drsDirectoryId :: Lens' DeleteDirectoryResponse (Maybe Text)+drsDirectoryId = lens _drsDirectoryId (\ s a -> s{_drsDirectoryId = a});++-- | The response status code.+drsStatus :: Lens' DeleteDirectoryResponse Int+drsStatus = lens _drsStatus (\ s a -> s{_drsStatus = a});
+ gen/Network/AWS/DirectoryService/DeleteSnapshot.hs view
@@ -0,0 +1,130 @@+{-# 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.DirectoryService.DeleteSnapshot+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes a directory snapshot.+--+-- /See:/ <http://docs.aws.amazon.com/directoryservice/latest/devguide/API_DeleteSnapshot.html AWS API Reference> for DeleteSnapshot.+module Network.AWS.DirectoryService.DeleteSnapshot+    (+    -- * Creating a Request+      deleteSnapshot+    , DeleteSnapshot+    -- * Request Lenses+    , dsSnapshotId++    -- * Destructuring the Response+    , deleteSnapshotResponse+    , DeleteSnapshotResponse+    -- * Response Lenses+    , dsrsSnapshotId+    , dsrsStatus+    ) where++import           Network.AWS.DirectoryService.Types+import           Network.AWS.DirectoryService.Types.Product+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- | Contains the inputs for the DeleteSnapshot operation.+--+-- /See:/ 'deleteSnapshot' smart constructor.+newtype DeleteSnapshot = DeleteSnapshot'+    { _dsSnapshotId :: Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DeleteSnapshot' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dsSnapshotId'+deleteSnapshot+    :: Text -- ^ 'dsSnapshotId'+    -> DeleteSnapshot+deleteSnapshot pSnapshotId_ =+    DeleteSnapshot'+    { _dsSnapshotId = pSnapshotId_+    }++-- | The identifier of the directory snapshot to be deleted.+dsSnapshotId :: Lens' DeleteSnapshot Text+dsSnapshotId = lens _dsSnapshotId (\ s a -> s{_dsSnapshotId = a});++instance AWSRequest DeleteSnapshot where+        type Sv DeleteSnapshot = DirectoryService+        type Rs DeleteSnapshot = DeleteSnapshotResponse+        request = postJSON+        response+          = receiveJSON+              (\ s h x ->+                 DeleteSnapshotResponse' <$>+                   (x .?> "SnapshotId") <*> (pure (fromEnum s)))++instance ToHeaders DeleteSnapshot where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("DirectoryService_20150416.DeleteSnapshot" ::+                       ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON DeleteSnapshot where+        toJSON DeleteSnapshot'{..}+          = object ["SnapshotId" .= _dsSnapshotId]++instance ToPath DeleteSnapshot where+        toPath = const "/"++instance ToQuery DeleteSnapshot where+        toQuery = const mempty++-- | Contains the results of the DeleteSnapshot operation.+--+-- /See:/ 'deleteSnapshotResponse' smart constructor.+data DeleteSnapshotResponse = DeleteSnapshotResponse'+    { _dsrsSnapshotId :: !(Maybe Text)+    , _dsrsStatus     :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DeleteSnapshotResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dsrsSnapshotId'+--+-- * 'dsrsStatus'+deleteSnapshotResponse+    :: Int -- ^ 'dsrsStatus'+    -> DeleteSnapshotResponse+deleteSnapshotResponse pStatus_ =+    DeleteSnapshotResponse'+    { _dsrsSnapshotId = Nothing+    , _dsrsStatus = pStatus_+    }++-- | The identifier of the directory snapshot that was deleted.+dsrsSnapshotId :: Lens' DeleteSnapshotResponse (Maybe Text)+dsrsSnapshotId = lens _dsrsSnapshotId (\ s a -> s{_dsrsSnapshotId = a});++-- | The response status code.+dsrsStatus :: Lens' DeleteSnapshotResponse Int+dsrsStatus = lens _dsrsStatus (\ s a -> s{_dsrsStatus = a});
+ gen/Network/AWS/DirectoryService/DescribeDirectories.hs view
@@ -0,0 +1,189 @@+{-# 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.DirectoryService.DescribeDirectories+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Obtains information about the directories that belong to this account.+--+-- You can retrieve information about specific directories by passing the+-- directory identifiers in the /DirectoryIds/ parameter. Otherwise, all+-- directories that belong to the current account are returned.+--+-- This operation supports pagination with the use of the /NextToken/+-- request and response parameters. If more results are available, the+-- /DescribeDirectoriesResult.NextToken/ member contains a token that you+-- pass in the next call to DescribeDirectories to retrieve the next set of+-- items.+--+-- You can also specify a maximum number of return results with the /Limit/+-- parameter.+--+-- /See:/ <http://docs.aws.amazon.com/directoryservice/latest/devguide/API_DescribeDirectories.html AWS API Reference> for DescribeDirectories.+module Network.AWS.DirectoryService.DescribeDirectories+    (+    -- * Creating a Request+      describeDirectories+    , DescribeDirectories+    -- * Request Lenses+    , ddNextToken+    , ddDirectoryIds+    , ddLimit++    -- * Destructuring the Response+    , describeDirectoriesResponse+    , DescribeDirectoriesResponse+    -- * Response Lenses+    , ddrsDirectoryDescriptions+    , ddrsNextToken+    , ddrsStatus+    ) where++import           Network.AWS.DirectoryService.Types+import           Network.AWS.DirectoryService.Types.Product+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- | Contains the inputs for the DescribeDirectories operation.+--+-- /See:/ 'describeDirectories' smart constructor.+data DescribeDirectories = DescribeDirectories'+    { _ddNextToken    :: !(Maybe Text)+    , _ddDirectoryIds :: !(Maybe [Text])+    , _ddLimit        :: !(Maybe Nat)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DescribeDirectories' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ddNextToken'+--+-- * 'ddDirectoryIds'+--+-- * 'ddLimit'+describeDirectories+    :: DescribeDirectories+describeDirectories =+    DescribeDirectories'+    { _ddNextToken = Nothing+    , _ddDirectoryIds = Nothing+    , _ddLimit = Nothing+    }++-- | The /DescribeDirectoriesResult.NextToken/ value from a previous call to+-- DescribeDirectories. Pass null if this is the first call.+ddNextToken :: Lens' DescribeDirectories (Maybe Text)+ddNextToken = lens _ddNextToken (\ s a -> s{_ddNextToken = a});++-- | A list of identifiers of the directories to obtain the information for.+-- If this member is null, all directories that belong to the current+-- account are returned.+--+-- An empty list results in an 'InvalidParameterException' being thrown.+ddDirectoryIds :: Lens' DescribeDirectories [Text]+ddDirectoryIds = lens _ddDirectoryIds (\ s a -> s{_ddDirectoryIds = a}) . _Default . _Coerce;++-- | The maximum number of items to return. If this value is zero, the+-- maximum number of items is specified by the limitations of the+-- operation.+ddLimit :: Lens' DescribeDirectories (Maybe Natural)+ddLimit = lens _ddLimit (\ s a -> s{_ddLimit = a}) . mapping _Nat;++instance AWSRequest DescribeDirectories where+        type Sv DescribeDirectories = DirectoryService+        type Rs DescribeDirectories =+             DescribeDirectoriesResponse+        request = postJSON+        response+          = receiveJSON+              (\ s h x ->+                 DescribeDirectoriesResponse' <$>+                   (x .?> "DirectoryDescriptions" .!@ mempty) <*>+                     (x .?> "NextToken")+                     <*> (pure (fromEnum s)))++instance ToHeaders DescribeDirectories where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("DirectoryService_20150416.DescribeDirectories" ::+                       ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON DescribeDirectories where+        toJSON DescribeDirectories'{..}+          = object+              ["NextToken" .= _ddNextToken,+               "DirectoryIds" .= _ddDirectoryIds,+               "Limit" .= _ddLimit]++instance ToPath DescribeDirectories where+        toPath = const "/"++instance ToQuery DescribeDirectories where+        toQuery = const mempty++-- | Contains the results of the DescribeDirectories operation.+--+-- /See:/ 'describeDirectoriesResponse' smart constructor.+data DescribeDirectoriesResponse = DescribeDirectoriesResponse'+    { _ddrsDirectoryDescriptions :: !(Maybe [DirectoryDescription])+    , _ddrsNextToken             :: !(Maybe Text)+    , _ddrsStatus                :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DescribeDirectoriesResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ddrsDirectoryDescriptions'+--+-- * 'ddrsNextToken'+--+-- * 'ddrsStatus'+describeDirectoriesResponse+    :: Int -- ^ 'ddrsStatus'+    -> DescribeDirectoriesResponse+describeDirectoriesResponse pStatus_ =+    DescribeDirectoriesResponse'+    { _ddrsDirectoryDescriptions = Nothing+    , _ddrsNextToken = Nothing+    , _ddrsStatus = pStatus_+    }++-- | The list of DirectoryDescription objects that were retrieved.+--+-- It is possible that this list contains less than the number of items+-- specified in the /Limit/ member of the request. This occurs if there are+-- less than the requested number of items left to retrieve, or if the+-- limitations of the operation have been exceeded.+ddrsDirectoryDescriptions :: Lens' DescribeDirectoriesResponse [DirectoryDescription]+ddrsDirectoryDescriptions = lens _ddrsDirectoryDescriptions (\ s a -> s{_ddrsDirectoryDescriptions = a}) . _Default . _Coerce;++-- | If not null, more results are available. Pass this value for the+-- /NextToken/ parameter in a subsequent call to DescribeDirectories to+-- retrieve the next set of items.+ddrsNextToken :: Lens' DescribeDirectoriesResponse (Maybe Text)+ddrsNextToken = lens _ddrsNextToken (\ s a -> s{_ddrsNextToken = a});++-- | The response status code.+ddrsStatus :: Lens' DescribeDirectoriesResponse Int+ddrsStatus = lens _ddrsStatus (\ s a -> s{_ddrsStatus = a});
+ gen/Network/AWS/DirectoryService/DescribeSnapshots.hs view
@@ -0,0 +1,188 @@+{-# 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.DirectoryService.DescribeSnapshots+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Obtains information about the directory snapshots that belong to this+-- account.+--+-- This operation supports pagination with the use of the /NextToken/+-- request and response parameters. If more results are available, the+-- /DescribeSnapshots.NextToken/ member contains a token that you pass in+-- the next call to DescribeSnapshots to retrieve the next set of items.+--+-- You can also specify a maximum number of return results with the /Limit/+-- parameter.+--+-- /See:/ <http://docs.aws.amazon.com/directoryservice/latest/devguide/API_DescribeSnapshots.html AWS API Reference> for DescribeSnapshots.+module Network.AWS.DirectoryService.DescribeSnapshots+    (+    -- * Creating a Request+      describeSnapshots+    , DescribeSnapshots+    -- * Request Lenses+    , dsDirectoryId+    , dsNextToken+    , dsSnapshotIds+    , dsLimit++    -- * Destructuring the Response+    , describeSnapshotsResponse+    , DescribeSnapshotsResponse+    -- * Response Lenses+    , dssrsNextToken+    , dssrsSnapshots+    , dssrsStatus+    ) where++import           Network.AWS.DirectoryService.Types+import           Network.AWS.DirectoryService.Types.Product+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- | Contains the inputs for the DescribeSnapshots operation.+--+-- /See:/ 'describeSnapshots' smart constructor.+data DescribeSnapshots = DescribeSnapshots'+    { _dsDirectoryId :: !(Maybe Text)+    , _dsNextToken   :: !(Maybe Text)+    , _dsSnapshotIds :: !(Maybe [Text])+    , _dsLimit       :: !(Maybe Nat)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DescribeSnapshots' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dsDirectoryId'+--+-- * 'dsNextToken'+--+-- * 'dsSnapshotIds'+--+-- * 'dsLimit'+describeSnapshots+    :: DescribeSnapshots+describeSnapshots =+    DescribeSnapshots'+    { _dsDirectoryId = Nothing+    , _dsNextToken = Nothing+    , _dsSnapshotIds = Nothing+    , _dsLimit = Nothing+    }++-- | The identifier of the directory to retrieve snapshot information for.+dsDirectoryId :: Lens' DescribeSnapshots (Maybe Text)+dsDirectoryId = lens _dsDirectoryId (\ s a -> s{_dsDirectoryId = a});++-- | The /DescribeSnapshotsResult.NextToken/ value from a previous call to+-- DescribeSnapshots. Pass null if this is the first call.+dsNextToken :: Lens' DescribeSnapshots (Maybe Text)+dsNextToken = lens _dsNextToken (\ s a -> s{_dsNextToken = a});++-- | A list of identifiers of the snapshots to obtain the information for. If+-- this member is null or empty, all snapshots are returned using the+-- /Limit/ and /NextToken/ members.+dsSnapshotIds :: Lens' DescribeSnapshots [Text]+dsSnapshotIds = lens _dsSnapshotIds (\ s a -> s{_dsSnapshotIds = a}) . _Default . _Coerce;++-- | The maximum number of objects to return.+dsLimit :: Lens' DescribeSnapshots (Maybe Natural)+dsLimit = lens _dsLimit (\ s a -> s{_dsLimit = a}) . mapping _Nat;++instance AWSRequest DescribeSnapshots where+        type Sv DescribeSnapshots = DirectoryService+        type Rs DescribeSnapshots = DescribeSnapshotsResponse+        request = postJSON+        response+          = receiveJSON+              (\ s h x ->+                 DescribeSnapshotsResponse' <$>+                   (x .?> "NextToken") <*>+                     (x .?> "Snapshots" .!@ mempty)+                     <*> (pure (fromEnum s)))++instance ToHeaders DescribeSnapshots where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("DirectoryService_20150416.DescribeSnapshots" ::+                       ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON DescribeSnapshots where+        toJSON DescribeSnapshots'{..}+          = object+              ["DirectoryId" .= _dsDirectoryId,+               "NextToken" .= _dsNextToken,+               "SnapshotIds" .= _dsSnapshotIds, "Limit" .= _dsLimit]++instance ToPath DescribeSnapshots where+        toPath = const "/"++instance ToQuery DescribeSnapshots where+        toQuery = const mempty++-- | Contains the results of the DescribeSnapshots operation.+--+-- /See:/ 'describeSnapshotsResponse' smart constructor.+data DescribeSnapshotsResponse = DescribeSnapshotsResponse'+    { _dssrsNextToken :: !(Maybe Text)+    , _dssrsSnapshots :: !(Maybe [Snapshot])+    , _dssrsStatus    :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DescribeSnapshotsResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dssrsNextToken'+--+-- * 'dssrsSnapshots'+--+-- * 'dssrsStatus'+describeSnapshotsResponse+    :: Int -- ^ 'dssrsStatus'+    -> DescribeSnapshotsResponse+describeSnapshotsResponse pStatus_ =+    DescribeSnapshotsResponse'+    { _dssrsNextToken = Nothing+    , _dssrsSnapshots = Nothing+    , _dssrsStatus = pStatus_+    }++-- | If not null, more results are available. Pass this value in the+-- /NextToken/ member of a subsequent call to DescribeSnapshots.+dssrsNextToken :: Lens' DescribeSnapshotsResponse (Maybe Text)+dssrsNextToken = lens _dssrsNextToken (\ s a -> s{_dssrsNextToken = a});++-- | The list of Snapshot objects that were retrieved.+--+-- It is possible that this list contains less than the number of items+-- specified in the /Limit/ member of the request. This occurs if there are+-- less than the requested number of items left to retrieve, or if the+-- limitations of the operation have been exceeded.+dssrsSnapshots :: Lens' DescribeSnapshotsResponse [Snapshot]+dssrsSnapshots = lens _dssrsSnapshots (\ s a -> s{_dssrsSnapshots = a}) . _Default . _Coerce;++-- | The response status code.+dssrsStatus :: Lens' DescribeSnapshotsResponse Int+dssrsStatus = lens _dssrsStatus (\ s a -> s{_dssrsStatus = a});
+ gen/Network/AWS/DirectoryService/DisableRadius.hs view
@@ -0,0 +1,121 @@+{-# 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.DirectoryService.DisableRadius+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Disables multi-factor authentication (MFA) with Remote Authentication+-- Dial In User Service (RADIUS) for an AD Connector directory.+--+-- /See:/ <http://docs.aws.amazon.com/directoryservice/latest/devguide/API_DisableRadius.html AWS API Reference> for DisableRadius.+module Network.AWS.DirectoryService.DisableRadius+    (+    -- * Creating a Request+      disableRadius+    , DisableRadius+    -- * Request Lenses+    , drDirectoryId++    -- * Destructuring the Response+    , disableRadiusResponse+    , DisableRadiusResponse+    -- * Response Lenses+    , drrsStatus+    ) where++import           Network.AWS.DirectoryService.Types+import           Network.AWS.DirectoryService.Types.Product+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- | Contains the inputs for the DisableRadius operation.+--+-- /See:/ 'disableRadius' smart constructor.+newtype DisableRadius = DisableRadius'+    { _drDirectoryId :: Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DisableRadius' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'drDirectoryId'+disableRadius+    :: Text -- ^ 'drDirectoryId'+    -> DisableRadius+disableRadius pDirectoryId_ =+    DisableRadius'+    { _drDirectoryId = pDirectoryId_+    }++-- | The identifier of the directory to disable MFA for.+drDirectoryId :: Lens' DisableRadius Text+drDirectoryId = lens _drDirectoryId (\ s a -> s{_drDirectoryId = a});++instance AWSRequest DisableRadius where+        type Sv DisableRadius = DirectoryService+        type Rs DisableRadius = DisableRadiusResponse+        request = postJSON+        response+          = receiveEmpty+              (\ s h x ->+                 DisableRadiusResponse' <$> (pure (fromEnum s)))++instance ToHeaders DisableRadius where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("DirectoryService_20150416.DisableRadius" ::+                       ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON DisableRadius where+        toJSON DisableRadius'{..}+          = object ["DirectoryId" .= _drDirectoryId]++instance ToPath DisableRadius where+        toPath = const "/"++instance ToQuery DisableRadius where+        toQuery = const mempty++-- | Contains the results of the DisableRadius operation.+--+-- /See:/ 'disableRadiusResponse' smart constructor.+newtype DisableRadiusResponse = DisableRadiusResponse'+    { _drrsStatus :: Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DisableRadiusResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'drrsStatus'+disableRadiusResponse+    :: Int -- ^ 'drrsStatus'+    -> DisableRadiusResponse+disableRadiusResponse pStatus_ =+    DisableRadiusResponse'+    { _drrsStatus = pStatus_+    }++-- | The response status code.+drrsStatus :: Lens' DisableRadiusResponse Int+drrsStatus = lens _drrsStatus (\ s a -> s{_drrsStatus = a});
+ gen/Network/AWS/DirectoryService/DisableSSO.hs view
@@ -0,0 +1,151 @@+{-# 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.DirectoryService.DisableSSO+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Disables single-sign on for a directory.+--+-- /See:/ <http://docs.aws.amazon.com/directoryservice/latest/devguide/API_DisableSSO.html AWS API Reference> for DisableSSO.+module Network.AWS.DirectoryService.DisableSSO+    (+    -- * Creating a Request+      disableSSO+    , DisableSSO+    -- * Request Lenses+    , dssoUserName+    , dssoPassword+    , dssoDirectoryId++    -- * Destructuring the Response+    , disableSSOResponse+    , DisableSSOResponse+    -- * Response Lenses+    , dssorsStatus+    ) where++import           Network.AWS.DirectoryService.Types+import           Network.AWS.DirectoryService.Types.Product+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- | Contains the inputs for the DisableSso operation.+--+-- /See:/ 'disableSSO' smart constructor.+data DisableSSO = DisableSSO'+    { _dssoUserName    :: !(Maybe Text)+    , _dssoPassword    :: !(Maybe (Sensitive Text))+    , _dssoDirectoryId :: !Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DisableSSO' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dssoUserName'+--+-- * 'dssoPassword'+--+-- * 'dssoDirectoryId'+disableSSO+    :: Text -- ^ 'dssoDirectoryId'+    -> DisableSSO+disableSSO pDirectoryId_ =+    DisableSSO'+    { _dssoUserName = Nothing+    , _dssoPassword = Nothing+    , _dssoDirectoryId = pDirectoryId_+    }++-- | The username of an alternate account to use to disable single-sign on.+-- This is only used for AD Connector directories. This account must have+-- privileges to remove a service principle name.+--+-- If the AD Connector service account does not have privileges to remove a+-- service principle name, you can specify an alternate account with the+-- /UserName/ and /Password/ parameters. These credentials are only used to+-- disable single sign-on and are not stored by the service. The AD+-- Connector service account is not changed.+dssoUserName :: Lens' DisableSSO (Maybe Text)+dssoUserName = lens _dssoUserName (\ s a -> s{_dssoUserName = a});++-- | The password of an alternate account to use to disable single-sign on.+-- This is only used for AD Connector directories. See the /UserName/+-- parameter for more information.+dssoPassword :: Lens' DisableSSO (Maybe Text)+dssoPassword = lens _dssoPassword (\ s a -> s{_dssoPassword = a}) . mapping _Sensitive;++-- | The identifier of the directory to disable single-sign on for.+dssoDirectoryId :: Lens' DisableSSO Text+dssoDirectoryId = lens _dssoDirectoryId (\ s a -> s{_dssoDirectoryId = a});++instance AWSRequest DisableSSO where+        type Sv DisableSSO = DirectoryService+        type Rs DisableSSO = DisableSSOResponse+        request = postJSON+        response+          = receiveEmpty+              (\ s h x ->+                 DisableSSOResponse' <$> (pure (fromEnum s)))++instance ToHeaders DisableSSO where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("DirectoryService_20150416.DisableSso" ::+                       ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON DisableSSO where+        toJSON DisableSSO'{..}+          = object+              ["UserName" .= _dssoUserName,+               "Password" .= _dssoPassword,+               "DirectoryId" .= _dssoDirectoryId]++instance ToPath DisableSSO where+        toPath = const "/"++instance ToQuery DisableSSO where+        toQuery = const mempty++-- | Contains the results of the DisableSso operation.+--+-- /See:/ 'disableSSOResponse' smart constructor.+newtype DisableSSOResponse = DisableSSOResponse'+    { _dssorsStatus :: Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DisableSSOResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dssorsStatus'+disableSSOResponse+    :: Int -- ^ 'dssorsStatus'+    -> DisableSSOResponse+disableSSOResponse pStatus_ =+    DisableSSOResponse'+    { _dssorsStatus = pStatus_+    }++-- | The response status code.+dssorsStatus :: Lens' DisableSSOResponse Int+dssorsStatus = lens _dssorsStatus (\ s a -> s{_dssorsStatus = a});
+ gen/Network/AWS/DirectoryService/EnableRadius.hs view
@@ -0,0 +1,134 @@+{-# 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.DirectoryService.EnableRadius+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Enables multi-factor authentication (MFA) with Remote Authentication+-- Dial In User Service (RADIUS) for an AD Connector directory.+--+-- /See:/ <http://docs.aws.amazon.com/directoryservice/latest/devguide/API_EnableRadius.html AWS API Reference> for EnableRadius.+module Network.AWS.DirectoryService.EnableRadius+    (+    -- * Creating a Request+      enableRadius+    , EnableRadius+    -- * Request Lenses+    , erDirectoryId+    , erRadiusSettings++    -- * Destructuring the Response+    , enableRadiusResponse+    , EnableRadiusResponse+    -- * Response Lenses+    , errsStatus+    ) where++import           Network.AWS.DirectoryService.Types+import           Network.AWS.DirectoryService.Types.Product+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- | Contains the inputs for the EnableRadius operation.+--+-- /See:/ 'enableRadius' smart constructor.+data EnableRadius = EnableRadius'+    { _erDirectoryId    :: !Text+    , _erRadiusSettings :: !RadiusSettings+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'EnableRadius' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'erDirectoryId'+--+-- * 'erRadiusSettings'+enableRadius+    :: Text -- ^ 'erDirectoryId'+    -> RadiusSettings -- ^ 'erRadiusSettings'+    -> EnableRadius+enableRadius pDirectoryId_ pRadiusSettings_ =+    EnableRadius'+    { _erDirectoryId = pDirectoryId_+    , _erRadiusSettings = pRadiusSettings_+    }++-- | The identifier of the directory to enable MFA for.+erDirectoryId :: Lens' EnableRadius Text+erDirectoryId = lens _erDirectoryId (\ s a -> s{_erDirectoryId = a});++-- | A RadiusSettings object that contains information about the RADIUS+-- server.+erRadiusSettings :: Lens' EnableRadius RadiusSettings+erRadiusSettings = lens _erRadiusSettings (\ s a -> s{_erRadiusSettings = a});++instance AWSRequest EnableRadius where+        type Sv EnableRadius = DirectoryService+        type Rs EnableRadius = EnableRadiusResponse+        request = postJSON+        response+          = receiveEmpty+              (\ s h x ->+                 EnableRadiusResponse' <$> (pure (fromEnum s)))++instance ToHeaders EnableRadius where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("DirectoryService_20150416.EnableRadius" ::+                       ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON EnableRadius where+        toJSON EnableRadius'{..}+          = object+              ["DirectoryId" .= _erDirectoryId,+               "RadiusSettings" .= _erRadiusSettings]++instance ToPath EnableRadius where+        toPath = const "/"++instance ToQuery EnableRadius where+        toQuery = const mempty++-- | Contains the results of the EnableRadius operation.+--+-- /See:/ 'enableRadiusResponse' smart constructor.+newtype EnableRadiusResponse = EnableRadiusResponse'+    { _errsStatus :: Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'EnableRadiusResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'errsStatus'+enableRadiusResponse+    :: Int -- ^ 'errsStatus'+    -> EnableRadiusResponse+enableRadiusResponse pStatus_ =+    EnableRadiusResponse'+    { _errsStatus = pStatus_+    }++-- | The response status code.+errsStatus :: Lens' EnableRadiusResponse Int+errsStatus = lens _errsStatus (\ s a -> s{_errsStatus = a});
+ gen/Network/AWS/DirectoryService/EnableSSO.hs view
@@ -0,0 +1,151 @@+{-# 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.DirectoryService.EnableSSO+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Enables single-sign on for a directory.+--+-- /See:/ <http://docs.aws.amazon.com/directoryservice/latest/devguide/API_EnableSSO.html AWS API Reference> for EnableSSO.+module Network.AWS.DirectoryService.EnableSSO+    (+    -- * Creating a Request+      enableSSO+    , EnableSSO+    -- * Request Lenses+    , esUserName+    , esPassword+    , esDirectoryId++    -- * Destructuring the Response+    , enableSSOResponse+    , EnableSSOResponse+    -- * Response Lenses+    , esrsStatus+    ) where++import           Network.AWS.DirectoryService.Types+import           Network.AWS.DirectoryService.Types.Product+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- | Contains the inputs for the EnableSso operation.+--+-- /See:/ 'enableSSO' smart constructor.+data EnableSSO = EnableSSO'+    { _esUserName    :: !(Maybe Text)+    , _esPassword    :: !(Maybe (Sensitive Text))+    , _esDirectoryId :: !Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'EnableSSO' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'esUserName'+--+-- * 'esPassword'+--+-- * 'esDirectoryId'+enableSSO+    :: Text -- ^ 'esDirectoryId'+    -> EnableSSO+enableSSO pDirectoryId_ =+    EnableSSO'+    { _esUserName = Nothing+    , _esPassword = Nothing+    , _esDirectoryId = pDirectoryId_+    }++-- | The username of an alternate account to use to enable single-sign on.+-- This is only used for AD Connector directories. This account must have+-- privileges to add a service principle name.+--+-- If the AD Connector service account does not have privileges to add a+-- service principle name, you can specify an alternate account with the+-- /UserName/ and /Password/ parameters. These credentials are only used to+-- enable single sign-on and are not stored by the service. The AD+-- Connector service account is not changed.+esUserName :: Lens' EnableSSO (Maybe Text)+esUserName = lens _esUserName (\ s a -> s{_esUserName = a});++-- | The password of an alternate account to use to enable single-sign on.+-- This is only used for AD Connector directories. See the /UserName/+-- parameter for more information.+esPassword :: Lens' EnableSSO (Maybe Text)+esPassword = lens _esPassword (\ s a -> s{_esPassword = a}) . mapping _Sensitive;++-- | The identifier of the directory to enable single-sign on for.+esDirectoryId :: Lens' EnableSSO Text+esDirectoryId = lens _esDirectoryId (\ s a -> s{_esDirectoryId = a});++instance AWSRequest EnableSSO where+        type Sv EnableSSO = DirectoryService+        type Rs EnableSSO = EnableSSOResponse+        request = postJSON+        response+          = receiveEmpty+              (\ s h x ->+                 EnableSSOResponse' <$> (pure (fromEnum s)))++instance ToHeaders EnableSSO where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("DirectoryService_20150416.EnableSso" ::+                       ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON EnableSSO where+        toJSON EnableSSO'{..}+          = object+              ["UserName" .= _esUserName,+               "Password" .= _esPassword,+               "DirectoryId" .= _esDirectoryId]++instance ToPath EnableSSO where+        toPath = const "/"++instance ToQuery EnableSSO where+        toQuery = const mempty++-- | Contains the results of the EnableSso operation.+--+-- /See:/ 'enableSSOResponse' smart constructor.+newtype EnableSSOResponse = EnableSSOResponse'+    { _esrsStatus :: Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'EnableSSOResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'esrsStatus'+enableSSOResponse+    :: Int -- ^ 'esrsStatus'+    -> EnableSSOResponse+enableSSOResponse pStatus_ =+    EnableSSOResponse'+    { _esrsStatus = pStatus_+    }++-- | The response status code.+esrsStatus :: Lens' EnableSSOResponse Int+esrsStatus = lens _esrsStatus (\ s a -> s{_esrsStatus = a});
+ gen/Network/AWS/DirectoryService/GetDirectoryLimits.hs view
@@ -0,0 +1,118 @@+{-# 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.DirectoryService.GetDirectoryLimits+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Obtains directory limit information for the current region.+--+-- /See:/ <http://docs.aws.amazon.com/directoryservice/latest/devguide/API_GetDirectoryLimits.html AWS API Reference> for GetDirectoryLimits.+module Network.AWS.DirectoryService.GetDirectoryLimits+    (+    -- * Creating a Request+      getDirectoryLimits+    , GetDirectoryLimits++    -- * Destructuring the Response+    , getDirectoryLimitsResponse+    , GetDirectoryLimitsResponse+    -- * Response Lenses+    , gdlrsDirectoryLimits+    , gdlrsStatus+    ) where++import           Network.AWS.DirectoryService.Types+import           Network.AWS.DirectoryService.Types.Product+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- | Contains the inputs for the GetDirectoryLimits operation.+--+-- /See:/ 'getDirectoryLimits' smart constructor.+data GetDirectoryLimits =+    GetDirectoryLimits'+    deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'GetDirectoryLimits' with the minimum fields required to make a request.+--+getDirectoryLimits+    :: GetDirectoryLimits+getDirectoryLimits = GetDirectoryLimits'++instance AWSRequest GetDirectoryLimits where+        type Sv GetDirectoryLimits = DirectoryService+        type Rs GetDirectoryLimits =+             GetDirectoryLimitsResponse+        request = postJSON+        response+          = receiveJSON+              (\ s h x ->+                 GetDirectoryLimitsResponse' <$>+                   (x .?> "DirectoryLimits") <*> (pure (fromEnum s)))++instance ToHeaders GetDirectoryLimits where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("DirectoryService_20150416.GetDirectoryLimits" ::+                       ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON GetDirectoryLimits where+        toJSON = const (Object mempty)++instance ToPath GetDirectoryLimits where+        toPath = const "/"++instance ToQuery GetDirectoryLimits where+        toQuery = const mempty++-- | Contains the results of the GetDirectoryLimits operation.+--+-- /See:/ 'getDirectoryLimitsResponse' smart constructor.+data GetDirectoryLimitsResponse = GetDirectoryLimitsResponse'+    { _gdlrsDirectoryLimits :: !(Maybe DirectoryLimits)+    , _gdlrsStatus          :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'GetDirectoryLimitsResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gdlrsDirectoryLimits'+--+-- * 'gdlrsStatus'+getDirectoryLimitsResponse+    :: Int -- ^ 'gdlrsStatus'+    -> GetDirectoryLimitsResponse+getDirectoryLimitsResponse pStatus_ =+    GetDirectoryLimitsResponse'+    { _gdlrsDirectoryLimits = Nothing+    , _gdlrsStatus = pStatus_+    }++-- | A DirectoryLimits object that contains the directory limits for the+-- current region.+gdlrsDirectoryLimits :: Lens' GetDirectoryLimitsResponse (Maybe DirectoryLimits)+gdlrsDirectoryLimits = lens _gdlrsDirectoryLimits (\ s a -> s{_gdlrsDirectoryLimits = a});++-- | The response status code.+gdlrsStatus :: Lens' GetDirectoryLimitsResponse Int+gdlrsStatus = lens _gdlrsStatus (\ s a -> s{_gdlrsStatus = a});
+ gen/Network/AWS/DirectoryService/GetSnapshotLimits.hs view
@@ -0,0 +1,131 @@+{-# 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.DirectoryService.GetSnapshotLimits+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Obtains the manual snapshot limits for a directory.+--+-- /See:/ <http://docs.aws.amazon.com/directoryservice/latest/devguide/API_GetSnapshotLimits.html AWS API Reference> for GetSnapshotLimits.+module Network.AWS.DirectoryService.GetSnapshotLimits+    (+    -- * Creating a Request+      getSnapshotLimits+    , GetSnapshotLimits+    -- * Request Lenses+    , gslDirectoryId++    -- * Destructuring the Response+    , getSnapshotLimitsResponse+    , GetSnapshotLimitsResponse+    -- * Response Lenses+    , gslrsSnapshotLimits+    , gslrsStatus+    ) where++import           Network.AWS.DirectoryService.Types+import           Network.AWS.DirectoryService.Types.Product+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- | Contains the inputs for the GetSnapshotLimits operation.+--+-- /See:/ 'getSnapshotLimits' smart constructor.+newtype GetSnapshotLimits = GetSnapshotLimits'+    { _gslDirectoryId :: Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'GetSnapshotLimits' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gslDirectoryId'+getSnapshotLimits+    :: Text -- ^ 'gslDirectoryId'+    -> GetSnapshotLimits+getSnapshotLimits pDirectoryId_ =+    GetSnapshotLimits'+    { _gslDirectoryId = pDirectoryId_+    }++-- | Contains the identifier of the directory to obtain the limits for.+gslDirectoryId :: Lens' GetSnapshotLimits Text+gslDirectoryId = lens _gslDirectoryId (\ s a -> s{_gslDirectoryId = a});++instance AWSRequest GetSnapshotLimits where+        type Sv GetSnapshotLimits = DirectoryService+        type Rs GetSnapshotLimits = GetSnapshotLimitsResponse+        request = postJSON+        response+          = receiveJSON+              (\ s h x ->+                 GetSnapshotLimitsResponse' <$>+                   (x .?> "SnapshotLimits") <*> (pure (fromEnum s)))++instance ToHeaders GetSnapshotLimits where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("DirectoryService_20150416.GetSnapshotLimits" ::+                       ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON GetSnapshotLimits where+        toJSON GetSnapshotLimits'{..}+          = object ["DirectoryId" .= _gslDirectoryId]++instance ToPath GetSnapshotLimits where+        toPath = const "/"++instance ToQuery GetSnapshotLimits where+        toQuery = const mempty++-- | Contains the results of the GetSnapshotLimits operation.+--+-- /See:/ 'getSnapshotLimitsResponse' smart constructor.+data GetSnapshotLimitsResponse = GetSnapshotLimitsResponse'+    { _gslrsSnapshotLimits :: !(Maybe SnapshotLimits)+    , _gslrsStatus         :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'GetSnapshotLimitsResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gslrsSnapshotLimits'+--+-- * 'gslrsStatus'+getSnapshotLimitsResponse+    :: Int -- ^ 'gslrsStatus'+    -> GetSnapshotLimitsResponse+getSnapshotLimitsResponse pStatus_ =+    GetSnapshotLimitsResponse'+    { _gslrsSnapshotLimits = Nothing+    , _gslrsStatus = pStatus_+    }++-- | A SnapshotLimits object that contains the manual snapshot limits for the+-- specified directory.+gslrsSnapshotLimits :: Lens' GetSnapshotLimitsResponse (Maybe SnapshotLimits)+gslrsSnapshotLimits = lens _gslrsSnapshotLimits (\ s a -> s{_gslrsSnapshotLimits = a});++-- | The response status code.+gslrsStatus :: Lens' GetSnapshotLimitsResponse Int+gslrsStatus = lens _gslrsStatus (\ s a -> s{_gslrsStatus = a});
+ gen/Network/AWS/DirectoryService/RestoreFromSnapshot.hs view
@@ -0,0 +1,130 @@+{-# 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.DirectoryService.RestoreFromSnapshot+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Restores a directory using an existing directory snapshot.+--+-- When you restore a directory from a snapshot, any changes made to the+-- directory after the snapshot date are overwritten.+--+-- This action returns as soon as the restore operation is initiated. You+-- can monitor the progress of the restore operation by calling the+-- DescribeDirectories operation with the directory identifier. When the+-- __DirectoryDescription.Stage__ value changes to 'Active', the restore+-- operation is complete.+--+-- /See:/ <http://docs.aws.amazon.com/directoryservice/latest/devguide/API_RestoreFromSnapshot.html AWS API Reference> for RestoreFromSnapshot.+module Network.AWS.DirectoryService.RestoreFromSnapshot+    (+    -- * Creating a Request+      restoreFromSnapshot+    , RestoreFromSnapshot+    -- * Request Lenses+    , rfsSnapshotId++    -- * Destructuring the Response+    , restoreFromSnapshotResponse+    , RestoreFromSnapshotResponse+    -- * Response Lenses+    , rfsrsStatus+    ) where++import           Network.AWS.DirectoryService.Types+import           Network.AWS.DirectoryService.Types.Product+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- | An object representing the inputs for the RestoreFromSnapshot operation.+--+-- /See:/ 'restoreFromSnapshot' smart constructor.+newtype RestoreFromSnapshot = RestoreFromSnapshot'+    { _rfsSnapshotId :: Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'RestoreFromSnapshot' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rfsSnapshotId'+restoreFromSnapshot+    :: Text -- ^ 'rfsSnapshotId'+    -> RestoreFromSnapshot+restoreFromSnapshot pSnapshotId_ =+    RestoreFromSnapshot'+    { _rfsSnapshotId = pSnapshotId_+    }++-- | The identifier of the snapshot to restore from.+rfsSnapshotId :: Lens' RestoreFromSnapshot Text+rfsSnapshotId = lens _rfsSnapshotId (\ s a -> s{_rfsSnapshotId = a});++instance AWSRequest RestoreFromSnapshot where+        type Sv RestoreFromSnapshot = DirectoryService+        type Rs RestoreFromSnapshot =+             RestoreFromSnapshotResponse+        request = postJSON+        response+          = receiveEmpty+              (\ s h x ->+                 RestoreFromSnapshotResponse' <$> (pure (fromEnum s)))++instance ToHeaders RestoreFromSnapshot where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("DirectoryService_20150416.RestoreFromSnapshot" ::+                       ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON RestoreFromSnapshot where+        toJSON RestoreFromSnapshot'{..}+          = object ["SnapshotId" .= _rfsSnapshotId]++instance ToPath RestoreFromSnapshot where+        toPath = const "/"++instance ToQuery RestoreFromSnapshot where+        toQuery = const mempty++-- | Contains the results of the RestoreFromSnapshot operation.+--+-- /See:/ 'restoreFromSnapshotResponse' smart constructor.+newtype RestoreFromSnapshotResponse = RestoreFromSnapshotResponse'+    { _rfsrsStatus :: Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'RestoreFromSnapshotResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rfsrsStatus'+restoreFromSnapshotResponse+    :: Int -- ^ 'rfsrsStatus'+    -> RestoreFromSnapshotResponse+restoreFromSnapshotResponse pStatus_ =+    RestoreFromSnapshotResponse'+    { _rfsrsStatus = pStatus_+    }++-- | The response status code.+rfsrsStatus :: Lens' RestoreFromSnapshotResponse Int+rfsrsStatus = lens _rfsrsStatus (\ s a -> s{_rfsrsStatus = a});
+ gen/Network/AWS/DirectoryService/Types.hs view
@@ -0,0 +1,261 @@+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE TypeFamilies      #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.DirectoryService.Types+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Network.AWS.DirectoryService.Types+    (+    -- * Service+      DirectoryService++    -- * Errors+    , _AuthenticationFailedException+    , _DirectoryUnavailableException+    , _InvalidParameterException+    , _UnsupportedOperationException+    , _EntityAlreadyExistsException+    , _DirectoryLimitExceededException+    , _EntityDoesNotExistException+    , _InsufficientPermissionsException+    , _InvalidNextTokenException+    , _ServiceException+    , _SnapshotLimitExceededException+    , _ClientException++    -- * DirectorySize+    , DirectorySize (..)++    -- * DirectoryStage+    , DirectoryStage (..)++    -- * DirectoryType+    , DirectoryType (..)++    -- * RadiusAuthenticationProtocol+    , RadiusAuthenticationProtocol (..)++    -- * RadiusStatus+    , RadiusStatus (..)++    -- * SnapshotStatus+    , SnapshotStatus (..)++    -- * SnapshotType+    , SnapshotType (..)++    -- * Attribute+    , Attribute+    , attribute+    , aValue+    , aName++    -- * Computer+    , Computer+    , computer+    , cComputerId+    , cComputerAttributes+    , cComputerName++    -- * DirectoryConnectSettings+    , DirectoryConnectSettings+    , directoryConnectSettings+    , dcsVPCId+    , dcsSubnetIds+    , dcsCustomerDNSIPs+    , dcsCustomerUserName++    -- * DirectoryConnectSettingsDescription+    , DirectoryConnectSettingsDescription+    , directoryConnectSettingsDescription+    , dcsdCustomerUserName+    , dcsdSubnetIds+    , dcsdVPCId+    , dcsdConnectIPs+    , dcsdSecurityGroupId+    , dcsdAvailabilityZones++    -- * DirectoryDescription+    , DirectoryDescription+    , directoryDescription+    , ddRadiusStatus+    , ddDirectoryId+    , ddStage+    , ddAccessURL+    , ddShortName+    , ddSize+    , ddRadiusSettings+    , ddLaunchTime+    , ddAlias+    , ddName+    , ddSSOEnabled+    , ddStageLastUpdatedDateTime+    , ddStageReason+    , ddDNSIPAddrs+    , ddVPCSettings+    , ddType+    , ddConnectSettings+    , ddDescription++    -- * DirectoryLimits+    , DirectoryLimits+    , directoryLimits+    , dlConnectedDirectoriesCurrentCount+    , dlConnectedDirectoriesLimit+    , dlConnectedDirectoriesLimitReached+    , dlCloudOnlyDirectoriesLimit+    , dlCloudOnlyDirectoriesCurrentCount+    , dlCloudOnlyDirectoriesLimitReached++    -- * DirectoryVPCSettings+    , DirectoryVPCSettings+    , directoryVPCSettings+    , dvsVPCId+    , dvsSubnetIds++    -- * DirectoryVPCSettingsDescription+    , DirectoryVPCSettingsDescription+    , directoryVPCSettingsDescription+    , dvsdSubnetIds+    , dvsdVPCId+    , dvsdSecurityGroupId+    , dvsdAvailabilityZones++    -- * RadiusSettings+    , RadiusSettings+    , radiusSettings+    , rsDisplayLabel+    , rsRadiusServers+    , rsRadiusRetries+    , rsAuthenticationProtocol+    , rsUseSameUsername+    , rsSharedSecret+    , rsRadiusTimeout+    , rsRadiusPort++    -- * Snapshot+    , Snapshot+    , snapshot+    , sDirectoryId+    , sStatus+    , sStartTime+    , sName+    , sType+    , sSnapshotId++    -- * SnapshotLimits+    , SnapshotLimits+    , snapshotLimits+    , slManualSnapshotsLimitReached+    , slManualSnapshotsCurrentCount+    , slManualSnapshotsLimit+    ) where++import           Network.AWS.DirectoryService.Types.Product+import           Network.AWS.DirectoryService.Types.Sum+import           Network.AWS.Prelude+import           Network.AWS.Sign.V4++-- | Version @2015-04-16@ of the Amazon Directory Service SDK.+data DirectoryService++instance AWSService DirectoryService where+    type Sg DirectoryService = V4+    service = const svc+      where+        svc =+            Service+            { _svcAbbrev = "DirectoryService"+            , _svcPrefix = "ds"+            , _svcVersion = "2015-04-16"+            , _svcEndpoint = defaultEndpoint svc+            , _svcTimeout = Just 70+            , _svcStatus = statusSuccess+            , _svcError = parseJSONError+            , _svcRetry = retry+            }+        retry =+            Exponential+            { _retryBase = 5.0e-2+            , _retryGrowth = 2+            , _retryAttempts = 5+            , _retryCheck = check+            }+        check e+          | has (hasCode "ThrottlingException" . hasStatus 400) e =+              Just "throttling_exception"+          | has (hasCode "Throttling" . hasStatus 400) e = Just "throttling"+          | has (hasStatus 503) e = Just "service_unavailable"+          | has (hasStatus 500) e = Just "general_server_error"+          | has (hasStatus 509) e = Just "limit_exceeded"+          | otherwise = Nothing++-- | An authentication error occurred.+_AuthenticationFailedException :: AsError a => Getting (First ServiceError) a ServiceError+_AuthenticationFailedException =+    _ServiceError . hasCode "AuthenticationFailedException"++-- | The specified directory is unavailable or could not be found.+_DirectoryUnavailableException :: AsError a => Getting (First ServiceError) a ServiceError+_DirectoryUnavailableException =+    _ServiceError . hasCode "DirectoryUnavailableException"++-- | One or more parameters are not valid.+_InvalidParameterException :: AsError a => Getting (First ServiceError) a ServiceError+_InvalidParameterException =+    _ServiceError . hasCode "InvalidParameterException"++-- | The operation is not supported.+_UnsupportedOperationException :: AsError a => Getting (First ServiceError) a ServiceError+_UnsupportedOperationException =+    _ServiceError . hasCode "UnsupportedOperationException"++-- | The specified entity already exists.+_EntityAlreadyExistsException :: AsError a => Getting (First ServiceError) a ServiceError+_EntityAlreadyExistsException =+    _ServiceError . hasCode "EntityAlreadyExistsException"++-- | The maximum number of directories in the region has been reached. You+-- can use the GetDirectoryLimits operation to determine your directory+-- limits in the region.+_DirectoryLimitExceededException :: AsError a => Getting (First ServiceError) a ServiceError+_DirectoryLimitExceededException =+    _ServiceError . hasCode "DirectoryLimitExceededException"++-- | The specified entity could not be found.+_EntityDoesNotExistException :: AsError a => Getting (First ServiceError) a ServiceError+_EntityDoesNotExistException =+    _ServiceError . hasCode "EntityDoesNotExistException"++-- | The account does not have sufficient permission to perform the+-- operation.+_InsufficientPermissionsException :: AsError a => Getting (First ServiceError) a ServiceError+_InsufficientPermissionsException =+    _ServiceError . hasCode "InsufficientPermissionsException"++-- | The /NextToken/ value is not valid.+_InvalidNextTokenException :: AsError a => Getting (First ServiceError) a ServiceError+_InvalidNextTokenException =+    _ServiceError . hasCode "InvalidNextTokenException"++-- | An exception has occurred in AWS Directory Service.+_ServiceException :: AsError a => Getting (First ServiceError) a ServiceError+_ServiceException = _ServiceError . hasCode "ServiceException"++-- | The maximum number of manual snapshots for the directory has been+-- reached. You can use the GetSnapshotLimits operation to determine the+-- snapshot limits for a directory.+_SnapshotLimitExceededException :: AsError a => Getting (First ServiceError) a ServiceError+_SnapshotLimitExceededException =+    _ServiceError . hasCode "SnapshotLimitExceededException"++-- | A client exception has occurred.+_ClientException :: AsError a => Getting (First ServiceError) a ServiceError+_ClientException = _ServiceError . hasCode "ClientException"
+ gen/Network/AWS/DirectoryService/Types/Product.hs view
@@ -0,0 +1,853 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.DirectoryService.Types.Product+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Network.AWS.DirectoryService.Types.Product where++import           Network.AWS.DirectoryService.Types.Sum+import           Network.AWS.Prelude++-- | Represents a named directory attribute.+--+-- /See:/ 'attribute' smart constructor.+data Attribute = Attribute'+    { _aValue :: !(Maybe Text)+    , _aName  :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'Attribute' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'aValue'+--+-- * 'aName'+attribute+    :: Attribute+attribute =+    Attribute'+    { _aValue = Nothing+    , _aName = Nothing+    }++-- | The value of the attribute.+aValue :: Lens' Attribute (Maybe Text)+aValue = lens _aValue (\ s a -> s{_aValue = a});++-- | The name of the attribute.+aName :: Lens' Attribute (Maybe Text)+aName = lens _aName (\ s a -> s{_aName = a});++instance FromJSON Attribute where+        parseJSON+          = withObject "Attribute"+              (\ x ->+                 Attribute' <$> (x .:? "Value") <*> (x .:? "Name"))++instance ToJSON Attribute where+        toJSON Attribute'{..}+          = object ["Value" .= _aValue, "Name" .= _aName]++-- | Contains information about a computer account in a directory.+--+-- /See:/ 'computer' smart constructor.+data Computer = Computer'+    { _cComputerId         :: !(Maybe Text)+    , _cComputerAttributes :: !(Maybe [Attribute])+    , _cComputerName       :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'Computer' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cComputerId'+--+-- * 'cComputerAttributes'+--+-- * 'cComputerName'+computer+    :: Computer+computer =+    Computer'+    { _cComputerId = Nothing+    , _cComputerAttributes = Nothing+    , _cComputerName = Nothing+    }++-- | The identifier of the computer.+cComputerId :: Lens' Computer (Maybe Text)+cComputerId = lens _cComputerId (\ s a -> s{_cComputerId = a});++-- | An array of Attribute objects that contain the LDAP attributes that+-- belong to the computer account.+cComputerAttributes :: Lens' Computer [Attribute]+cComputerAttributes = lens _cComputerAttributes (\ s a -> s{_cComputerAttributes = a}) . _Default . _Coerce;++-- | The computer name.+cComputerName :: Lens' Computer (Maybe Text)+cComputerName = lens _cComputerName (\ s a -> s{_cComputerName = a});++instance FromJSON Computer where+        parseJSON+          = withObject "Computer"+              (\ x ->+                 Computer' <$>+                   (x .:? "ComputerId") <*>+                     (x .:? "ComputerAttributes" .!= mempty)+                     <*> (x .:? "ComputerName"))++-- | Contains information for the ConnectDirectory operation when an AD+-- Connector directory is being created.+--+-- /See:/ 'directoryConnectSettings' smart constructor.+data DirectoryConnectSettings = DirectoryConnectSettings'+    { _dcsVPCId            :: !Text+    , _dcsSubnetIds        :: ![Text]+    , _dcsCustomerDNSIPs   :: ![Text]+    , _dcsCustomerUserName :: !Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DirectoryConnectSettings' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dcsVPCId'+--+-- * 'dcsSubnetIds'+--+-- * 'dcsCustomerDNSIPs'+--+-- * 'dcsCustomerUserName'+directoryConnectSettings+    :: Text -- ^ 'dcsVPCId'+    -> Text -- ^ 'dcsCustomerUserName'+    -> DirectoryConnectSettings+directoryConnectSettings pVPCId_ pCustomerUserName_ =+    DirectoryConnectSettings'+    { _dcsVPCId = pVPCId_+    , _dcsSubnetIds = mempty+    , _dcsCustomerDNSIPs = mempty+    , _dcsCustomerUserName = pCustomerUserName_+    }++-- | The identifier of the VPC that the AD Connector is created in.+dcsVPCId :: Lens' DirectoryConnectSettings Text+dcsVPCId = lens _dcsVPCId (\ s a -> s{_dcsVPCId = a});++-- | A list of subnet identifiers in the VPC that the AD Connector is created+-- in.+dcsSubnetIds :: Lens' DirectoryConnectSettings [Text]+dcsSubnetIds = lens _dcsSubnetIds (\ s a -> s{_dcsSubnetIds = a}) . _Coerce;++-- | A list of one or more IP addresses of DNS servers or domain controllers+-- in the on-premises directory.+dcsCustomerDNSIPs :: Lens' DirectoryConnectSettings [Text]+dcsCustomerDNSIPs = lens _dcsCustomerDNSIPs (\ s a -> s{_dcsCustomerDNSIPs = a}) . _Coerce;++-- | The username of an account in the on-premises directory that is used to+-- connect to the directory. This account must have the following+-- privileges:+--+-- -   Read users and groups+-- -   Create computer objects+-- -   Join computers to the domain+dcsCustomerUserName :: Lens' DirectoryConnectSettings Text+dcsCustomerUserName = lens _dcsCustomerUserName (\ s a -> s{_dcsCustomerUserName = a});++instance ToJSON DirectoryConnectSettings where+        toJSON DirectoryConnectSettings'{..}+          = object+              ["VpcId" .= _dcsVPCId, "SubnetIds" .= _dcsSubnetIds,+               "CustomerDnsIps" .= _dcsCustomerDNSIPs,+               "CustomerUserName" .= _dcsCustomerUserName]++-- | Contains information about an AD Connector directory.+--+-- /See:/ 'directoryConnectSettingsDescription' smart constructor.+data DirectoryConnectSettingsDescription = DirectoryConnectSettingsDescription'+    { _dcsdCustomerUserName  :: !(Maybe Text)+    , _dcsdSubnetIds         :: !(Maybe [Text])+    , _dcsdVPCId             :: !(Maybe Text)+    , _dcsdConnectIPs        :: !(Maybe [Text])+    , _dcsdSecurityGroupId   :: !(Maybe Text)+    , _dcsdAvailabilityZones :: !(Maybe [Text])+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DirectoryConnectSettingsDescription' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dcsdCustomerUserName'+--+-- * 'dcsdSubnetIds'+--+-- * 'dcsdVPCId'+--+-- * 'dcsdConnectIPs'+--+-- * 'dcsdSecurityGroupId'+--+-- * 'dcsdAvailabilityZones'+directoryConnectSettingsDescription+    :: DirectoryConnectSettingsDescription+directoryConnectSettingsDescription =+    DirectoryConnectSettingsDescription'+    { _dcsdCustomerUserName = Nothing+    , _dcsdSubnetIds = Nothing+    , _dcsdVPCId = Nothing+    , _dcsdConnectIPs = Nothing+    , _dcsdSecurityGroupId = Nothing+    , _dcsdAvailabilityZones = Nothing+    }++-- | The username of the service account in the on-premises directory.+dcsdCustomerUserName :: Lens' DirectoryConnectSettingsDescription (Maybe Text)+dcsdCustomerUserName = lens _dcsdCustomerUserName (\ s a -> s{_dcsdCustomerUserName = a});++-- | A list of subnet identifiers in the VPC that the AD connector is in.+dcsdSubnetIds :: Lens' DirectoryConnectSettingsDescription [Text]+dcsdSubnetIds = lens _dcsdSubnetIds (\ s a -> s{_dcsdSubnetIds = a}) . _Default . _Coerce;++-- | The identifier of the VPC that the AD Connector is in.+dcsdVPCId :: Lens' DirectoryConnectSettingsDescription (Maybe Text)+dcsdVPCId = lens _dcsdVPCId (\ s a -> s{_dcsdVPCId = a});++-- | The IP addresses of the AD Connector servers.+dcsdConnectIPs :: Lens' DirectoryConnectSettingsDescription [Text]+dcsdConnectIPs = lens _dcsdConnectIPs (\ s a -> s{_dcsdConnectIPs = a}) . _Default . _Coerce;++-- | The security group identifier for the AD Connector directory.+dcsdSecurityGroupId :: Lens' DirectoryConnectSettingsDescription (Maybe Text)+dcsdSecurityGroupId = lens _dcsdSecurityGroupId (\ s a -> s{_dcsdSecurityGroupId = a});++-- | A list of the Availability Zones that the directory is in.+dcsdAvailabilityZones :: Lens' DirectoryConnectSettingsDescription [Text]+dcsdAvailabilityZones = lens _dcsdAvailabilityZones (\ s a -> s{_dcsdAvailabilityZones = a}) . _Default . _Coerce;++instance FromJSON DirectoryConnectSettingsDescription+         where+        parseJSON+          = withObject "DirectoryConnectSettingsDescription"+              (\ x ->+                 DirectoryConnectSettingsDescription' <$>+                   (x .:? "CustomerUserName") <*>+                     (x .:? "SubnetIds" .!= mempty)+                     <*> (x .:? "VpcId")+                     <*> (x .:? "ConnectIps" .!= mempty)+                     <*> (x .:? "SecurityGroupId")+                     <*> (x .:? "AvailabilityZones" .!= mempty))++-- | Contains information about an AWS Directory Service directory.+--+-- /See:/ 'directoryDescription' smart constructor.+data DirectoryDescription = DirectoryDescription'+    { _ddRadiusStatus             :: !(Maybe RadiusStatus)+    , _ddDirectoryId              :: !(Maybe Text)+    , _ddStage                    :: !(Maybe DirectoryStage)+    , _ddAccessURL                :: !(Maybe Text)+    , _ddShortName                :: !(Maybe Text)+    , _ddSize                     :: !(Maybe DirectorySize)+    , _ddRadiusSettings           :: !(Maybe RadiusSettings)+    , _ddLaunchTime               :: !(Maybe POSIX)+    , _ddAlias                    :: !(Maybe Text)+    , _ddName                     :: !(Maybe Text)+    , _ddSSOEnabled               :: !(Maybe Bool)+    , _ddStageLastUpdatedDateTime :: !(Maybe POSIX)+    , _ddStageReason              :: !(Maybe Text)+    , _ddDNSIPAddrs               :: !(Maybe [Text])+    , _ddVPCSettings              :: !(Maybe DirectoryVPCSettingsDescription)+    , _ddType                     :: !(Maybe DirectoryType)+    , _ddConnectSettings          :: !(Maybe DirectoryConnectSettingsDescription)+    , _ddDescription              :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DirectoryDescription' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ddRadiusStatus'+--+-- * 'ddDirectoryId'+--+-- * 'ddStage'+--+-- * 'ddAccessURL'+--+-- * 'ddShortName'+--+-- * 'ddSize'+--+-- * 'ddRadiusSettings'+--+-- * 'ddLaunchTime'+--+-- * 'ddAlias'+--+-- * 'ddName'+--+-- * 'ddSSOEnabled'+--+-- * 'ddStageLastUpdatedDateTime'+--+-- * 'ddStageReason'+--+-- * 'ddDNSIPAddrs'+--+-- * 'ddVPCSettings'+--+-- * 'ddType'+--+-- * 'ddConnectSettings'+--+-- * 'ddDescription'+directoryDescription+    :: DirectoryDescription+directoryDescription =+    DirectoryDescription'+    { _ddRadiusStatus = Nothing+    , _ddDirectoryId = Nothing+    , _ddStage = Nothing+    , _ddAccessURL = Nothing+    , _ddShortName = Nothing+    , _ddSize = Nothing+    , _ddRadiusSettings = Nothing+    , _ddLaunchTime = Nothing+    , _ddAlias = Nothing+    , _ddName = Nothing+    , _ddSSOEnabled = Nothing+    , _ddStageLastUpdatedDateTime = Nothing+    , _ddStageReason = Nothing+    , _ddDNSIPAddrs = Nothing+    , _ddVPCSettings = Nothing+    , _ddType = Nothing+    , _ddConnectSettings = Nothing+    , _ddDescription = Nothing+    }++-- | The status of the RADIUS MFA server connection.+ddRadiusStatus :: Lens' DirectoryDescription (Maybe RadiusStatus)+ddRadiusStatus = lens _ddRadiusStatus (\ s a -> s{_ddRadiusStatus = a});++-- | The directory identifier.+ddDirectoryId :: Lens' DirectoryDescription (Maybe Text)+ddDirectoryId = lens _ddDirectoryId (\ s a -> s{_ddDirectoryId = a});++-- | The current stage of the directory.+ddStage :: Lens' DirectoryDescription (Maybe DirectoryStage)+ddStage = lens _ddStage (\ s a -> s{_ddStage = a});++-- | The access URL for the directory, such as+-- 'http:\/\/\<alias>.awsapps.com'.+ddAccessURL :: Lens' DirectoryDescription (Maybe Text)+ddAccessURL = lens _ddAccessURL (\ s a -> s{_ddAccessURL = a});++-- | The short name of the directory.+ddShortName :: Lens' DirectoryDescription (Maybe Text)+ddShortName = lens _ddShortName (\ s a -> s{_ddShortName = a});++-- | The directory size.+ddSize :: Lens' DirectoryDescription (Maybe DirectorySize)+ddSize = lens _ddSize (\ s a -> s{_ddSize = a});++-- | A RadiusSettings object that contains information about the RADIUS+-- server configured for this directory.+ddRadiusSettings :: Lens' DirectoryDescription (Maybe RadiusSettings)+ddRadiusSettings = lens _ddRadiusSettings (\ s a -> s{_ddRadiusSettings = a});++-- | Specifies when the directory was created.+ddLaunchTime :: Lens' DirectoryDescription (Maybe UTCTime)+ddLaunchTime = lens _ddLaunchTime (\ s a -> s{_ddLaunchTime = a}) . mapping _Time;++-- | The alias for the directory.+ddAlias :: Lens' DirectoryDescription (Maybe Text)+ddAlias = lens _ddAlias (\ s a -> s{_ddAlias = a});++-- | The fully-qualified name of the directory.+ddName :: Lens' DirectoryDescription (Maybe Text)+ddName = lens _ddName (\ s a -> s{_ddName = a});++-- | Indicates if single-sign on is enabled for the directory. For more+-- information, see EnableSso and DisableSso.+ddSSOEnabled :: Lens' DirectoryDescription (Maybe Bool)+ddSSOEnabled = lens _ddSSOEnabled (\ s a -> s{_ddSSOEnabled = a});++-- | The date and time that the stage was last updated.+ddStageLastUpdatedDateTime :: Lens' DirectoryDescription (Maybe UTCTime)+ddStageLastUpdatedDateTime = lens _ddStageLastUpdatedDateTime (\ s a -> s{_ddStageLastUpdatedDateTime = a}) . mapping _Time;++-- | Additional information about the directory stage.+ddStageReason :: Lens' DirectoryDescription (Maybe Text)+ddStageReason = lens _ddStageReason (\ s a -> s{_ddStageReason = a});++-- | The IP addresses of the DNS servers for the directory. For a Simple AD+-- directory, these are the IP addresses of the Simple AD directory+-- servers. For an AD Connector directory, these are the IP addresses of+-- the DNS servers or domain controllers in the on-premises directory that+-- the AD Connector is connected to.+ddDNSIPAddrs :: Lens' DirectoryDescription [Text]+ddDNSIPAddrs = lens _ddDNSIPAddrs (\ s a -> s{_ddDNSIPAddrs = a}) . _Default . _Coerce;++-- | A DirectoryVpcSettingsDescription object that contains additional+-- information about a Simple AD directory. This member is only present if+-- the directory is a Simple AD directory.+ddVPCSettings :: Lens' DirectoryDescription (Maybe DirectoryVPCSettingsDescription)+ddVPCSettings = lens _ddVPCSettings (\ s a -> s{_ddVPCSettings = a});++-- | The directory size.+ddType :: Lens' DirectoryDescription (Maybe DirectoryType)+ddType = lens _ddType (\ s a -> s{_ddType = a});++-- | A DirectoryConnectSettingsDescription object that contains additional+-- information about an AD Connector directory. This member is only present+-- if the directory is an AD Connector directory.+ddConnectSettings :: Lens' DirectoryDescription (Maybe DirectoryConnectSettingsDescription)+ddConnectSettings = lens _ddConnectSettings (\ s a -> s{_ddConnectSettings = a});++-- | The textual description for the directory.+ddDescription :: Lens' DirectoryDescription (Maybe Text)+ddDescription = lens _ddDescription (\ s a -> s{_ddDescription = a});++instance FromJSON DirectoryDescription where+        parseJSON+          = withObject "DirectoryDescription"+              (\ x ->+                 DirectoryDescription' <$>+                   (x .:? "RadiusStatus") <*> (x .:? "DirectoryId") <*>+                     (x .:? "Stage")+                     <*> (x .:? "AccessUrl")+                     <*> (x .:? "ShortName")+                     <*> (x .:? "Size")+                     <*> (x .:? "RadiusSettings")+                     <*> (x .:? "LaunchTime")+                     <*> (x .:? "Alias")+                     <*> (x .:? "Name")+                     <*> (x .:? "SsoEnabled")+                     <*> (x .:? "StageLastUpdatedDateTime")+                     <*> (x .:? "StageReason")+                     <*> (x .:? "DnsIpAddrs" .!= mempty)+                     <*> (x .:? "VpcSettings")+                     <*> (x .:? "Type")+                     <*> (x .:? "ConnectSettings")+                     <*> (x .:? "Description"))++-- | Contains directory limit information for a region.+--+-- /See:/ 'directoryLimits' smart constructor.+data DirectoryLimits = DirectoryLimits'+    { _dlConnectedDirectoriesCurrentCount :: !(Maybe Nat)+    , _dlConnectedDirectoriesLimit        :: !(Maybe Nat)+    , _dlConnectedDirectoriesLimitReached :: !(Maybe Bool)+    , _dlCloudOnlyDirectoriesLimit        :: !(Maybe Nat)+    , _dlCloudOnlyDirectoriesCurrentCount :: !(Maybe Nat)+    , _dlCloudOnlyDirectoriesLimitReached :: !(Maybe Bool)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DirectoryLimits' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dlConnectedDirectoriesCurrentCount'+--+-- * 'dlConnectedDirectoriesLimit'+--+-- * 'dlConnectedDirectoriesLimitReached'+--+-- * 'dlCloudOnlyDirectoriesLimit'+--+-- * 'dlCloudOnlyDirectoriesCurrentCount'+--+-- * 'dlCloudOnlyDirectoriesLimitReached'+directoryLimits+    :: DirectoryLimits+directoryLimits =+    DirectoryLimits'+    { _dlConnectedDirectoriesCurrentCount = Nothing+    , _dlConnectedDirectoriesLimit = Nothing+    , _dlConnectedDirectoriesLimitReached = Nothing+    , _dlCloudOnlyDirectoriesLimit = Nothing+    , _dlCloudOnlyDirectoriesCurrentCount = Nothing+    , _dlCloudOnlyDirectoriesLimitReached = Nothing+    }++-- | The current number of connected directories in the region.+dlConnectedDirectoriesCurrentCount :: Lens' DirectoryLimits (Maybe Natural)+dlConnectedDirectoriesCurrentCount = lens _dlConnectedDirectoriesCurrentCount (\ s a -> s{_dlConnectedDirectoriesCurrentCount = a}) . mapping _Nat;++-- | The maximum number of connected directories allowed in the region.+dlConnectedDirectoriesLimit :: Lens' DirectoryLimits (Maybe Natural)+dlConnectedDirectoriesLimit = lens _dlConnectedDirectoriesLimit (\ s a -> s{_dlConnectedDirectoriesLimit = a}) . mapping _Nat;++-- | Indicates if the connected directory limit has been reached.+dlConnectedDirectoriesLimitReached :: Lens' DirectoryLimits (Maybe Bool)+dlConnectedDirectoriesLimitReached = lens _dlConnectedDirectoriesLimitReached (\ s a -> s{_dlConnectedDirectoriesLimitReached = a});++-- | The maximum number of cloud directories allowed in the region.+dlCloudOnlyDirectoriesLimit :: Lens' DirectoryLimits (Maybe Natural)+dlCloudOnlyDirectoriesLimit = lens _dlCloudOnlyDirectoriesLimit (\ s a -> s{_dlCloudOnlyDirectoriesLimit = a}) . mapping _Nat;++-- | The current number of cloud directories in the region.+dlCloudOnlyDirectoriesCurrentCount :: Lens' DirectoryLimits (Maybe Natural)+dlCloudOnlyDirectoriesCurrentCount = lens _dlCloudOnlyDirectoriesCurrentCount (\ s a -> s{_dlCloudOnlyDirectoriesCurrentCount = a}) . mapping _Nat;++-- | Indicates if the cloud directory limit has been reached.+dlCloudOnlyDirectoriesLimitReached :: Lens' DirectoryLimits (Maybe Bool)+dlCloudOnlyDirectoriesLimitReached = lens _dlCloudOnlyDirectoriesLimitReached (\ s a -> s{_dlCloudOnlyDirectoriesLimitReached = a});++instance FromJSON DirectoryLimits where+        parseJSON+          = withObject "DirectoryLimits"+              (\ x ->+                 DirectoryLimits' <$>+                   (x .:? "ConnectedDirectoriesCurrentCount") <*>+                     (x .:? "ConnectedDirectoriesLimit")+                     <*> (x .:? "ConnectedDirectoriesLimitReached")+                     <*> (x .:? "CloudOnlyDirectoriesLimit")+                     <*> (x .:? "CloudOnlyDirectoriesCurrentCount")+                     <*> (x .:? "CloudOnlyDirectoriesLimitReached"))++-- | Contains information for the CreateDirectory operation when a Simple AD+-- directory is being created.+--+-- /See:/ 'directoryVPCSettings' smart constructor.+data DirectoryVPCSettings = DirectoryVPCSettings'+    { _dvsVPCId     :: !Text+    , _dvsSubnetIds :: ![Text]+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DirectoryVPCSettings' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dvsVPCId'+--+-- * 'dvsSubnetIds'+directoryVPCSettings+    :: Text -- ^ 'dvsVPCId'+    -> DirectoryVPCSettings+directoryVPCSettings pVPCId_ =+    DirectoryVPCSettings'+    { _dvsVPCId = pVPCId_+    , _dvsSubnetIds = mempty+    }++-- | The identifier of the VPC to create the Simple AD directory in.+dvsVPCId :: Lens' DirectoryVPCSettings Text+dvsVPCId = lens _dvsVPCId (\ s a -> s{_dvsVPCId = a});++-- | The identifiers of the subnets for the directory servers. The two+-- subnets must be in different Availability Zones. AWS Directory Service+-- creates a directory server and a DNS server in each of these subnets.+dvsSubnetIds :: Lens' DirectoryVPCSettings [Text]+dvsSubnetIds = lens _dvsSubnetIds (\ s a -> s{_dvsSubnetIds = a}) . _Coerce;++instance ToJSON DirectoryVPCSettings where+        toJSON DirectoryVPCSettings'{..}+          = object+              ["VpcId" .= _dvsVPCId, "SubnetIds" .= _dvsSubnetIds]++-- | Contains information about a Simple AD directory.+--+-- /See:/ 'directoryVPCSettingsDescription' smart constructor.+data DirectoryVPCSettingsDescription = DirectoryVPCSettingsDescription'+    { _dvsdSubnetIds         :: !(Maybe [Text])+    , _dvsdVPCId             :: !(Maybe Text)+    , _dvsdSecurityGroupId   :: !(Maybe Text)+    , _dvsdAvailabilityZones :: !(Maybe [Text])+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DirectoryVPCSettingsDescription' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dvsdSubnetIds'+--+-- * 'dvsdVPCId'+--+-- * 'dvsdSecurityGroupId'+--+-- * 'dvsdAvailabilityZones'+directoryVPCSettingsDescription+    :: DirectoryVPCSettingsDescription+directoryVPCSettingsDescription =+    DirectoryVPCSettingsDescription'+    { _dvsdSubnetIds = Nothing+    , _dvsdVPCId = Nothing+    , _dvsdSecurityGroupId = Nothing+    , _dvsdAvailabilityZones = Nothing+    }++-- | The identifiers of the subnets for the directory servers.+dvsdSubnetIds :: Lens' DirectoryVPCSettingsDescription [Text]+dvsdSubnetIds = lens _dvsdSubnetIds (\ s a -> s{_dvsdSubnetIds = a}) . _Default . _Coerce;++-- | The identifier of the VPC that the directory is in.+dvsdVPCId :: Lens' DirectoryVPCSettingsDescription (Maybe Text)+dvsdVPCId = lens _dvsdVPCId (\ s a -> s{_dvsdVPCId = a});++-- | The security group identifier for the directory.+dvsdSecurityGroupId :: Lens' DirectoryVPCSettingsDescription (Maybe Text)+dvsdSecurityGroupId = lens _dvsdSecurityGroupId (\ s a -> s{_dvsdSecurityGroupId = a});++-- | The list of Availability Zones that the directory is in.+dvsdAvailabilityZones :: Lens' DirectoryVPCSettingsDescription [Text]+dvsdAvailabilityZones = lens _dvsdAvailabilityZones (\ s a -> s{_dvsdAvailabilityZones = a}) . _Default . _Coerce;++instance FromJSON DirectoryVPCSettingsDescription+         where+        parseJSON+          = withObject "DirectoryVPCSettingsDescription"+              (\ x ->+                 DirectoryVPCSettingsDescription' <$>+                   (x .:? "SubnetIds" .!= mempty) <*> (x .:? "VpcId")+                     <*> (x .:? "SecurityGroupId")+                     <*> (x .:? "AvailabilityZones" .!= mempty))++-- | Contains information about a Remote Authentication Dial In User Service+-- (RADIUS) server.+--+-- /See:/ 'radiusSettings' smart constructor.+data RadiusSettings = RadiusSettings'+    { _rsDisplayLabel           :: !(Maybe Text)+    , _rsRadiusServers          :: !(Maybe [Text])+    , _rsRadiusRetries          :: !(Maybe Nat)+    , _rsAuthenticationProtocol :: !(Maybe RadiusAuthenticationProtocol)+    , _rsUseSameUsername        :: !(Maybe Bool)+    , _rsSharedSecret           :: !(Maybe (Sensitive Text))+    , _rsRadiusTimeout          :: !(Maybe Nat)+    , _rsRadiusPort             :: !(Maybe Nat)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'RadiusSettings' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rsDisplayLabel'+--+-- * 'rsRadiusServers'+--+-- * 'rsRadiusRetries'+--+-- * 'rsAuthenticationProtocol'+--+-- * 'rsUseSameUsername'+--+-- * 'rsSharedSecret'+--+-- * 'rsRadiusTimeout'+--+-- * 'rsRadiusPort'+radiusSettings+    :: RadiusSettings+radiusSettings =+    RadiusSettings'+    { _rsDisplayLabel = Nothing+    , _rsRadiusServers = Nothing+    , _rsRadiusRetries = Nothing+    , _rsAuthenticationProtocol = Nothing+    , _rsUseSameUsername = Nothing+    , _rsSharedSecret = Nothing+    , _rsRadiusTimeout = Nothing+    , _rsRadiusPort = Nothing+    }++-- | Not currently used.+rsDisplayLabel :: Lens' RadiusSettings (Maybe Text)+rsDisplayLabel = lens _rsDisplayLabel (\ s a -> s{_rsDisplayLabel = a});++-- | An array of strings that contains the IP addresses of the RADIUS server+-- endpoints, or the IP addresses of your RADIUS server load balancer.+rsRadiusServers :: Lens' RadiusSettings [Text]+rsRadiusServers = lens _rsRadiusServers (\ s a -> s{_rsRadiusServers = a}) . _Default . _Coerce;++-- | The maximum number of times that communication with the RADIUS server is+-- attempted.+rsRadiusRetries :: Lens' RadiusSettings (Maybe Natural)+rsRadiusRetries = lens _rsRadiusRetries (\ s a -> s{_rsRadiusRetries = a}) . mapping _Nat;++-- | The protocol specified for your RADIUS endpoints.+rsAuthenticationProtocol :: Lens' RadiusSettings (Maybe RadiusAuthenticationProtocol)+rsAuthenticationProtocol = lens _rsAuthenticationProtocol (\ s a -> s{_rsAuthenticationProtocol = a});++-- | Not currently used.+rsUseSameUsername :: Lens' RadiusSettings (Maybe Bool)+rsUseSameUsername = lens _rsUseSameUsername (\ s a -> s{_rsUseSameUsername = a});++-- | The shared secret code that was specified when your RADIUS endpoints+-- were created.+rsSharedSecret :: Lens' RadiusSettings (Maybe Text)+rsSharedSecret = lens _rsSharedSecret (\ s a -> s{_rsSharedSecret = a}) . mapping _Sensitive;++-- | The amount of time, in seconds, to wait for the RADIUS server to+-- respond.+rsRadiusTimeout :: Lens' RadiusSettings (Maybe Natural)+rsRadiusTimeout = lens _rsRadiusTimeout (\ s a -> s{_rsRadiusTimeout = a}) . mapping _Nat;++-- | The port that your RADIUS server is using for communications. Your+-- on-premises network must allow inbound traffic over this port from the+-- AWS Directory Service servers.+rsRadiusPort :: Lens' RadiusSettings (Maybe Natural)+rsRadiusPort = lens _rsRadiusPort (\ s a -> s{_rsRadiusPort = a}) . mapping _Nat;++instance FromJSON RadiusSettings where+        parseJSON+          = withObject "RadiusSettings"+              (\ x ->+                 RadiusSettings' <$>+                   (x .:? "DisplayLabel") <*>+                     (x .:? "RadiusServers" .!= mempty)+                     <*> (x .:? "RadiusRetries")+                     <*> (x .:? "AuthenticationProtocol")+                     <*> (x .:? "UseSameUsername")+                     <*> (x .:? "SharedSecret")+                     <*> (x .:? "RadiusTimeout")+                     <*> (x .:? "RadiusPort"))++instance ToJSON RadiusSettings where+        toJSON RadiusSettings'{..}+          = object+              ["DisplayLabel" .= _rsDisplayLabel,+               "RadiusServers" .= _rsRadiusServers,+               "RadiusRetries" .= _rsRadiusRetries,+               "AuthenticationProtocol" .=+                 _rsAuthenticationProtocol,+               "UseSameUsername" .= _rsUseSameUsername,+               "SharedSecret" .= _rsSharedSecret,+               "RadiusTimeout" .= _rsRadiusTimeout,+               "RadiusPort" .= _rsRadiusPort]++-- | Describes a directory snapshot.+--+-- /See:/ 'snapshot' smart constructor.+data Snapshot = Snapshot'+    { _sDirectoryId :: !(Maybe Text)+    , _sStatus      :: !(Maybe SnapshotStatus)+    , _sStartTime   :: !(Maybe POSIX)+    , _sName        :: !(Maybe Text)+    , _sType        :: !(Maybe SnapshotType)+    , _sSnapshotId  :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'Snapshot' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sDirectoryId'+--+-- * 'sStatus'+--+-- * 'sStartTime'+--+-- * 'sName'+--+-- * 'sType'+--+-- * 'sSnapshotId'+snapshot+    :: Snapshot+snapshot =+    Snapshot'+    { _sDirectoryId = Nothing+    , _sStatus = Nothing+    , _sStartTime = Nothing+    , _sName = Nothing+    , _sType = Nothing+    , _sSnapshotId = Nothing+    }++-- | The directory identifier.+sDirectoryId :: Lens' Snapshot (Maybe Text)+sDirectoryId = lens _sDirectoryId (\ s a -> s{_sDirectoryId = a});++-- | The snapshot status.+sStatus :: Lens' Snapshot (Maybe SnapshotStatus)+sStatus = lens _sStatus (\ s a -> s{_sStatus = a});++-- | The date and time that the snapshot was taken.+sStartTime :: Lens' Snapshot (Maybe UTCTime)+sStartTime = lens _sStartTime (\ s a -> s{_sStartTime = a}) . mapping _Time;++-- | The descriptive name of the snapshot.+sName :: Lens' Snapshot (Maybe Text)+sName = lens _sName (\ s a -> s{_sName = a});++-- | The snapshot type.+sType :: Lens' Snapshot (Maybe SnapshotType)+sType = lens _sType (\ s a -> s{_sType = a});++-- | The snapshot identifier.+sSnapshotId :: Lens' Snapshot (Maybe Text)+sSnapshotId = lens _sSnapshotId (\ s a -> s{_sSnapshotId = a});++instance FromJSON Snapshot where+        parseJSON+          = withObject "Snapshot"+              (\ x ->+                 Snapshot' <$>+                   (x .:? "DirectoryId") <*> (x .:? "Status") <*>+                     (x .:? "StartTime")+                     <*> (x .:? "Name")+                     <*> (x .:? "Type")+                     <*> (x .:? "SnapshotId"))++-- | Contains manual snapshot limit information for a directory.+--+-- /See:/ 'snapshotLimits' smart constructor.+data SnapshotLimits = SnapshotLimits'+    { _slManualSnapshotsLimitReached :: !(Maybe Bool)+    , _slManualSnapshotsCurrentCount :: !(Maybe Nat)+    , _slManualSnapshotsLimit        :: !(Maybe Nat)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'SnapshotLimits' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'slManualSnapshotsLimitReached'+--+-- * 'slManualSnapshotsCurrentCount'+--+-- * 'slManualSnapshotsLimit'+snapshotLimits+    :: SnapshotLimits+snapshotLimits =+    SnapshotLimits'+    { _slManualSnapshotsLimitReached = Nothing+    , _slManualSnapshotsCurrentCount = Nothing+    , _slManualSnapshotsLimit = Nothing+    }++-- | Indicates if the manual snapshot limit has been reached.+slManualSnapshotsLimitReached :: Lens' SnapshotLimits (Maybe Bool)+slManualSnapshotsLimitReached = lens _slManualSnapshotsLimitReached (\ s a -> s{_slManualSnapshotsLimitReached = a});++-- | The current number of manual snapshots of the directory.+slManualSnapshotsCurrentCount :: Lens' SnapshotLimits (Maybe Natural)+slManualSnapshotsCurrentCount = lens _slManualSnapshotsCurrentCount (\ s a -> s{_slManualSnapshotsCurrentCount = a}) . mapping _Nat;++-- | The maximum number of manual snapshots allowed.+slManualSnapshotsLimit :: Lens' SnapshotLimits (Maybe Natural)+slManualSnapshotsLimit = lens _slManualSnapshotsLimit (\ s a -> s{_slManualSnapshotsLimit = a}) . mapping _Nat;++instance FromJSON SnapshotLimits where+        parseJSON+          = withObject "SnapshotLimits"+              (\ x ->+                 SnapshotLimits' <$>+                   (x .:? "ManualSnapshotsLimitReached") <*>+                     (x .:? "ManualSnapshotsCurrentCount")+                     <*> (x .:? "ManualSnapshotsLimit"))
+ gen/Network/AWS/DirectoryService/Types/Sum.hs view
@@ -0,0 +1,240 @@+{-# 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.DirectoryService.Types.Sum+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Network.AWS.DirectoryService.Types.Sum where++import           Network.AWS.Prelude++data DirectorySize+    = Large+    | Small+    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)++instance FromText DirectorySize where+    parser = takeLowerText >>= \case+        "large" -> pure Large+        "small" -> pure Small+        e -> fromTextError $ "Failure parsing DirectorySize from value: '" <> e+           <> "'. Accepted values: large, small"++instance ToText DirectorySize where+    toText = \case+        Large -> "large"+        Small -> "small"++instance Hashable     DirectorySize+instance ToByteString DirectorySize+instance ToQuery      DirectorySize+instance ToHeader     DirectorySize++instance ToJSON DirectorySize where+    toJSON = toJSONText++instance FromJSON DirectorySize where+    parseJSON = parseJSONText "DirectorySize"++data DirectoryStage+    = DSActive+    | DSCreated+    | DSCreating+    | DSDeleted+    | DSDeleting+    | DSFailed+    | DSImpaired+    | DSInoperable+    | DSRequested+    | DSRestoreFailed+    | DSRestoring+    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)++instance FromText DirectoryStage where+    parser = takeLowerText >>= \case+        "active" -> pure DSActive+        "created" -> pure DSCreated+        "creating" -> pure DSCreating+        "deleted" -> pure DSDeleted+        "deleting" -> pure DSDeleting+        "failed" -> pure DSFailed+        "impaired" -> pure DSImpaired+        "inoperable" -> pure DSInoperable+        "requested" -> pure DSRequested+        "restorefailed" -> pure DSRestoreFailed+        "restoring" -> pure DSRestoring+        e -> fromTextError $ "Failure parsing DirectoryStage from value: '" <> e+           <> "'. Accepted values: active, created, creating, deleted, deleting, failed, impaired, inoperable, requested, restorefailed, restoring"++instance ToText DirectoryStage where+    toText = \case+        DSActive -> "active"+        DSCreated -> "created"+        DSCreating -> "creating"+        DSDeleted -> "deleted"+        DSDeleting -> "deleting"+        DSFailed -> "failed"+        DSImpaired -> "impaired"+        DSInoperable -> "inoperable"+        DSRequested -> "requested"+        DSRestoreFailed -> "restorefailed"+        DSRestoring -> "restoring"++instance Hashable     DirectoryStage+instance ToByteString DirectoryStage+instance ToQuery      DirectoryStage+instance ToHeader     DirectoryStage++instance FromJSON DirectoryStage where+    parseJSON = parseJSONText "DirectoryStage"++data DirectoryType+    = ADConnector+    | SimpleAD+    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)++instance FromText DirectoryType where+    parser = takeLowerText >>= \case+        "adconnector" -> pure ADConnector+        "simplead" -> pure SimpleAD+        e -> fromTextError $ "Failure parsing DirectoryType from value: '" <> e+           <> "'. Accepted values: adconnector, simplead"++instance ToText DirectoryType where+    toText = \case+        ADConnector -> "adconnector"+        SimpleAD -> "simplead"++instance Hashable     DirectoryType+instance ToByteString DirectoryType+instance ToQuery      DirectoryType+instance ToHeader     DirectoryType++instance FromJSON DirectoryType where+    parseJSON = parseJSONText "DirectoryType"++data RadiusAuthenticationProtocol+    = Chap+    | MsCHAPV1+    | MsCHAPV2+    | Pap+    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)++instance FromText RadiusAuthenticationProtocol where+    parser = takeLowerText >>= \case+        "chap" -> pure Chap+        "ms-chapv1" -> pure MsCHAPV1+        "ms-chapv2" -> pure MsCHAPV2+        "pap" -> pure Pap+        e -> fromTextError $ "Failure parsing RadiusAuthenticationProtocol from value: '" <> e+           <> "'. Accepted values: chap, ms-chapv1, ms-chapv2, pap"++instance ToText RadiusAuthenticationProtocol where+    toText = \case+        Chap -> "chap"+        MsCHAPV1 -> "ms-chapv1"+        MsCHAPV2 -> "ms-chapv2"+        Pap -> "pap"++instance Hashable     RadiusAuthenticationProtocol+instance ToByteString RadiusAuthenticationProtocol+instance ToQuery      RadiusAuthenticationProtocol+instance ToHeader     RadiusAuthenticationProtocol++instance ToJSON RadiusAuthenticationProtocol where+    toJSON = toJSONText++instance FromJSON RadiusAuthenticationProtocol where+    parseJSON = parseJSONText "RadiusAuthenticationProtocol"++data RadiusStatus+    = Completed+    | Creating+    | Failed+    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)++instance FromText RadiusStatus where+    parser = takeLowerText >>= \case+        "completed" -> pure Completed+        "creating" -> pure Creating+        "failed" -> pure Failed+        e -> fromTextError $ "Failure parsing RadiusStatus from value: '" <> e+           <> "'. Accepted values: completed, creating, failed"++instance ToText RadiusStatus where+    toText = \case+        Completed -> "completed"+        Creating -> "creating"+        Failed -> "failed"++instance Hashable     RadiusStatus+instance ToByteString RadiusStatus+instance ToQuery      RadiusStatus+instance ToHeader     RadiusStatus++instance FromJSON RadiusStatus where+    parseJSON = parseJSONText "RadiusStatus"++data SnapshotStatus+    = SSCompleted+    | SSCreating+    | SSFailed+    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)++instance FromText SnapshotStatus where+    parser = takeLowerText >>= \case+        "completed" -> pure SSCompleted+        "creating" -> pure SSCreating+        "failed" -> pure SSFailed+        e -> fromTextError $ "Failure parsing SnapshotStatus from value: '" <> e+           <> "'. Accepted values: completed, creating, failed"++instance ToText SnapshotStatus where+    toText = \case+        SSCompleted -> "completed"+        SSCreating -> "creating"+        SSFailed -> "failed"++instance Hashable     SnapshotStatus+instance ToByteString SnapshotStatus+instance ToQuery      SnapshotStatus+instance ToHeader     SnapshotStatus++instance FromJSON SnapshotStatus where+    parseJSON = parseJSONText "SnapshotStatus"++data SnapshotType+    = Auto+    | Manual+    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)++instance FromText SnapshotType where+    parser = takeLowerText >>= \case+        "auto" -> pure Auto+        "manual" -> pure Manual+        e -> fromTextError $ "Failure parsing SnapshotType from value: '" <> e+           <> "'. Accepted values: auto, manual"++instance ToText SnapshotType where+    toText = \case+        Auto -> "auto"+        Manual -> "manual"++instance Hashable     SnapshotType+instance ToByteString SnapshotType+instance ToQuery      SnapshotType+instance ToHeader     SnapshotType++instance FromJSON SnapshotType where+    parseJSON = parseJSONText "SnapshotType"
+ gen/Network/AWS/DirectoryService/UpdateRadius.hs view
@@ -0,0 +1,135 @@+{-# 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.DirectoryService.UpdateRadius+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates the Remote Authentication Dial In User Service (RADIUS) server+-- information for an AD Connector directory.+--+-- /See:/ <http://docs.aws.amazon.com/directoryservice/latest/devguide/API_UpdateRadius.html AWS API Reference> for UpdateRadius.+module Network.AWS.DirectoryService.UpdateRadius+    (+    -- * Creating a Request+      updateRadius+    , UpdateRadius+    -- * Request Lenses+    , urDirectoryId+    , urRadiusSettings++    -- * Destructuring the Response+    , updateRadiusResponse+    , UpdateRadiusResponse+    -- * Response Lenses+    , urrsStatus+    ) where++import           Network.AWS.DirectoryService.Types+import           Network.AWS.DirectoryService.Types.Product+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- | Contains the inputs for the UpdateRadius operation.+--+-- /See:/ 'updateRadius' smart constructor.+data UpdateRadius = UpdateRadius'+    { _urDirectoryId    :: !Text+    , _urRadiusSettings :: !RadiusSettings+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'UpdateRadius' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'urDirectoryId'+--+-- * 'urRadiusSettings'+updateRadius+    :: Text -- ^ 'urDirectoryId'+    -> RadiusSettings -- ^ 'urRadiusSettings'+    -> UpdateRadius+updateRadius pDirectoryId_ pRadiusSettings_ =+    UpdateRadius'+    { _urDirectoryId = pDirectoryId_+    , _urRadiusSettings = pRadiusSettings_+    }++-- | The identifier of the directory to update the RADIUS server information+-- for.+urDirectoryId :: Lens' UpdateRadius Text+urDirectoryId = lens _urDirectoryId (\ s a -> s{_urDirectoryId = a});++-- | A RadiusSettings object that contains information about the RADIUS+-- server.+urRadiusSettings :: Lens' UpdateRadius RadiusSettings+urRadiusSettings = lens _urRadiusSettings (\ s a -> s{_urRadiusSettings = a});++instance AWSRequest UpdateRadius where+        type Sv UpdateRadius = DirectoryService+        type Rs UpdateRadius = UpdateRadiusResponse+        request = postJSON+        response+          = receiveEmpty+              (\ s h x ->+                 UpdateRadiusResponse' <$> (pure (fromEnum s)))++instance ToHeaders UpdateRadius where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("DirectoryService_20150416.UpdateRadius" ::+                       ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON UpdateRadius where+        toJSON UpdateRadius'{..}+          = object+              ["DirectoryId" .= _urDirectoryId,+               "RadiusSettings" .= _urRadiusSettings]++instance ToPath UpdateRadius where+        toPath = const "/"++instance ToQuery UpdateRadius where+        toQuery = const mempty++-- | Contains the results of the UpdateRadius operation.+--+-- /See:/ 'updateRadiusResponse' smart constructor.+newtype UpdateRadiusResponse = UpdateRadiusResponse'+    { _urrsStatus :: Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'UpdateRadiusResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'urrsStatus'+updateRadiusResponse+    :: Int -- ^ 'urrsStatus'+    -> UpdateRadiusResponse+updateRadiusResponse pStatus_ =+    UpdateRadiusResponse'+    { _urrsStatus = pStatus_+    }++-- | The response status code.+urrsStatus :: Lens' UpdateRadiusResponse Int+urrsStatus = lens _urrsStatus (\ s a -> s{_urrsStatus = a});
+ gen/Network/AWS/DirectoryService/Waiters.hs view
@@ -0,0 +1,20 @@+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE TypeFamilies      #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.DirectoryService.Waiters+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Network.AWS.DirectoryService.Waiters where++import           Network.AWS.DirectoryService.Types+import           Network.AWS.Prelude+import           Network.AWS.Waiter
+ test/Main.hs view
@@ -0,0 +1,21 @@+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module      : Main+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Main (main) where++import Test.Tasty+import Test.AWS.DirectoryService+import Test.AWS.DirectoryService.Internal++main :: IO ()+main = defaultMain $ testGroup "DirectoryService"+    [ testGroup "tests"    tests+    , testGroup "fixtures" fixtures+    ]
+ test/Test/AWS/DirectoryService.hs view
@@ -0,0 +1,26 @@+{-# LANGUAGE OverloadedStrings #-}++-- Module      : Test.AWS.DirectoryService+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : This Source Code Form is subject to the terms of+--               the Mozilla Public License, v. 2.0.+--               A copy of the MPL can be found in the LICENSE file or+--               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : experimental+-- Portability : non-portable (GHC extensions)++module Test.AWS.DirectoryService+    ( tests+    , fixtures+    ) where++import           Network.AWS.DirectoryService+import           Test.AWS.Gen.DirectoryService+import           Test.Tasty++tests :: [TestTree]+tests = []++fixtures :: [TestTree]+fixtures = []
+ test/Test/AWS/DirectoryService/Internal.hs view
@@ -0,0 +1,16 @@+{-# LANGUAGE OverloadedStrings #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module      : Test.AWS.DirectoryService.Internal+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : This Source Code Form is subject to the terms of+--               the Mozilla Public License, v. 2.0.+--               A copy of the MPL can be found in the LICENSE file or+--               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : experimental+-- Portability : non-portable (GHC extensions)++module Test.AWS.DirectoryService.Internal where++import Test.AWS.Prelude
+ test/Test/AWS/Gen/DirectoryService.hs view
@@ -0,0 +1,328 @@+{-# 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.DirectoryService+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Test.AWS.Gen.DirectoryService where++import Data.Proxy+import Test.AWS.Fixture+import Test.AWS.Prelude+import Test.Tasty+import Network.AWS.DirectoryService+import Test.AWS.DirectoryService.Internal++-- 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"+--         [ testGetSnapshotLimits $+--             getSnapshotLimits+--+--         , testConnectDirectory $+--             connectDirectory+--+--         , testDescribeDirectories $+--             describeDirectories+--+--         , testCreateAlias $+--             createAlias+--+--         , testCreateDirectory $+--             createDirectory+--+--         , testEnableSSO $+--             enableSSO+--+--         , testEnableRadius $+--             enableRadius+--+--         , testDisableRadius $+--             disableRadius+--+--         , testDescribeSnapshots $+--             describeSnapshots+--+--         , testRestoreFromSnapshot $+--             restoreFromSnapshot+--+--         , testDeleteSnapshot $+--             deleteSnapshot+--+--         , testCreateSnapshot $+--             createSnapshot+--+--         , testDeleteDirectory $+--             deleteDirectory+--+--         , testDisableSSO $+--             disableSSO+--+--         , testCreateComputer $+--             createComputer+--+--         , testGetDirectoryLimits $+--             getDirectoryLimits+--+--         , testUpdateRadius $+--             updateRadius+--+--           ]++--     , testGroup "response"+--         [ testGetSnapshotLimitsResponse $+--             getSnapshotLimitsResponse+--+--         , testConnectDirectoryResponse $+--             connectDirectoryResponse+--+--         , testDescribeDirectoriesResponse $+--             describeDirectoriesResponse+--+--         , testCreateAliasResponse $+--             createAliasResponse+--+--         , testCreateDirectoryResponse $+--             createDirectoryResponse+--+--         , testEnableSSOResponse $+--             enableSSOResponse+--+--         , testEnableRadiusResponse $+--             enableRadiusResponse+--+--         , testDisableRadiusResponse $+--             disableRadiusResponse+--+--         , testDescribeSnapshotsResponse $+--             describeSnapshotsResponse+--+--         , testRestoreFromSnapshotResponse $+--             restoreFromSnapshotResponse+--+--         , testDeleteSnapshotResponse $+--             deleteSnapshotResponse+--+--         , testCreateSnapshotResponse $+--             createSnapshotResponse+--+--         , testDeleteDirectoryResponse $+--             deleteDirectoryResponse+--+--         , testDisableSSOResponse $+--             disableSSOResponse+--+--         , testCreateComputerResponse $+--             createComputerResponse+--+--         , testGetDirectoryLimitsResponse $+--             getDirectoryLimitsResponse+--+--         , testUpdateRadiusResponse $+--             updateRadiusResponse+--+--           ]+--     ]++-- Requests++testGetSnapshotLimits :: GetSnapshotLimits -> TestTree+testGetSnapshotLimits = req+    "GetSnapshotLimits"+    "fixture/GetSnapshotLimits"++testConnectDirectory :: ConnectDirectory -> TestTree+testConnectDirectory = req+    "ConnectDirectory"+    "fixture/ConnectDirectory"++testDescribeDirectories :: DescribeDirectories -> TestTree+testDescribeDirectories = req+    "DescribeDirectories"+    "fixture/DescribeDirectories"++testCreateAlias :: CreateAlias -> TestTree+testCreateAlias = req+    "CreateAlias"+    "fixture/CreateAlias"++testCreateDirectory :: CreateDirectory -> TestTree+testCreateDirectory = req+    "CreateDirectory"+    "fixture/CreateDirectory"++testEnableSSO :: EnableSSO -> TestTree+testEnableSSO = req+    "EnableSSO"+    "fixture/EnableSSO"++testEnableRadius :: EnableRadius -> TestTree+testEnableRadius = req+    "EnableRadius"+    "fixture/EnableRadius"++testDisableRadius :: DisableRadius -> TestTree+testDisableRadius = req+    "DisableRadius"+    "fixture/DisableRadius"++testDescribeSnapshots :: DescribeSnapshots -> TestTree+testDescribeSnapshots = req+    "DescribeSnapshots"+    "fixture/DescribeSnapshots"++testRestoreFromSnapshot :: RestoreFromSnapshot -> TestTree+testRestoreFromSnapshot = req+    "RestoreFromSnapshot"+    "fixture/RestoreFromSnapshot"++testDeleteSnapshot :: DeleteSnapshot -> TestTree+testDeleteSnapshot = req+    "DeleteSnapshot"+    "fixture/DeleteSnapshot"++testCreateSnapshot :: CreateSnapshot -> TestTree+testCreateSnapshot = req+    "CreateSnapshot"+    "fixture/CreateSnapshot"++testDeleteDirectory :: DeleteDirectory -> TestTree+testDeleteDirectory = req+    "DeleteDirectory"+    "fixture/DeleteDirectory"++testDisableSSO :: DisableSSO -> TestTree+testDisableSSO = req+    "DisableSSO"+    "fixture/DisableSSO"++testCreateComputer :: CreateComputer -> TestTree+testCreateComputer = req+    "CreateComputer"+    "fixture/CreateComputer"++testGetDirectoryLimits :: GetDirectoryLimits -> TestTree+testGetDirectoryLimits = req+    "GetDirectoryLimits"+    "fixture/GetDirectoryLimits"++testUpdateRadius :: UpdateRadius -> TestTree+testUpdateRadius = req+    "UpdateRadius"+    "fixture/UpdateRadius"++-- Responses++testGetSnapshotLimitsResponse :: GetSnapshotLimitsResponse -> TestTree+testGetSnapshotLimitsResponse = res+    "GetSnapshotLimitsResponse"+    "fixture/GetSnapshotLimitsResponse"+    (Proxy :: Proxy GetSnapshotLimits)++testConnectDirectoryResponse :: ConnectDirectoryResponse -> TestTree+testConnectDirectoryResponse = res+    "ConnectDirectoryResponse"+    "fixture/ConnectDirectoryResponse"+    (Proxy :: Proxy ConnectDirectory)++testDescribeDirectoriesResponse :: DescribeDirectoriesResponse -> TestTree+testDescribeDirectoriesResponse = res+    "DescribeDirectoriesResponse"+    "fixture/DescribeDirectoriesResponse"+    (Proxy :: Proxy DescribeDirectories)++testCreateAliasResponse :: CreateAliasResponse -> TestTree+testCreateAliasResponse = res+    "CreateAliasResponse"+    "fixture/CreateAliasResponse"+    (Proxy :: Proxy CreateAlias)++testCreateDirectoryResponse :: CreateDirectoryResponse -> TestTree+testCreateDirectoryResponse = res+    "CreateDirectoryResponse"+    "fixture/CreateDirectoryResponse"+    (Proxy :: Proxy CreateDirectory)++testEnableSSOResponse :: EnableSSOResponse -> TestTree+testEnableSSOResponse = res+    "EnableSSOResponse"+    "fixture/EnableSSOResponse"+    (Proxy :: Proxy EnableSSO)++testEnableRadiusResponse :: EnableRadiusResponse -> TestTree+testEnableRadiusResponse = res+    "EnableRadiusResponse"+    "fixture/EnableRadiusResponse"+    (Proxy :: Proxy EnableRadius)++testDisableRadiusResponse :: DisableRadiusResponse -> TestTree+testDisableRadiusResponse = res+    "DisableRadiusResponse"+    "fixture/DisableRadiusResponse"+    (Proxy :: Proxy DisableRadius)++testDescribeSnapshotsResponse :: DescribeSnapshotsResponse -> TestTree+testDescribeSnapshotsResponse = res+    "DescribeSnapshotsResponse"+    "fixture/DescribeSnapshotsResponse"+    (Proxy :: Proxy DescribeSnapshots)++testRestoreFromSnapshotResponse :: RestoreFromSnapshotResponse -> TestTree+testRestoreFromSnapshotResponse = res+    "RestoreFromSnapshotResponse"+    "fixture/RestoreFromSnapshotResponse"+    (Proxy :: Proxy RestoreFromSnapshot)++testDeleteSnapshotResponse :: DeleteSnapshotResponse -> TestTree+testDeleteSnapshotResponse = res+    "DeleteSnapshotResponse"+    "fixture/DeleteSnapshotResponse"+    (Proxy :: Proxy DeleteSnapshot)++testCreateSnapshotResponse :: CreateSnapshotResponse -> TestTree+testCreateSnapshotResponse = res+    "CreateSnapshotResponse"+    "fixture/CreateSnapshotResponse"+    (Proxy :: Proxy CreateSnapshot)++testDeleteDirectoryResponse :: DeleteDirectoryResponse -> TestTree+testDeleteDirectoryResponse = res+    "DeleteDirectoryResponse"+    "fixture/DeleteDirectoryResponse"+    (Proxy :: Proxy DeleteDirectory)++testDisableSSOResponse :: DisableSSOResponse -> TestTree+testDisableSSOResponse = res+    "DisableSSOResponse"+    "fixture/DisableSSOResponse"+    (Proxy :: Proxy DisableSSO)++testCreateComputerResponse :: CreateComputerResponse -> TestTree+testCreateComputerResponse = res+    "CreateComputerResponse"+    "fixture/CreateComputerResponse"+    (Proxy :: Proxy CreateComputer)++testGetDirectoryLimitsResponse :: GetDirectoryLimitsResponse -> TestTree+testGetDirectoryLimitsResponse = res+    "GetDirectoryLimitsResponse"+    "fixture/GetDirectoryLimitsResponse"+    (Proxy :: Proxy GetDirectoryLimits)++testUpdateRadiusResponse :: UpdateRadiusResponse -> TestTree+testUpdateRadiusResponse = res+    "UpdateRadiusResponse"+    "fixture/UpdateRadiusResponse"+    (Proxy :: Proxy UpdateRadius)