packages feed

amazonka-devicefarm (empty) → 1.0.0

raw patch · 38 files changed

+8331/−0 lines, 38 filesdep +amazonka-coredep +amazonka-devicefarmdep +amazonka-testsetup-changed

Dependencies added: amazonka-core, amazonka-devicefarm, 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,44 @@+# Amazon Device Farm SDK++* [Version](#version)+* [Description](#description)+* [Contribute](#contribute)+* [Licence](#licence)+++## Version++`1.0.0`+++## Description++AWS Device Farm is a service that enables mobile app developers to test+Android, iOS, and Fire OS apps on physical phones, tablets, and other+devices in the cloud.++Documentation is available via [Hackage](http://hackage.haskell.org/package/amazonka-devicefarm)+and the [AWS API Reference](http://docs.aws.amazon.com/devicefarm/latest/APIReference/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-devicefarm` 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-devicefarm.cabal view
@@ -0,0 +1,108 @@+name:                  amazonka-devicefarm+version:               1.0.0+synopsis:              Amazon Device Farm 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 Device Farm is a service that enables mobile app developers to test+    Android, iOS, and Fire OS apps on physical phones, tablets, and other+    devices in the cloud.+    .+    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.DeviceFarm" and the <http://docs.aws.amazon.com/devicefarm/latest/APIReference/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.DeviceFarm+        , Network.AWS.DeviceFarm.CreateDevicePool+        , Network.AWS.DeviceFarm.CreateProject+        , Network.AWS.DeviceFarm.CreateUpload+        , Network.AWS.DeviceFarm.GetAccountSettings+        , Network.AWS.DeviceFarm.GetDevice+        , Network.AWS.DeviceFarm.GetDevicePool+        , Network.AWS.DeviceFarm.GetDevicePoolCompatibility+        , Network.AWS.DeviceFarm.GetJob+        , Network.AWS.DeviceFarm.GetProject+        , Network.AWS.DeviceFarm.GetRun+        , Network.AWS.DeviceFarm.GetSuite+        , Network.AWS.DeviceFarm.GetTest+        , Network.AWS.DeviceFarm.GetUpload+        , Network.AWS.DeviceFarm.ListArtifacts+        , Network.AWS.DeviceFarm.ListDevicePools+        , Network.AWS.DeviceFarm.ListDevices+        , Network.AWS.DeviceFarm.ListJobs+        , Network.AWS.DeviceFarm.ListProjects+        , Network.AWS.DeviceFarm.ListRuns+        , Network.AWS.DeviceFarm.ListSamples+        , Network.AWS.DeviceFarm.ListSuites+        , Network.AWS.DeviceFarm.ListTests+        , Network.AWS.DeviceFarm.ListUniqueProblems+        , Network.AWS.DeviceFarm.ListUploads+        , Network.AWS.DeviceFarm.ScheduleRun+        , Network.AWS.DeviceFarm.Types+        , Network.AWS.DeviceFarm.Waiters++    other-modules:+          Network.AWS.DeviceFarm.Types.Product+        , Network.AWS.DeviceFarm.Types.Sum++    build-depends:+          amazonka-core == 1.0.0.*+        , base          >= 4.7     && < 5++test-suite amazonka-devicefarm-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.DeviceFarm+        , Test.AWS.Gen.DeviceFarm+        , Test.AWS.DeviceFarm.Internal++    build-depends:+          amazonka-core == 1.0.0+        , amazonka-test == 1.0.0+        , amazonka-devicefarm == 1.0.0+        , base+        , bytestring+        , lens+        , tasty+        , tasty-hunit+        , text+        , time+        , unordered-containers
+ gen/Network/AWS/DeviceFarm.hs view
@@ -0,0 +1,454 @@+{-# 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.DeviceFarm+-- 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 Device Farm is a service that enables mobile app developers to test+-- Android, iOS, and Fire OS apps on physical phones, tablets, and other+-- devices in the cloud.+--+-- /See:/ <http://docs.aws.amazon.com/devicefarm/latest/APIReference/Welcome.html AWS API Reference>+module Network.AWS.DeviceFarm+    (+    -- * Service+      DeviceFarm++    -- * Errors+    -- $errors++    -- ** IdempotencyException+    , _IdempotencyException++    -- ** NotFoundException+    , _NotFoundException++    -- ** ArgumentException+    , _ArgumentException++    -- ** ServiceAccountException+    , _ServiceAccountException++    -- ** LimitExceededException+    , _LimitExceededException++    -- * Waiters+    -- $waiters++    -- * Operations+    -- $operations++    -- ** ListProjects+    , module Network.AWS.DeviceFarm.ListProjects++    -- ** GetDevicePoolCompatibility+    , module Network.AWS.DeviceFarm.GetDevicePoolCompatibility++    -- ** ListTests+    , module Network.AWS.DeviceFarm.ListTests++    -- ** CreateUpload+    , module Network.AWS.DeviceFarm.CreateUpload++    -- ** ListArtifacts+    , module Network.AWS.DeviceFarm.ListArtifacts++    -- ** GetDevicePool+    , module Network.AWS.DeviceFarm.GetDevicePool++    -- ** GetUpload+    , module Network.AWS.DeviceFarm.GetUpload++    -- ** ListDevicePools+    , module Network.AWS.DeviceFarm.ListDevicePools++    -- ** GetTest+    , module Network.AWS.DeviceFarm.GetTest++    -- ** CreateDevicePool+    , module Network.AWS.DeviceFarm.CreateDevicePool++    -- ** ListRuns+    , module Network.AWS.DeviceFarm.ListRuns++    -- ** ListJobs+    , module Network.AWS.DeviceFarm.ListJobs++    -- ** GetDevice+    , module Network.AWS.DeviceFarm.GetDevice++    -- ** GetJob+    , module Network.AWS.DeviceFarm.GetJob++    -- ** ScheduleRun+    , module Network.AWS.DeviceFarm.ScheduleRun++    -- ** GetRun+    , module Network.AWS.DeviceFarm.GetRun++    -- ** ListSamples+    , module Network.AWS.DeviceFarm.ListSamples++    -- ** ListSuites+    , module Network.AWS.DeviceFarm.ListSuites++    -- ** GetAccountSettings+    , module Network.AWS.DeviceFarm.GetAccountSettings++    -- ** ListUploads+    , module Network.AWS.DeviceFarm.ListUploads++    -- ** GetSuite+    , module Network.AWS.DeviceFarm.GetSuite++    -- ** GetProject+    , module Network.AWS.DeviceFarm.GetProject++    -- ** ListDevices+    , module Network.AWS.DeviceFarm.ListDevices++    -- ** ListUniqueProblems+    , module Network.AWS.DeviceFarm.ListUniqueProblems++    -- ** CreateProject+    , module Network.AWS.DeviceFarm.CreateProject++    -- * Types++    -- ** ArtifactCategory+    , ArtifactCategory (..)++    -- ** ArtifactType+    , ArtifactType (..)++    -- ** BillingMethod+    , BillingMethod (..)++    -- ** DeviceAttribute+    , DeviceAttribute (..)++    -- ** DeviceFormFactor+    , DeviceFormFactor (..)++    -- ** DevicePlatform+    , DevicePlatform (..)++    -- ** DevicePoolType+    , DevicePoolType (..)++    -- ** ExecutionResult+    , ExecutionResult (..)++    -- ** ExecutionStatus+    , ExecutionStatus (..)++    -- ** RuleOperator+    , RuleOperator (..)++    -- ** SampleType+    , SampleType (..)++    -- ** TestType+    , TestType (..)++    -- ** UploadStatus+    , UploadStatus (..)++    -- ** UploadType+    , UploadType (..)++    -- ** AccountSettings+    , AccountSettings+    , accountSettings+    , asAwsAccountNumber+    , asUnmeteredDevices++    -- ** Artifact+    , Artifact+    , artifact+    , aArn+    , aUrl+    , aExtension+    , aName+    , aType++    -- ** CPU+    , CPU+    , cpu+    , cpuFrequency+    , cpuClock+    , cpuArchitecture++    -- ** Counters+    , Counters+    , counters+    , cPassed+    , cSkipped+    , cWarned+    , cStopped+    , cTotal+    , cFailed+    , cErrored++    -- ** Device+    , Device+    , device+    , dCarrier+    , dImage+    , dManufacturer+    , dPlatform+    , dArn+    , dFormFactor+    , dResolution+    , dMemory+    , dRadio+    , dOs+    , dName+    , dModel+    , dCpu+    , dHeapSize++    -- ** DevicePool+    , DevicePool+    , devicePool+    , dpArn+    , dpRules+    , dpName+    , dpType+    , dpDescription++    -- ** DevicePoolCompatibilityResult+    , DevicePoolCompatibilityResult+    , devicePoolCompatibilityResult+    , dpcrDevice+    , dpcrCompatible+    , dpcrIncompatibilityMessages++    -- ** IncompatibilityMessage+    , IncompatibilityMessage+    , incompatibilityMessage+    , imType+    , imMessage++    -- ** Job+    , Job+    , job+    , jobStatus+    , jobCounters+    , jobArn+    , jobCreated+    , jobDevice+    , jobStopped+    , jobResult+    , jobName+    , jobType+    , jobMessage+    , jobStarted++    -- ** Location+    , Location+    , location+    , lLatitude+    , lLongitude++    -- ** Problem+    , Problem+    , problem+    , pDevice+    , pTest+    , pResult+    , pRun+    , pJob+    , pMessage+    , pSuite++    -- ** ProblemDetail+    , ProblemDetail+    , problemDetail+    , pdArn+    , pdName++    -- ** Project+    , Project+    , project+    , pArn+    , pCreated+    , pName++    -- ** Radios+    , Radios+    , radios+    , rNfc+    , rGps+    , rBluetooth+    , rWifi++    -- ** Resolution+    , Resolution+    , resolution+    , rHeight+    , rWidth++    -- ** Rule+    , Rule+    , rule+    , rAttribute+    , rOperator+    , rValue++    -- ** Run+    , Run+    , run+    , runStatus+    , runBillingMethod+    , runCounters+    , runPlatform+    , runArn+    , runCreated+    , runCompletedJobs+    , runStopped+    , runResult+    , runName+    , runType+    , runMessage+    , runTotalJobs+    , runStarted++    -- ** Sample+    , Sample+    , sample+    , sArn+    , sUrl+    , sType++    -- ** ScheduleRunConfiguration+    , ScheduleRunConfiguration+    , scheduleRunConfiguration+    , srcBillingMethod+    , srcRadios+    , srcLocation+    , srcLocale+    , srcNetworkProfileARN+    , srcExtraDataPackageARN+    , srcAuxiliaryApps++    -- ** ScheduleRunTest+    , ScheduleRunTest+    , scheduleRunTest+    , srtTestPackageARN+    , srtParameters+    , srtFilter+    , srtType++    -- ** Suite+    , Suite+    , suite+    , suiStatus+    , suiCounters+    , suiArn+    , suiCreated+    , suiStopped+    , suiResult+    , suiName+    , suiType+    , suiMessage+    , suiStarted++    -- ** Test+    , Test+    , test+    , tStatus+    , tCounters+    , tArn+    , tCreated+    , tStopped+    , tResult+    , tName+    , tType+    , tMessage+    , tStarted++    -- ** UniqueProblem+    , UniqueProblem+    , uniqueProblem+    , upProblems+    , upMessage++    -- ** Upload+    , Upload+    , upload+    , uStatus+    , uArn+    , uCreated+    , uUrl+    , uName+    , uMetadata+    , uType+    , uMessage+    , uContentType+    ) where++import           Network.AWS.DeviceFarm.CreateDevicePool+import           Network.AWS.DeviceFarm.CreateProject+import           Network.AWS.DeviceFarm.CreateUpload+import           Network.AWS.DeviceFarm.GetAccountSettings+import           Network.AWS.DeviceFarm.GetDevice+import           Network.AWS.DeviceFarm.GetDevicePool+import           Network.AWS.DeviceFarm.GetDevicePoolCompatibility+import           Network.AWS.DeviceFarm.GetJob+import           Network.AWS.DeviceFarm.GetProject+import           Network.AWS.DeviceFarm.GetRun+import           Network.AWS.DeviceFarm.GetSuite+import           Network.AWS.DeviceFarm.GetTest+import           Network.AWS.DeviceFarm.GetUpload+import           Network.AWS.DeviceFarm.ListArtifacts+import           Network.AWS.DeviceFarm.ListDevicePools+import           Network.AWS.DeviceFarm.ListDevices+import           Network.AWS.DeviceFarm.ListJobs+import           Network.AWS.DeviceFarm.ListProjects+import           Network.AWS.DeviceFarm.ListRuns+import           Network.AWS.DeviceFarm.ListSamples+import           Network.AWS.DeviceFarm.ListSuites+import           Network.AWS.DeviceFarm.ListTests+import           Network.AWS.DeviceFarm.ListUniqueProblems+import           Network.AWS.DeviceFarm.ListUploads+import           Network.AWS.DeviceFarm.ScheduleRun+import           Network.AWS.DeviceFarm.Types+import           Network.AWS.DeviceFarm.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 'DeviceFarm'.+-}++{- $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/DeviceFarm/CreateDevicePool.hs view
@@ -0,0 +1,161 @@+{-# 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.DeviceFarm.CreateDevicePool+-- 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 device pool.+--+-- /See:/ <http://docs.aws.amazon.com/devicefarm/latest/APIReference/API_CreateDevicePool.html AWS API Reference> for CreateDevicePool.+module Network.AWS.DeviceFarm.CreateDevicePool+    (+    -- * Creating a Request+      createDevicePool+    , CreateDevicePool+    -- * Request Lenses+    , cdpDescription+    , cdpProjectARN+    , cdpName+    , cdpRules++    -- * Destructuring the Response+    , createDevicePoolResponse+    , CreateDevicePoolResponse+    -- * Response Lenses+    , cdprsDevicePool+    , cdprsStatus+    ) where++import           Network.AWS.DeviceFarm.Types+import           Network.AWS.DeviceFarm.Types.Product+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- | Represents a request to the create device pool operation.+--+-- /See:/ 'createDevicePool' smart constructor.+data CreateDevicePool = CreateDevicePool'+    { _cdpDescription :: !(Maybe Text)+    , _cdpProjectARN  :: !Text+    , _cdpName        :: !Text+    , _cdpRules       :: ![Rule]+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'CreateDevicePool' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cdpDescription'+--+-- * 'cdpProjectARN'+--+-- * 'cdpName'+--+-- * 'cdpRules'+createDevicePool+    :: Text -- ^ 'cdpProjectARN'+    -> Text -- ^ 'cdpName'+    -> CreateDevicePool+createDevicePool pProjectARN_ pName_ =+    CreateDevicePool'+    { _cdpDescription = Nothing+    , _cdpProjectARN = pProjectARN_+    , _cdpName = pName_+    , _cdpRules = mempty+    }++-- | The device pool\'s description.+cdpDescription :: Lens' CreateDevicePool (Maybe Text)+cdpDescription = lens _cdpDescription (\ s a -> s{_cdpDescription = a});++-- | The ARN of the project for the device pool.+cdpProjectARN :: Lens' CreateDevicePool Text+cdpProjectARN = lens _cdpProjectARN (\ s a -> s{_cdpProjectARN = a});++-- | The device pool\'s name.+cdpName :: Lens' CreateDevicePool Text+cdpName = lens _cdpName (\ s a -> s{_cdpName = a});++-- | The device pool\'s rules.+cdpRules :: Lens' CreateDevicePool [Rule]+cdpRules = lens _cdpRules (\ s a -> s{_cdpRules = a}) . _Coerce;++instance AWSRequest CreateDevicePool where+        type Sv CreateDevicePool = DeviceFarm+        type Rs CreateDevicePool = CreateDevicePoolResponse+        request = postJSON+        response+          = receiveJSON+              (\ s h x ->+                 CreateDevicePoolResponse' <$>+                   (x .?> "devicePool") <*> (pure (fromEnum s)))++instance ToHeaders CreateDevicePool where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("DeviceFarm_20150623.CreateDevicePool" ::+                       ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON CreateDevicePool where+        toJSON CreateDevicePool'{..}+          = object+              ["description" .= _cdpDescription,+               "projectArn" .= _cdpProjectARN, "name" .= _cdpName,+               "rules" .= _cdpRules]++instance ToPath CreateDevicePool where+        toPath = const "/"++instance ToQuery CreateDevicePool where+        toQuery = const mempty++-- | Represents the result of a create device pool request.+--+-- /See:/ 'createDevicePoolResponse' smart constructor.+data CreateDevicePoolResponse = CreateDevicePoolResponse'+    { _cdprsDevicePool :: !(Maybe DevicePool)+    , _cdprsStatus     :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'CreateDevicePoolResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cdprsDevicePool'+--+-- * 'cdprsStatus'+createDevicePoolResponse+    :: Int -- ^ 'cdprsStatus'+    -> CreateDevicePoolResponse+createDevicePoolResponse pStatus_ =+    CreateDevicePoolResponse'+    { _cdprsDevicePool = Nothing+    , _cdprsStatus = pStatus_+    }++-- | The newly created device pool.+cdprsDevicePool :: Lens' CreateDevicePoolResponse (Maybe DevicePool)+cdprsDevicePool = lens _cdprsDevicePool (\ s a -> s{_cdprsDevicePool = a});++-- | The response status code.+cdprsStatus :: Lens' CreateDevicePoolResponse Int+cdprsStatus = lens _cdprsStatus (\ s a -> s{_cdprsStatus = a});
+ gen/Network/AWS/DeviceFarm/CreateProject.hs view
@@ -0,0 +1,129 @@+{-# 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.DeviceFarm.CreateProject+-- 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 new project.+--+-- /See:/ <http://docs.aws.amazon.com/devicefarm/latest/APIReference/API_CreateProject.html AWS API Reference> for CreateProject.+module Network.AWS.DeviceFarm.CreateProject+    (+    -- * Creating a Request+      createProject+    , CreateProject+    -- * Request Lenses+    , cpName++    -- * Destructuring the Response+    , createProjectResponse+    , CreateProjectResponse+    -- * Response Lenses+    , cprsProject+    , cprsStatus+    ) where++import           Network.AWS.DeviceFarm.Types+import           Network.AWS.DeviceFarm.Types.Product+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- | Represents a request to the create project operation.+--+-- /See:/ 'createProject' smart constructor.+newtype CreateProject = CreateProject'+    { _cpName :: Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'CreateProject' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cpName'+createProject+    :: Text -- ^ 'cpName'+    -> CreateProject+createProject pName_ =+    CreateProject'+    { _cpName = pName_+    }++-- | The project\'s name.+cpName :: Lens' CreateProject Text+cpName = lens _cpName (\ s a -> s{_cpName = a});++instance AWSRequest CreateProject where+        type Sv CreateProject = DeviceFarm+        type Rs CreateProject = CreateProjectResponse+        request = postJSON+        response+          = receiveJSON+              (\ s h x ->+                 CreateProjectResponse' <$>+                   (x .?> "project") <*> (pure (fromEnum s)))++instance ToHeaders CreateProject where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("DeviceFarm_20150623.CreateProject" :: ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON CreateProject where+        toJSON CreateProject'{..}+          = object ["name" .= _cpName]++instance ToPath CreateProject where+        toPath = const "/"++instance ToQuery CreateProject where+        toQuery = const mempty++-- | Represents the result of a create project request.+--+-- /See:/ 'createProjectResponse' smart constructor.+data CreateProjectResponse = CreateProjectResponse'+    { _cprsProject :: !(Maybe Project)+    , _cprsStatus  :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'CreateProjectResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cprsProject'+--+-- * 'cprsStatus'+createProjectResponse+    :: Int -- ^ 'cprsStatus'+    -> CreateProjectResponse+createProjectResponse pStatus_ =+    CreateProjectResponse'+    { _cprsProject = Nothing+    , _cprsStatus = pStatus_+    }++-- | The newly created project.+cprsProject :: Lens' CreateProjectResponse (Maybe Project)+cprsProject = lens _cprsProject (\ s a -> s{_cprsProject = a});++-- | The response status code.+cprsStatus :: Lens' CreateProjectResponse Int+cprsStatus = lens _cprsStatus (\ s a -> s{_cprsStatus = a});
+ gen/Network/AWS/DeviceFarm/CreateUpload.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.DeviceFarm.CreateUpload+-- 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)+--+-- Uploads an app or test scripts.+--+-- /See:/ <http://docs.aws.amazon.com/devicefarm/latest/APIReference/API_CreateUpload.html AWS API Reference> for CreateUpload.+module Network.AWS.DeviceFarm.CreateUpload+    (+    -- * Creating a Request+      createUpload+    , CreateUpload+    -- * Request Lenses+    , cuContentType+    , cuProjectARN+    , cuName+    , cuType++    -- * Destructuring the Response+    , createUploadResponse+    , CreateUploadResponse+    -- * Response Lenses+    , cursUpload+    , cursStatus+    ) where++import           Network.AWS.DeviceFarm.Types+import           Network.AWS.DeviceFarm.Types.Product+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- | Represents a request to the create upload operation.+--+-- /See:/ 'createUpload' smart constructor.+data CreateUpload = CreateUpload'+    { _cuContentType :: !(Maybe Text)+    , _cuProjectARN  :: !Text+    , _cuName        :: !Text+    , _cuType        :: !UploadType+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'CreateUpload' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cuContentType'+--+-- * 'cuProjectARN'+--+-- * 'cuName'+--+-- * 'cuType'+createUpload+    :: Text -- ^ 'cuProjectARN'+    -> Text -- ^ 'cuName'+    -> UploadType -- ^ 'cuType'+    -> CreateUpload+createUpload pProjectARN_ pName_ pType_ =+    CreateUpload'+    { _cuContentType = Nothing+    , _cuProjectARN = pProjectARN_+    , _cuName = pName_+    , _cuType = pType_+    }++-- | The upload\'s content type (for example, \"application\/octet-stream\").+cuContentType :: Lens' CreateUpload (Maybe Text)+cuContentType = lens _cuContentType (\ s a -> s{_cuContentType = a});++-- | The ARN of the project for the upload.+cuProjectARN :: Lens' CreateUpload Text+cuProjectARN = lens _cuProjectARN (\ s a -> s{_cuProjectARN = a});++-- | The upload\'s file name.+cuName :: Lens' CreateUpload Text+cuName = lens _cuName (\ s a -> s{_cuName = a});++-- | The upload\'s upload type.+--+-- Must be one of the following values:+--+-- -   ANDROID_APP: An Android upload.+--+-- -   IOS_APP: An iOS upload.+--+-- -   EXTERNAL_DATA: An external data upload.+--+-- -   APPIUM_JAVA_JUNIT_TEST_PACKAGE: An Appium Java JUnit test package+--     upload.+--+-- -   APPIUM_JAVA_TESTNG_TEST_PACKAGE: An Appium Java TestNG test package+--     upload.+--+-- -   CALABASH_TEST_PACKAGE: A Calabash test package upload.+--+-- -   INSTRUMENTATION_TEST_PACKAGE: An instrumentation upload.+--+-- -   UIAUTOMATOR_TEST_PACKAGE: A uiautomator test package upload.+--+-- -   XCTEST_TEST_PACKAGE: An XCode test package upload.+--+cuType :: Lens' CreateUpload UploadType+cuType = lens _cuType (\ s a -> s{_cuType = a});++instance AWSRequest CreateUpload where+        type Sv CreateUpload = DeviceFarm+        type Rs CreateUpload = CreateUploadResponse+        request = postJSON+        response+          = receiveJSON+              (\ s h x ->+                 CreateUploadResponse' <$>+                   (x .?> "upload") <*> (pure (fromEnum s)))++instance ToHeaders CreateUpload where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("DeviceFarm_20150623.CreateUpload" :: ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON CreateUpload where+        toJSON CreateUpload'{..}+          = object+              ["contentType" .= _cuContentType,+               "projectArn" .= _cuProjectARN, "name" .= _cuName,+               "type" .= _cuType]++instance ToPath CreateUpload where+        toPath = const "/"++instance ToQuery CreateUpload where+        toQuery = const mempty++-- | Represents the result of a create upload request.+--+-- /See:/ 'createUploadResponse' smart constructor.+data CreateUploadResponse = CreateUploadResponse'+    { _cursUpload :: !(Maybe Upload)+    , _cursStatus :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'CreateUploadResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cursUpload'+--+-- * 'cursStatus'+createUploadResponse+    :: Int -- ^ 'cursStatus'+    -> CreateUploadResponse+createUploadResponse pStatus_ =+    CreateUploadResponse'+    { _cursUpload = Nothing+    , _cursStatus = pStatus_+    }++-- | The newly created upload.+cursUpload :: Lens' CreateUploadResponse (Maybe Upload)+cursUpload = lens _cursUpload (\ s a -> s{_cursUpload = a});++-- | The response status code.+cursStatus :: Lens' CreateUploadResponse Int+cursStatus = lens _cursStatus (\ s a -> s{_cursStatus = a});
+ gen/Network/AWS/DeviceFarm/GetAccountSettings.hs view
@@ -0,0 +1,114 @@+{-# 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.DeviceFarm.GetAccountSettings+-- 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)+--+-- Returns the number of unmetered iOS and\/or unmetered Android devices+-- that have been purchased by the account.+--+-- /See:/ <http://docs.aws.amazon.com/devicefarm/latest/APIReference/API_GetAccountSettings.html AWS API Reference> for GetAccountSettings.+module Network.AWS.DeviceFarm.GetAccountSettings+    (+    -- * Creating a Request+      getAccountSettings+    , GetAccountSettings++    -- * Destructuring the Response+    , getAccountSettingsResponse+    , GetAccountSettingsResponse+    -- * Response Lenses+    , gasrsAccountSettings+    , gasrsStatus+    ) where++import           Network.AWS.DeviceFarm.Types+import           Network.AWS.DeviceFarm.Types.Product+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- | /See:/ 'getAccountSettings' smart constructor.+data GetAccountSettings =+    GetAccountSettings'+    deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'GetAccountSettings' with the minimum fields required to make a request.+--+getAccountSettings+    :: GetAccountSettings+getAccountSettings = GetAccountSettings'++instance AWSRequest GetAccountSettings where+        type Sv GetAccountSettings = DeviceFarm+        type Rs GetAccountSettings =+             GetAccountSettingsResponse+        request = postJSON+        response+          = receiveJSON+              (\ s h x ->+                 GetAccountSettingsResponse' <$>+                   (x .?> "accountSettings") <*> (pure (fromEnum s)))++instance ToHeaders GetAccountSettings where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("DeviceFarm_20150623.GetAccountSettings" ::+                       ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON GetAccountSettings where+        toJSON = const (Object mempty)++instance ToPath GetAccountSettings where+        toPath = const "/"++instance ToQuery GetAccountSettings where+        toQuery = const mempty++-- | /See:/ 'getAccountSettingsResponse' smart constructor.+data GetAccountSettingsResponse = GetAccountSettingsResponse'+    { _gasrsAccountSettings :: !(Maybe AccountSettings)+    , _gasrsStatus          :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'GetAccountSettingsResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gasrsAccountSettings'+--+-- * 'gasrsStatus'+getAccountSettingsResponse+    :: Int -- ^ 'gasrsStatus'+    -> GetAccountSettingsResponse+getAccountSettingsResponse pStatus_ =+    GetAccountSettingsResponse'+    { _gasrsAccountSettings = Nothing+    , _gasrsStatus = pStatus_+    }++-- | Undocumented member.+gasrsAccountSettings :: Lens' GetAccountSettingsResponse (Maybe AccountSettings)+gasrsAccountSettings = lens _gasrsAccountSettings (\ s a -> s{_gasrsAccountSettings = a});++-- | The response status code.+gasrsStatus :: Lens' GetAccountSettingsResponse Int+gasrsStatus = lens _gasrsStatus (\ s a -> s{_gasrsStatus = a});
+ gen/Network/AWS/DeviceFarm/GetDevice.hs view
@@ -0,0 +1,128 @@+{-# 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.DeviceFarm.GetDevice+-- 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)+--+-- Gets information about a unique device type.+--+-- /See:/ <http://docs.aws.amazon.com/devicefarm/latest/APIReference/API_GetDevice.html AWS API Reference> for GetDevice.+module Network.AWS.DeviceFarm.GetDevice+    (+    -- * Creating a Request+      getDevice+    , GetDevice+    -- * Request Lenses+    , gdArn++    -- * Destructuring the Response+    , getDeviceResponse+    , GetDeviceResponse+    -- * Response Lenses+    , gdrsDevice+    , gdrsStatus+    ) where++import           Network.AWS.DeviceFarm.Types+import           Network.AWS.DeviceFarm.Types.Product+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- | Represents a request to the get device request.+--+-- /See:/ 'getDevice' smart constructor.+newtype GetDevice = GetDevice'+    { _gdArn :: Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'GetDevice' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gdArn'+getDevice+    :: Text -- ^ 'gdArn'+    -> GetDevice+getDevice pArn_ =+    GetDevice'+    { _gdArn = pArn_+    }++-- | The device type\'s ARN.+gdArn :: Lens' GetDevice Text+gdArn = lens _gdArn (\ s a -> s{_gdArn = a});++instance AWSRequest GetDevice where+        type Sv GetDevice = DeviceFarm+        type Rs GetDevice = GetDeviceResponse+        request = postJSON+        response+          = receiveJSON+              (\ s h x ->+                 GetDeviceResponse' <$>+                   (x .?> "device") <*> (pure (fromEnum s)))++instance ToHeaders GetDevice where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("DeviceFarm_20150623.GetDevice" :: ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON GetDevice where+        toJSON GetDevice'{..} = object ["arn" .= _gdArn]++instance ToPath GetDevice where+        toPath = const "/"++instance ToQuery GetDevice where+        toQuery = const mempty++-- | Represents the result of a get device request.+--+-- /See:/ 'getDeviceResponse' smart constructor.+data GetDeviceResponse = GetDeviceResponse'+    { _gdrsDevice :: !(Maybe Device)+    , _gdrsStatus :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'GetDeviceResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gdrsDevice'+--+-- * 'gdrsStatus'+getDeviceResponse+    :: Int -- ^ 'gdrsStatus'+    -> GetDeviceResponse+getDeviceResponse pStatus_ =+    GetDeviceResponse'+    { _gdrsDevice = Nothing+    , _gdrsStatus = pStatus_+    }++-- | Undocumented member.+gdrsDevice :: Lens' GetDeviceResponse (Maybe Device)+gdrsDevice = lens _gdrsDevice (\ s a -> s{_gdrsDevice = a});++-- | The response status code.+gdrsStatus :: Lens' GetDeviceResponse Int+gdrsStatus = lens _gdrsStatus (\ s a -> s{_gdrsStatus = a});
+ gen/Network/AWS/DeviceFarm/GetDevicePool.hs view
@@ -0,0 +1,128 @@+{-# 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.DeviceFarm.GetDevicePool+-- 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)+--+-- Gets information about a device pool.+--+-- /See:/ <http://docs.aws.amazon.com/devicefarm/latest/APIReference/API_GetDevicePool.html AWS API Reference> for GetDevicePool.+module Network.AWS.DeviceFarm.GetDevicePool+    (+    -- * Creating a Request+      getDevicePool+    , GetDevicePool+    -- * Request Lenses+    , gdpArn++    -- * Destructuring the Response+    , getDevicePoolResponse+    , GetDevicePoolResponse+    -- * Response Lenses+    , gdprsDevicePool+    , gdprsStatus+    ) where++import           Network.AWS.DeviceFarm.Types+import           Network.AWS.DeviceFarm.Types.Product+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- | Represents a request to the get device pool operation.+--+-- /See:/ 'getDevicePool' smart constructor.+newtype GetDevicePool = GetDevicePool'+    { _gdpArn :: Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'GetDevicePool' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gdpArn'+getDevicePool+    :: Text -- ^ 'gdpArn'+    -> GetDevicePool+getDevicePool pArn_ =+    GetDevicePool'+    { _gdpArn = pArn_+    }++-- | The device pool\'s ARN.+gdpArn :: Lens' GetDevicePool Text+gdpArn = lens _gdpArn (\ s a -> s{_gdpArn = a});++instance AWSRequest GetDevicePool where+        type Sv GetDevicePool = DeviceFarm+        type Rs GetDevicePool = GetDevicePoolResponse+        request = postJSON+        response+          = receiveJSON+              (\ s h x ->+                 GetDevicePoolResponse' <$>+                   (x .?> "devicePool") <*> (pure (fromEnum s)))++instance ToHeaders GetDevicePool where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("DeviceFarm_20150623.GetDevicePool" :: ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON GetDevicePool where+        toJSON GetDevicePool'{..} = object ["arn" .= _gdpArn]++instance ToPath GetDevicePool where+        toPath = const "/"++instance ToQuery GetDevicePool where+        toQuery = const mempty++-- | Represents the result of a get device pool request.+--+-- /See:/ 'getDevicePoolResponse' smart constructor.+data GetDevicePoolResponse = GetDevicePoolResponse'+    { _gdprsDevicePool :: !(Maybe DevicePool)+    , _gdprsStatus     :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'GetDevicePoolResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gdprsDevicePool'+--+-- * 'gdprsStatus'+getDevicePoolResponse+    :: Int -- ^ 'gdprsStatus'+    -> GetDevicePoolResponse+getDevicePoolResponse pStatus_ =+    GetDevicePoolResponse'+    { _gdprsDevicePool = Nothing+    , _gdprsStatus = pStatus_+    }++-- | Undocumented member.+gdprsDevicePool :: Lens' GetDevicePoolResponse (Maybe DevicePool)+gdprsDevicePool = lens _gdprsDevicePool (\ s a -> s{_gdprsDevicePool = a});++-- | The response status code.+gdprsStatus :: Lens' GetDevicePoolResponse Int+gdprsStatus = lens _gdprsStatus (\ s a -> s{_gdprsStatus = a});
+ gen/Network/AWS/DeviceFarm/GetDevicePoolCompatibility.hs view
@@ -0,0 +1,187 @@+{-# 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.DeviceFarm.GetDevicePoolCompatibility+-- 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)+--+-- Gets information about compatibility with a device pool.+--+-- /See:/ <http://docs.aws.amazon.com/devicefarm/latest/APIReference/API_GetDevicePoolCompatibility.html AWS API Reference> for GetDevicePoolCompatibility.+module Network.AWS.DeviceFarm.GetDevicePoolCompatibility+    (+    -- * Creating a Request+      getDevicePoolCompatibility+    , GetDevicePoolCompatibility+    -- * Request Lenses+    , gdpcTestType+    , gdpcDevicePoolARN+    , gdpcAppARN++    -- * Destructuring the Response+    , getDevicePoolCompatibilityResponse+    , GetDevicePoolCompatibilityResponse+    -- * Response Lenses+    , gdpcrsIncompatibleDevices+    , gdpcrsCompatibleDevices+    , gdpcrsStatus+    ) where++import           Network.AWS.DeviceFarm.Types+import           Network.AWS.DeviceFarm.Types.Product+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- | Represents a request to the get device pool compatibility operation.+--+-- /See:/ 'getDevicePoolCompatibility' smart constructor.+data GetDevicePoolCompatibility = GetDevicePoolCompatibility'+    { _gdpcTestType      :: !(Maybe TestType)+    , _gdpcDevicePoolARN :: !Text+    , _gdpcAppARN        :: !Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'GetDevicePoolCompatibility' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gdpcTestType'+--+-- * 'gdpcDevicePoolARN'+--+-- * 'gdpcAppARN'+getDevicePoolCompatibility+    :: Text -- ^ 'gdpcDevicePoolARN'+    -> Text -- ^ 'gdpcAppARN'+    -> GetDevicePoolCompatibility+getDevicePoolCompatibility pDevicePoolARN_ pAppARN_ =+    GetDevicePoolCompatibility'+    { _gdpcTestType = Nothing+    , _gdpcDevicePoolARN = pDevicePoolARN_+    , _gdpcAppARN = pAppARN_+    }++-- | The test type for the specified device pool.+--+-- Allowed values include the following:+--+-- -   BUILTIN_FUZZ: The built-in fuzz type.+--+-- -   BUILTIN_EXPLORER: For Android, an app explorer that will traverse an+--     Android app, interacting with it and capturing screenshots at the+--     same time.+--+-- -   APPIUM_JAVA_JUNIT: The Appium Java JUnit type.+--+-- -   APPIUM_JAVA_TESTNG: The Appium Java TestNG type.+--+-- -   CALABASH: The Calabash type.+--+-- -   INSTRUMENTATION: The Instrumentation type.+--+-- -   UIAUTOMATION: The uiautomation type.+--+-- -   UIAUTOMATOR: The uiautomator type.+--+-- -   XCTEST: The XCode test type.+--+gdpcTestType :: Lens' GetDevicePoolCompatibility (Maybe TestType)+gdpcTestType = lens _gdpcTestType (\ s a -> s{_gdpcTestType = a});++-- | The device pool\'s ARN.+gdpcDevicePoolARN :: Lens' GetDevicePoolCompatibility Text+gdpcDevicePoolARN = lens _gdpcDevicePoolARN (\ s a -> s{_gdpcDevicePoolARN = a});++-- | The ARN of the app that is associated with the specified device pool.+gdpcAppARN :: Lens' GetDevicePoolCompatibility Text+gdpcAppARN = lens _gdpcAppARN (\ s a -> s{_gdpcAppARN = a});++instance AWSRequest GetDevicePoolCompatibility where+        type Sv GetDevicePoolCompatibility = DeviceFarm+        type Rs GetDevicePoolCompatibility =+             GetDevicePoolCompatibilityResponse+        request = postJSON+        response+          = receiveJSON+              (\ s h x ->+                 GetDevicePoolCompatibilityResponse' <$>+                   (x .?> "incompatibleDevices" .!@ mempty) <*>+                     (x .?> "compatibleDevices" .!@ mempty)+                     <*> (pure (fromEnum s)))++instance ToHeaders GetDevicePoolCompatibility where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("DeviceFarm_20150623.GetDevicePoolCompatibility" ::+                       ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON GetDevicePoolCompatibility where+        toJSON GetDevicePoolCompatibility'{..}+          = object+              ["testType" .= _gdpcTestType,+               "devicePoolArn" .= _gdpcDevicePoolARN,+               "appArn" .= _gdpcAppARN]++instance ToPath GetDevicePoolCompatibility where+        toPath = const "/"++instance ToQuery GetDevicePoolCompatibility where+        toQuery = const mempty++-- | Represents the result of describe device pool compatibility request.+--+-- /See:/ 'getDevicePoolCompatibilityResponse' smart constructor.+data GetDevicePoolCompatibilityResponse = GetDevicePoolCompatibilityResponse'+    { _gdpcrsIncompatibleDevices :: !(Maybe [DevicePoolCompatibilityResult])+    , _gdpcrsCompatibleDevices   :: !(Maybe [DevicePoolCompatibilityResult])+    , _gdpcrsStatus              :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'GetDevicePoolCompatibilityResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gdpcrsIncompatibleDevices'+--+-- * 'gdpcrsCompatibleDevices'+--+-- * 'gdpcrsStatus'+getDevicePoolCompatibilityResponse+    :: Int -- ^ 'gdpcrsStatus'+    -> GetDevicePoolCompatibilityResponse+getDevicePoolCompatibilityResponse pStatus_ =+    GetDevicePoolCompatibilityResponse'+    { _gdpcrsIncompatibleDevices = Nothing+    , _gdpcrsCompatibleDevices = Nothing+    , _gdpcrsStatus = pStatus_+    }++-- | Information about incompatible devices.+gdpcrsIncompatibleDevices :: Lens' GetDevicePoolCompatibilityResponse [DevicePoolCompatibilityResult]+gdpcrsIncompatibleDevices = lens _gdpcrsIncompatibleDevices (\ s a -> s{_gdpcrsIncompatibleDevices = a}) . _Default . _Coerce;++-- | Information about compatible devices.+gdpcrsCompatibleDevices :: Lens' GetDevicePoolCompatibilityResponse [DevicePoolCompatibilityResult]+gdpcrsCompatibleDevices = lens _gdpcrsCompatibleDevices (\ s a -> s{_gdpcrsCompatibleDevices = a}) . _Default . _Coerce;++-- | The response status code.+gdpcrsStatus :: Lens' GetDevicePoolCompatibilityResponse Int+gdpcrsStatus = lens _gdpcrsStatus (\ s a -> s{_gdpcrsStatus = a});
+ gen/Network/AWS/DeviceFarm/GetJob.hs view
@@ -0,0 +1,128 @@+{-# 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.DeviceFarm.GetJob+-- 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)+--+-- Gets information about a job.+--+-- /See:/ <http://docs.aws.amazon.com/devicefarm/latest/APIReference/API_GetJob.html AWS API Reference> for GetJob.+module Network.AWS.DeviceFarm.GetJob+    (+    -- * Creating a Request+      getJob+    , GetJob+    -- * Request Lenses+    , gjArn++    -- * Destructuring the Response+    , getJobResponse+    , GetJobResponse+    -- * Response Lenses+    , gjrsJob+    , gjrsStatus+    ) where++import           Network.AWS.DeviceFarm.Types+import           Network.AWS.DeviceFarm.Types.Product+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- | Represents a request to the get job operation.+--+-- /See:/ 'getJob' smart constructor.+newtype GetJob = GetJob'+    { _gjArn :: Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'GetJob' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gjArn'+getJob+    :: Text -- ^ 'gjArn'+    -> GetJob+getJob pArn_ =+    GetJob'+    { _gjArn = pArn_+    }++-- | The job\'s ARN.+gjArn :: Lens' GetJob Text+gjArn = lens _gjArn (\ s a -> s{_gjArn = a});++instance AWSRequest GetJob where+        type Sv GetJob = DeviceFarm+        type Rs GetJob = GetJobResponse+        request = postJSON+        response+          = receiveJSON+              (\ s h x ->+                 GetJobResponse' <$>+                   (x .?> "job") <*> (pure (fromEnum s)))++instance ToHeaders GetJob where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("DeviceFarm_20150623.GetJob" :: ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON GetJob where+        toJSON GetJob'{..} = object ["arn" .= _gjArn]++instance ToPath GetJob where+        toPath = const "/"++instance ToQuery GetJob where+        toQuery = const mempty++-- | Represents the result of a get job request.+--+-- /See:/ 'getJobResponse' smart constructor.+data GetJobResponse = GetJobResponse'+    { _gjrsJob    :: !(Maybe Job)+    , _gjrsStatus :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'GetJobResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gjrsJob'+--+-- * 'gjrsStatus'+getJobResponse+    :: Int -- ^ 'gjrsStatus'+    -> GetJobResponse+getJobResponse pStatus_ =+    GetJobResponse'+    { _gjrsJob = Nothing+    , _gjrsStatus = pStatus_+    }++-- | Undocumented member.+gjrsJob :: Lens' GetJobResponse (Maybe Job)+gjrsJob = lens _gjrsJob (\ s a -> s{_gjrsJob = a});++-- | The response status code.+gjrsStatus :: Lens' GetJobResponse Int+gjrsStatus = lens _gjrsStatus (\ s a -> s{_gjrsStatus = a});
+ gen/Network/AWS/DeviceFarm/GetProject.hs view
@@ -0,0 +1,128 @@+{-# 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.DeviceFarm.GetProject+-- 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)+--+-- Gets information about a project.+--+-- /See:/ <http://docs.aws.amazon.com/devicefarm/latest/APIReference/API_GetProject.html AWS API Reference> for GetProject.+module Network.AWS.DeviceFarm.GetProject+    (+    -- * Creating a Request+      getProject+    , GetProject+    -- * Request Lenses+    , gpArn++    -- * Destructuring the Response+    , getProjectResponse+    , GetProjectResponse+    -- * Response Lenses+    , gprsProject+    , gprsStatus+    ) where++import           Network.AWS.DeviceFarm.Types+import           Network.AWS.DeviceFarm.Types.Product+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- | Represents a request to the get project operation.+--+-- /See:/ 'getProject' smart constructor.+newtype GetProject = GetProject'+    { _gpArn :: Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'GetProject' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gpArn'+getProject+    :: Text -- ^ 'gpArn'+    -> GetProject+getProject pArn_ =+    GetProject'+    { _gpArn = pArn_+    }++-- | The project\'s ARN.+gpArn :: Lens' GetProject Text+gpArn = lens _gpArn (\ s a -> s{_gpArn = a});++instance AWSRequest GetProject where+        type Sv GetProject = DeviceFarm+        type Rs GetProject = GetProjectResponse+        request = postJSON+        response+          = receiveJSON+              (\ s h x ->+                 GetProjectResponse' <$>+                   (x .?> "project") <*> (pure (fromEnum s)))++instance ToHeaders GetProject where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("DeviceFarm_20150623.GetProject" :: ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON GetProject where+        toJSON GetProject'{..} = object ["arn" .= _gpArn]++instance ToPath GetProject where+        toPath = const "/"++instance ToQuery GetProject where+        toQuery = const mempty++-- | Represents the result of a get project request.+--+-- /See:/ 'getProjectResponse' smart constructor.+data GetProjectResponse = GetProjectResponse'+    { _gprsProject :: !(Maybe Project)+    , _gprsStatus  :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'GetProjectResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gprsProject'+--+-- * 'gprsStatus'+getProjectResponse+    :: Int -- ^ 'gprsStatus'+    -> GetProjectResponse+getProjectResponse pStatus_ =+    GetProjectResponse'+    { _gprsProject = Nothing+    , _gprsStatus = pStatus_+    }++-- | Undocumented member.+gprsProject :: Lens' GetProjectResponse (Maybe Project)+gprsProject = lens _gprsProject (\ s a -> s{_gprsProject = a});++-- | The response status code.+gprsStatus :: Lens' GetProjectResponse Int+gprsStatus = lens _gprsStatus (\ s a -> s{_gprsStatus = a});
+ gen/Network/AWS/DeviceFarm/GetRun.hs view
@@ -0,0 +1,128 @@+{-# 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.DeviceFarm.GetRun+-- 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)+--+-- Gets information about a run.+--+-- /See:/ <http://docs.aws.amazon.com/devicefarm/latest/APIReference/API_GetRun.html AWS API Reference> for GetRun.+module Network.AWS.DeviceFarm.GetRun+    (+    -- * Creating a Request+      getRun+    , GetRun+    -- * Request Lenses+    , grArn++    -- * Destructuring the Response+    , getRunResponse+    , GetRunResponse+    -- * Response Lenses+    , grrsRun+    , grrsStatus+    ) where++import           Network.AWS.DeviceFarm.Types+import           Network.AWS.DeviceFarm.Types.Product+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- | Represents a request to the get run operation.+--+-- /See:/ 'getRun' smart constructor.+newtype GetRun = GetRun'+    { _grArn :: Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'GetRun' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'grArn'+getRun+    :: Text -- ^ 'grArn'+    -> GetRun+getRun pArn_ =+    GetRun'+    { _grArn = pArn_+    }++-- | The run\'s ARN.+grArn :: Lens' GetRun Text+grArn = lens _grArn (\ s a -> s{_grArn = a});++instance AWSRequest GetRun where+        type Sv GetRun = DeviceFarm+        type Rs GetRun = GetRunResponse+        request = postJSON+        response+          = receiveJSON+              (\ s h x ->+                 GetRunResponse' <$>+                   (x .?> "run") <*> (pure (fromEnum s)))++instance ToHeaders GetRun where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("DeviceFarm_20150623.GetRun" :: ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON GetRun where+        toJSON GetRun'{..} = object ["arn" .= _grArn]++instance ToPath GetRun where+        toPath = const "/"++instance ToQuery GetRun where+        toQuery = const mempty++-- | Represents the result of a get run request.+--+-- /See:/ 'getRunResponse' smart constructor.+data GetRunResponse = GetRunResponse'+    { _grrsRun    :: !(Maybe Run)+    , _grrsStatus :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'GetRunResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'grrsRun'+--+-- * 'grrsStatus'+getRunResponse+    :: Int -- ^ 'grrsStatus'+    -> GetRunResponse+getRunResponse pStatus_ =+    GetRunResponse'+    { _grrsRun = Nothing+    , _grrsStatus = pStatus_+    }++-- | Undocumented member.+grrsRun :: Lens' GetRunResponse (Maybe Run)+grrsRun = lens _grrsRun (\ s a -> s{_grrsRun = a});++-- | The response status code.+grrsStatus :: Lens' GetRunResponse Int+grrsStatus = lens _grrsStatus (\ s a -> s{_grrsStatus = a});
+ gen/Network/AWS/DeviceFarm/GetSuite.hs view
@@ -0,0 +1,128 @@+{-# 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.DeviceFarm.GetSuite+-- 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)+--+-- Gets information about a suite.+--+-- /See:/ <http://docs.aws.amazon.com/devicefarm/latest/APIReference/API_GetSuite.html AWS API Reference> for GetSuite.+module Network.AWS.DeviceFarm.GetSuite+    (+    -- * Creating a Request+      getSuite+    , GetSuite+    -- * Request Lenses+    , gsArn++    -- * Destructuring the Response+    , getSuiteResponse+    , GetSuiteResponse+    -- * Response Lenses+    , gsrsSuite+    , gsrsStatus+    ) where++import           Network.AWS.DeviceFarm.Types+import           Network.AWS.DeviceFarm.Types.Product+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- | Represents a request to the get suite operation.+--+-- /See:/ 'getSuite' smart constructor.+newtype GetSuite = GetSuite'+    { _gsArn :: Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'GetSuite' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gsArn'+getSuite+    :: Text -- ^ 'gsArn'+    -> GetSuite+getSuite pArn_ =+    GetSuite'+    { _gsArn = pArn_+    }++-- | The suite\'s ARN.+gsArn :: Lens' GetSuite Text+gsArn = lens _gsArn (\ s a -> s{_gsArn = a});++instance AWSRequest GetSuite where+        type Sv GetSuite = DeviceFarm+        type Rs GetSuite = GetSuiteResponse+        request = postJSON+        response+          = receiveJSON+              (\ s h x ->+                 GetSuiteResponse' <$>+                   (x .?> "suite") <*> (pure (fromEnum s)))++instance ToHeaders GetSuite where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("DeviceFarm_20150623.GetSuite" :: ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON GetSuite where+        toJSON GetSuite'{..} = object ["arn" .= _gsArn]++instance ToPath GetSuite where+        toPath = const "/"++instance ToQuery GetSuite where+        toQuery = const mempty++-- | Represents the result of a get suite request.+--+-- /See:/ 'getSuiteResponse' smart constructor.+data GetSuiteResponse = GetSuiteResponse'+    { _gsrsSuite  :: !(Maybe Suite)+    , _gsrsStatus :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'GetSuiteResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gsrsSuite'+--+-- * 'gsrsStatus'+getSuiteResponse+    :: Int -- ^ 'gsrsStatus'+    -> GetSuiteResponse+getSuiteResponse pStatus_ =+    GetSuiteResponse'+    { _gsrsSuite = Nothing+    , _gsrsStatus = pStatus_+    }++-- | Undocumented member.+gsrsSuite :: Lens' GetSuiteResponse (Maybe Suite)+gsrsSuite = lens _gsrsSuite (\ s a -> s{_gsrsSuite = a});++-- | The response status code.+gsrsStatus :: Lens' GetSuiteResponse Int+gsrsStatus = lens _gsrsStatus (\ s a -> s{_gsrsStatus = a});
+ gen/Network/AWS/DeviceFarm/GetTest.hs view
@@ -0,0 +1,128 @@+{-# 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.DeviceFarm.GetTest+-- 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)+--+-- Gets information about a test.+--+-- /See:/ <http://docs.aws.amazon.com/devicefarm/latest/APIReference/API_GetTest.html AWS API Reference> for GetTest.+module Network.AWS.DeviceFarm.GetTest+    (+    -- * Creating a Request+      getTest+    , GetTest+    -- * Request Lenses+    , gtArn++    -- * Destructuring the Response+    , getTestResponse+    , GetTestResponse+    -- * Response Lenses+    , gtrsTest+    , gtrsStatus+    ) where++import           Network.AWS.DeviceFarm.Types+import           Network.AWS.DeviceFarm.Types.Product+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- | Represents a request to the get test operation.+--+-- /See:/ 'getTest' smart constructor.+newtype GetTest = GetTest'+    { _gtArn :: Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'GetTest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gtArn'+getTest+    :: Text -- ^ 'gtArn'+    -> GetTest+getTest pArn_ =+    GetTest'+    { _gtArn = pArn_+    }++-- | The test\'s ARN.+gtArn :: Lens' GetTest Text+gtArn = lens _gtArn (\ s a -> s{_gtArn = a});++instance AWSRequest GetTest where+        type Sv GetTest = DeviceFarm+        type Rs GetTest = GetTestResponse+        request = postJSON+        response+          = receiveJSON+              (\ s h x ->+                 GetTestResponse' <$>+                   (x .?> "test") <*> (pure (fromEnum s)))++instance ToHeaders GetTest where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("DeviceFarm_20150623.GetTest" :: ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON GetTest where+        toJSON GetTest'{..} = object ["arn" .= _gtArn]++instance ToPath GetTest where+        toPath = const "/"++instance ToQuery GetTest where+        toQuery = const mempty++-- | Represents the result of a get test request.+--+-- /See:/ 'getTestResponse' smart constructor.+data GetTestResponse = GetTestResponse'+    { _gtrsTest   :: !(Maybe Test)+    , _gtrsStatus :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'GetTestResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gtrsTest'+--+-- * 'gtrsStatus'+getTestResponse+    :: Int -- ^ 'gtrsStatus'+    -> GetTestResponse+getTestResponse pStatus_ =+    GetTestResponse'+    { _gtrsTest = Nothing+    , _gtrsStatus = pStatus_+    }++-- | Undocumented member.+gtrsTest :: Lens' GetTestResponse (Maybe Test)+gtrsTest = lens _gtrsTest (\ s a -> s{_gtrsTest = a});++-- | The response status code.+gtrsStatus :: Lens' GetTestResponse Int+gtrsStatus = lens _gtrsStatus (\ s a -> s{_gtrsStatus = a});
+ gen/Network/AWS/DeviceFarm/GetUpload.hs view
@@ -0,0 +1,128 @@+{-# 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.DeviceFarm.GetUpload+-- 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)+--+-- Gets information about an upload.+--+-- /See:/ <http://docs.aws.amazon.com/devicefarm/latest/APIReference/API_GetUpload.html AWS API Reference> for GetUpload.+module Network.AWS.DeviceFarm.GetUpload+    (+    -- * Creating a Request+      getUpload+    , GetUpload+    -- * Request Lenses+    , guArn++    -- * Destructuring the Response+    , getUploadResponse+    , GetUploadResponse+    -- * Response Lenses+    , gursUpload+    , gursStatus+    ) where++import           Network.AWS.DeviceFarm.Types+import           Network.AWS.DeviceFarm.Types.Product+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- | Represents a request to the get upload operation.+--+-- /See:/ 'getUpload' smart constructor.+newtype GetUpload = GetUpload'+    { _guArn :: Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'GetUpload' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'guArn'+getUpload+    :: Text -- ^ 'guArn'+    -> GetUpload+getUpload pArn_ =+    GetUpload'+    { _guArn = pArn_+    }++-- | The upload\'s ARN.+guArn :: Lens' GetUpload Text+guArn = lens _guArn (\ s a -> s{_guArn = a});++instance AWSRequest GetUpload where+        type Sv GetUpload = DeviceFarm+        type Rs GetUpload = GetUploadResponse+        request = postJSON+        response+          = receiveJSON+              (\ s h x ->+                 GetUploadResponse' <$>+                   (x .?> "upload") <*> (pure (fromEnum s)))++instance ToHeaders GetUpload where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("DeviceFarm_20150623.GetUpload" :: ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON GetUpload where+        toJSON GetUpload'{..} = object ["arn" .= _guArn]++instance ToPath GetUpload where+        toPath = const "/"++instance ToQuery GetUpload where+        toQuery = const mempty++-- | Represents the result of a get upload request.+--+-- /See:/ 'getUploadResponse' smart constructor.+data GetUploadResponse = GetUploadResponse'+    { _gursUpload :: !(Maybe Upload)+    , _gursStatus :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'GetUploadResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gursUpload'+--+-- * 'gursStatus'+getUploadResponse+    :: Int -- ^ 'gursStatus'+    -> GetUploadResponse+getUploadResponse pStatus_ =+    GetUploadResponse'+    { _gursUpload = Nothing+    , _gursStatus = pStatus_+    }++-- | Undocumented member.+gursUpload :: Lens' GetUploadResponse (Maybe Upload)+gursUpload = lens _gursUpload (\ s a -> s{_gursUpload = a});++-- | The response status code.+gursStatus :: Lens' GetUploadResponse Int+gursStatus = lens _gursStatus (\ s a -> s{_gursStatus = a});
+ gen/Network/AWS/DeviceFarm/ListArtifacts.hs view
@@ -0,0 +1,171 @@+{-# 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.DeviceFarm.ListArtifacts+-- 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)+--+-- Gets information about artifacts.+--+-- /See:/ <http://docs.aws.amazon.com/devicefarm/latest/APIReference/API_ListArtifacts.html AWS API Reference> for ListArtifacts.+module Network.AWS.DeviceFarm.ListArtifacts+    (+    -- * Creating a Request+      listArtifacts+    , ListArtifacts+    -- * Request Lenses+    , laNextToken+    , laArn+    , laType++    -- * Destructuring the Response+    , listArtifactsResponse+    , ListArtifactsResponse+    -- * Response Lenses+    , larsArtifacts+    , larsNextToken+    , larsStatus+    ) where++import           Network.AWS.DeviceFarm.Types+import           Network.AWS.DeviceFarm.Types.Product+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- | Represents a request to the list artifacts operation.+--+-- /See:/ 'listArtifacts' smart constructor.+data ListArtifacts = ListArtifacts'+    { _laNextToken :: !(Maybe Text)+    , _laArn       :: !Text+    , _laType      :: !ArtifactCategory+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ListArtifacts' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'laNextToken'+--+-- * 'laArn'+--+-- * 'laType'+listArtifacts+    :: Text -- ^ 'laArn'+    -> ArtifactCategory -- ^ 'laType'+    -> ListArtifacts+listArtifacts pArn_ pType_ =+    ListArtifacts'+    { _laNextToken = Nothing+    , _laArn = pArn_+    , _laType = pType_+    }++-- | An identifier that was returned from the previous call to this+-- operation, which can be used to return the next set of items in the+-- list.+laNextToken :: Lens' ListArtifacts (Maybe Text)+laNextToken = lens _laNextToken (\ s a -> s{_laNextToken = a});++-- | The artifacts\' ARNs.+laArn :: Lens' ListArtifacts Text+laArn = lens _laArn (\ s a -> s{_laArn = a});++-- | The artifacts\' type.+--+-- Allowed values include:+--+-- -   FILE: The artifacts are files.+-- -   LOG: The artifacts are logs.+-- -   SCREENSHOT: The artifacts are screenshots.+laType :: Lens' ListArtifacts ArtifactCategory+laType = lens _laType (\ s a -> s{_laType = a});++instance AWSRequest ListArtifacts where+        type Sv ListArtifacts = DeviceFarm+        type Rs ListArtifacts = ListArtifactsResponse+        request = postJSON+        response+          = receiveJSON+              (\ s h x ->+                 ListArtifactsResponse' <$>+                   (x .?> "artifacts" .!@ mempty) <*>+                     (x .?> "nextToken")+                     <*> (pure (fromEnum s)))++instance ToHeaders ListArtifacts where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("DeviceFarm_20150623.ListArtifacts" :: ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON ListArtifacts where+        toJSON ListArtifacts'{..}+          = object+              ["nextToken" .= _laNextToken, "arn" .= _laArn,+               "type" .= _laType]++instance ToPath ListArtifacts where+        toPath = const "/"++instance ToQuery ListArtifacts where+        toQuery = const mempty++-- | Represents the result of a list artifacts operation.+--+-- /See:/ 'listArtifactsResponse' smart constructor.+data ListArtifactsResponse = ListArtifactsResponse'+    { _larsArtifacts :: !(Maybe [Artifact])+    , _larsNextToken :: !(Maybe Text)+    , _larsStatus    :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ListArtifactsResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'larsArtifacts'+--+-- * 'larsNextToken'+--+-- * 'larsStatus'+listArtifactsResponse+    :: Int -- ^ 'larsStatus'+    -> ListArtifactsResponse+listArtifactsResponse pStatus_ =+    ListArtifactsResponse'+    { _larsArtifacts = Nothing+    , _larsNextToken = Nothing+    , _larsStatus = pStatus_+    }++-- | Information about the artifacts.+larsArtifacts :: Lens' ListArtifactsResponse [Artifact]+larsArtifacts = lens _larsArtifacts (\ s a -> s{_larsArtifacts = a}) . _Default . _Coerce;++-- | If the number of items that are returned is significantly large, this is+-- an identifier that is also returned, which can be used in a subsequent+-- call to this operation to return the next set of items in the list.+larsNextToken :: Lens' ListArtifactsResponse (Maybe Text)+larsNextToken = lens _larsNextToken (\ s a -> s{_larsNextToken = a});++-- | The response status code.+larsStatus :: Lens' ListArtifactsResponse Int+larsStatus = lens _larsStatus (\ s a -> s{_larsStatus = a});
+ gen/Network/AWS/DeviceFarm/ListDevicePools.hs view
@@ -0,0 +1,174 @@+{-# 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.DeviceFarm.ListDevicePools+-- 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)+--+-- Gets information about device pools.+--+-- /See:/ <http://docs.aws.amazon.com/devicefarm/latest/APIReference/API_ListDevicePools.html AWS API Reference> for ListDevicePools.+module Network.AWS.DeviceFarm.ListDevicePools+    (+    -- * Creating a Request+      listDevicePools+    , ListDevicePools+    -- * Request Lenses+    , ldpNextToken+    , ldpType+    , ldpArn++    -- * Destructuring the Response+    , listDevicePoolsResponse+    , ListDevicePoolsResponse+    -- * Response Lenses+    , ldprsDevicePools+    , ldprsNextToken+    , ldprsStatus+    ) where++import           Network.AWS.DeviceFarm.Types+import           Network.AWS.DeviceFarm.Types.Product+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- | Represents the result of a list device pools request.+--+-- /See:/ 'listDevicePools' smart constructor.+data ListDevicePools = ListDevicePools'+    { _ldpNextToken :: !(Maybe Text)+    , _ldpType      :: !(Maybe DevicePoolType)+    , _ldpArn       :: !Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ListDevicePools' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ldpNextToken'+--+-- * 'ldpType'+--+-- * 'ldpArn'+listDevicePools+    :: Text -- ^ 'ldpArn'+    -> ListDevicePools+listDevicePools pArn_ =+    ListDevicePools'+    { _ldpNextToken = Nothing+    , _ldpType = Nothing+    , _ldpArn = pArn_+    }++-- | An identifier that was returned from the previous call to this+-- operation, which can be used to return the next set of items in the+-- list.+ldpNextToken :: Lens' ListDevicePools (Maybe Text)+ldpNextToken = lens _ldpNextToken (\ s a -> s{_ldpNextToken = a});++-- | The device pools\' type.+--+-- Allowed values include:+--+-- -   CURATED: A device pool that is created and managed by AWS Device+--     Farm.+--+-- -   PRIVATE: A device pool that is created and managed by the device+--     pool developer.+--+ldpType :: Lens' ListDevicePools (Maybe DevicePoolType)+ldpType = lens _ldpType (\ s a -> s{_ldpType = a});++-- | The project ARN.+ldpArn :: Lens' ListDevicePools Text+ldpArn = lens _ldpArn (\ s a -> s{_ldpArn = a});++instance AWSRequest ListDevicePools where+        type Sv ListDevicePools = DeviceFarm+        type Rs ListDevicePools = ListDevicePoolsResponse+        request = postJSON+        response+          = receiveJSON+              (\ s h x ->+                 ListDevicePoolsResponse' <$>+                   (x .?> "devicePools" .!@ mempty) <*>+                     (x .?> "nextToken")+                     <*> (pure (fromEnum s)))++instance ToHeaders ListDevicePools where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("DeviceFarm_20150623.ListDevicePools" ::+                       ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON ListDevicePools where+        toJSON ListDevicePools'{..}+          = object+              ["nextToken" .= _ldpNextToken, "type" .= _ldpType,+               "arn" .= _ldpArn]++instance ToPath ListDevicePools where+        toPath = const "/"++instance ToQuery ListDevicePools where+        toQuery = const mempty++-- | Represents the result of a list device pools request.+--+-- /See:/ 'listDevicePoolsResponse' smart constructor.+data ListDevicePoolsResponse = ListDevicePoolsResponse'+    { _ldprsDevicePools :: !(Maybe [DevicePool])+    , _ldprsNextToken   :: !(Maybe Text)+    , _ldprsStatus      :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ListDevicePoolsResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ldprsDevicePools'+--+-- * 'ldprsNextToken'+--+-- * 'ldprsStatus'+listDevicePoolsResponse+    :: Int -- ^ 'ldprsStatus'+    -> ListDevicePoolsResponse+listDevicePoolsResponse pStatus_ =+    ListDevicePoolsResponse'+    { _ldprsDevicePools = Nothing+    , _ldprsNextToken = Nothing+    , _ldprsStatus = pStatus_+    }++-- | Information about the device pools.+ldprsDevicePools :: Lens' ListDevicePoolsResponse [DevicePool]+ldprsDevicePools = lens _ldprsDevicePools (\ s a -> s{_ldprsDevicePools = a}) . _Default . _Coerce;++-- | If the number of items that are returned is significantly large, this is+-- an identifier that is also returned, which can be used in a subsequent+-- call to this operation to return the next set of items in the list.+ldprsNextToken :: Lens' ListDevicePoolsResponse (Maybe Text)+ldprsNextToken = lens _ldprsNextToken (\ s a -> s{_ldprsNextToken = a});++-- | The response status code.+ldprsStatus :: Lens' ListDevicePoolsResponse Int+ldprsStatus = lens _ldprsStatus (\ s a -> s{_ldprsStatus = a});
+ gen/Network/AWS/DeviceFarm/ListDevices.hs view
@@ -0,0 +1,152 @@+{-# 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.DeviceFarm.ListDevices+-- 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)+--+-- Gets information about unique device types.+--+-- /See:/ <http://docs.aws.amazon.com/devicefarm/latest/APIReference/API_ListDevices.html AWS API Reference> for ListDevices.+module Network.AWS.DeviceFarm.ListDevices+    (+    -- * Creating a Request+      listDevices+    , ListDevices+    -- * Request Lenses+    , ldArn+    , ldNextToken++    -- * Destructuring the Response+    , listDevicesResponse+    , ListDevicesResponse+    -- * Response Lenses+    , ldrsNextToken+    , ldrsDevices+    , ldrsStatus+    ) where++import           Network.AWS.DeviceFarm.Types+import           Network.AWS.DeviceFarm.Types.Product+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- | Represents the result of a list devices request.+--+-- /See:/ 'listDevices' smart constructor.+data ListDevices = ListDevices'+    { _ldArn       :: !(Maybe Text)+    , _ldNextToken :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ListDevices' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ldArn'+--+-- * 'ldNextToken'+listDevices+    :: ListDevices+listDevices =+    ListDevices'+    { _ldArn = Nothing+    , _ldNextToken = Nothing+    }++-- | The device types\' ARNs.+ldArn :: Lens' ListDevices (Maybe Text)+ldArn = lens _ldArn (\ s a -> s{_ldArn = a});++-- | An identifier that was returned from the previous call to this+-- operation, which can be used to return the next set of items in the+-- list.+ldNextToken :: Lens' ListDevices (Maybe Text)+ldNextToken = lens _ldNextToken (\ s a -> s{_ldNextToken = a});++instance AWSRequest ListDevices where+        type Sv ListDevices = DeviceFarm+        type Rs ListDevices = ListDevicesResponse+        request = postJSON+        response+          = receiveJSON+              (\ s h x ->+                 ListDevicesResponse' <$>+                   (x .?> "nextToken") <*> (x .?> "devices" .!@ mempty)+                     <*> (pure (fromEnum s)))++instance ToHeaders ListDevices where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("DeviceFarm_20150623.ListDevices" :: ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON ListDevices where+        toJSON ListDevices'{..}+          = object+              ["arn" .= _ldArn, "nextToken" .= _ldNextToken]++instance ToPath ListDevices where+        toPath = const "/"++instance ToQuery ListDevices where+        toQuery = const mempty++-- | Represents the result of a list devices operation.+--+-- /See:/ 'listDevicesResponse' smart constructor.+data ListDevicesResponse = ListDevicesResponse'+    { _ldrsNextToken :: !(Maybe Text)+    , _ldrsDevices   :: !(Maybe [Device])+    , _ldrsStatus    :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ListDevicesResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ldrsNextToken'+--+-- * 'ldrsDevices'+--+-- * 'ldrsStatus'+listDevicesResponse+    :: Int -- ^ 'ldrsStatus'+    -> ListDevicesResponse+listDevicesResponse pStatus_ =+    ListDevicesResponse'+    { _ldrsNextToken = Nothing+    , _ldrsDevices = Nothing+    , _ldrsStatus = pStatus_+    }++-- | If the number of items that are returned is significantly large, this is+-- an identifier that is also returned, which can be used in a subsequent+-- call to this operation to return the next set of items in the list.+ldrsNextToken :: Lens' ListDevicesResponse (Maybe Text)+ldrsNextToken = lens _ldrsNextToken (\ s a -> s{_ldrsNextToken = a});++-- | Information about the devices.+ldrsDevices :: Lens' ListDevicesResponse [Device]+ldrsDevices = lens _ldrsDevices (\ s a -> s{_ldrsDevices = a}) . _Default . _Coerce;++-- | The response status code.+ldrsStatus :: Lens' ListDevicesResponse Int+ldrsStatus = lens _ldrsStatus (\ s a -> s{_ldrsStatus = a});
+ gen/Network/AWS/DeviceFarm/ListJobs.hs view
@@ -0,0 +1,153 @@+{-# 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.DeviceFarm.ListJobs+-- 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)+--+-- Gets information about jobs.+--+-- /See:/ <http://docs.aws.amazon.com/devicefarm/latest/APIReference/API_ListJobs.html AWS API Reference> for ListJobs.+module Network.AWS.DeviceFarm.ListJobs+    (+    -- * Creating a Request+      listJobs+    , ListJobs+    -- * Request Lenses+    , ljNextToken+    , ljArn++    -- * Destructuring the Response+    , listJobsResponse+    , ListJobsResponse+    -- * Response Lenses+    , ljrsJobs+    , ljrsNextToken+    , ljrsStatus+    ) where++import           Network.AWS.DeviceFarm.Types+import           Network.AWS.DeviceFarm.Types.Product+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- | Represents a request to the list jobs operation.+--+-- /See:/ 'listJobs' smart constructor.+data ListJobs = ListJobs'+    { _ljNextToken :: !(Maybe Text)+    , _ljArn       :: !Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ListJobs' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ljNextToken'+--+-- * 'ljArn'+listJobs+    :: Text -- ^ 'ljArn'+    -> ListJobs+listJobs pArn_ =+    ListJobs'+    { _ljNextToken = Nothing+    , _ljArn = pArn_+    }++-- | An identifier that was returned from the previous call to this+-- operation, which can be used to return the next set of items in the+-- list.+ljNextToken :: Lens' ListJobs (Maybe Text)+ljNextToken = lens _ljNextToken (\ s a -> s{_ljNextToken = a});++-- | The jobs\' ARNs.+ljArn :: Lens' ListJobs Text+ljArn = lens _ljArn (\ s a -> s{_ljArn = a});++instance AWSRequest ListJobs where+        type Sv ListJobs = DeviceFarm+        type Rs ListJobs = ListJobsResponse+        request = postJSON+        response+          = receiveJSON+              (\ s h x ->+                 ListJobsResponse' <$>+                   (x .?> "jobs" .!@ mempty) <*> (x .?> "nextToken") <*>+                     (pure (fromEnum s)))++instance ToHeaders ListJobs where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("DeviceFarm_20150623.ListJobs" :: ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON ListJobs where+        toJSON ListJobs'{..}+          = object+              ["nextToken" .= _ljNextToken, "arn" .= _ljArn]++instance ToPath ListJobs where+        toPath = const "/"++instance ToQuery ListJobs where+        toQuery = const mempty++-- | Represents the result of a list jobs request.+--+-- /See:/ 'listJobsResponse' smart constructor.+data ListJobsResponse = ListJobsResponse'+    { _ljrsJobs      :: !(Maybe [Job])+    , _ljrsNextToken :: !(Maybe Text)+    , _ljrsStatus    :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ListJobsResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ljrsJobs'+--+-- * 'ljrsNextToken'+--+-- * 'ljrsStatus'+listJobsResponse+    :: Int -- ^ 'ljrsStatus'+    -> ListJobsResponse+listJobsResponse pStatus_ =+    ListJobsResponse'+    { _ljrsJobs = Nothing+    , _ljrsNextToken = Nothing+    , _ljrsStatus = pStatus_+    }++-- | Information about the jobs.+ljrsJobs :: Lens' ListJobsResponse [Job]+ljrsJobs = lens _ljrsJobs (\ s a -> s{_ljrsJobs = a}) . _Default . _Coerce;++-- | If the number of items that are returned is significantly large, this is+-- an identifier that is also returned, which can be used in a subsequent+-- call to this operation to return the next set of items in the list.+ljrsNextToken :: Lens' ListJobsResponse (Maybe Text)+ljrsNextToken = lens _ljrsNextToken (\ s a -> s{_ljrsNextToken = a});++-- | The response status code.+ljrsStatus :: Lens' ListJobsResponse Int+ljrsStatus = lens _ljrsStatus (\ s a -> s{_ljrsStatus = a});
+ gen/Network/AWS/DeviceFarm/ListProjects.hs view
@@ -0,0 +1,152 @@+{-# 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.DeviceFarm.ListProjects+-- 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)+--+-- Gets information about projects.+--+-- /See:/ <http://docs.aws.amazon.com/devicefarm/latest/APIReference/API_ListProjects.html AWS API Reference> for ListProjects.+module Network.AWS.DeviceFarm.ListProjects+    (+    -- * Creating a Request+      listProjects+    , ListProjects+    -- * Request Lenses+    , lpArn+    , lpNextToken++    -- * Destructuring the Response+    , listProjectsResponse+    , ListProjectsResponse+    -- * Response Lenses+    , lprsNextToken+    , lprsProjects+    , lprsStatus+    ) where++import           Network.AWS.DeviceFarm.Types+import           Network.AWS.DeviceFarm.Types.Product+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- | Represents a request to the list projects operation.+--+-- /See:/ 'listProjects' smart constructor.+data ListProjects = ListProjects'+    { _lpArn       :: !(Maybe Text)+    , _lpNextToken :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ListProjects' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lpArn'+--+-- * 'lpNextToken'+listProjects+    :: ListProjects+listProjects =+    ListProjects'+    { _lpArn = Nothing+    , _lpNextToken = Nothing+    }++-- | The projects\' ARNs.+lpArn :: Lens' ListProjects (Maybe Text)+lpArn = lens _lpArn (\ s a -> s{_lpArn = a});++-- | An identifier that was returned from the previous call to this+-- operation, which can be used to return the next set of items in the+-- list.+lpNextToken :: Lens' ListProjects (Maybe Text)+lpNextToken = lens _lpNextToken (\ s a -> s{_lpNextToken = a});++instance AWSRequest ListProjects where+        type Sv ListProjects = DeviceFarm+        type Rs ListProjects = ListProjectsResponse+        request = postJSON+        response+          = receiveJSON+              (\ s h x ->+                 ListProjectsResponse' <$>+                   (x .?> "nextToken") <*> (x .?> "projects" .!@ mempty)+                     <*> (pure (fromEnum s)))++instance ToHeaders ListProjects where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("DeviceFarm_20150623.ListProjects" :: ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON ListProjects where+        toJSON ListProjects'{..}+          = object+              ["arn" .= _lpArn, "nextToken" .= _lpNextToken]++instance ToPath ListProjects where+        toPath = const "/"++instance ToQuery ListProjects where+        toQuery = const mempty++-- | Represents the result of a list projects request.+--+-- /See:/ 'listProjectsResponse' smart constructor.+data ListProjectsResponse = ListProjectsResponse'+    { _lprsNextToken :: !(Maybe Text)+    , _lprsProjects  :: !(Maybe [Project])+    , _lprsStatus    :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ListProjectsResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lprsNextToken'+--+-- * 'lprsProjects'+--+-- * 'lprsStatus'+listProjectsResponse+    :: Int -- ^ 'lprsStatus'+    -> ListProjectsResponse+listProjectsResponse pStatus_ =+    ListProjectsResponse'+    { _lprsNextToken = Nothing+    , _lprsProjects = Nothing+    , _lprsStatus = pStatus_+    }++-- | If the number of items that are returned is significantly large, this is+-- an identifier that is also returned, which can be used in a subsequent+-- call to this operation to return the next set of items in the list.+lprsNextToken :: Lens' ListProjectsResponse (Maybe Text)+lprsNextToken = lens _lprsNextToken (\ s a -> s{_lprsNextToken = a});++-- | Information about the projects.+lprsProjects :: Lens' ListProjectsResponse [Project]+lprsProjects = lens _lprsProjects (\ s a -> s{_lprsProjects = a}) . _Default . _Coerce;++-- | The response status code.+lprsStatus :: Lens' ListProjectsResponse Int+lprsStatus = lens _lprsStatus (\ s a -> s{_lprsStatus = a});
+ gen/Network/AWS/DeviceFarm/ListRuns.hs view
@@ -0,0 +1,153 @@+{-# 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.DeviceFarm.ListRuns+-- 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)+--+-- Gets information about runs.+--+-- /See:/ <http://docs.aws.amazon.com/devicefarm/latest/APIReference/API_ListRuns.html AWS API Reference> for ListRuns.+module Network.AWS.DeviceFarm.ListRuns+    (+    -- * Creating a Request+      listRuns+    , ListRuns+    -- * Request Lenses+    , lrNextToken+    , lrArn++    -- * Destructuring the Response+    , listRunsResponse+    , ListRunsResponse+    -- * Response Lenses+    , lrrsRuns+    , lrrsNextToken+    , lrrsStatus+    ) where++import           Network.AWS.DeviceFarm.Types+import           Network.AWS.DeviceFarm.Types.Product+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- | Represents a request to the list runs operation.+--+-- /See:/ 'listRuns' smart constructor.+data ListRuns = ListRuns'+    { _lrNextToken :: !(Maybe Text)+    , _lrArn       :: !Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ListRuns' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lrNextToken'+--+-- * 'lrArn'+listRuns+    :: Text -- ^ 'lrArn'+    -> ListRuns+listRuns pArn_ =+    ListRuns'+    { _lrNextToken = Nothing+    , _lrArn = pArn_+    }++-- | An identifier that was returned from the previous call to this+-- operation, which can be used to return the next set of items in the+-- list.+lrNextToken :: Lens' ListRuns (Maybe Text)+lrNextToken = lens _lrNextToken (\ s a -> s{_lrNextToken = a});++-- | The runs\' ARNs.+lrArn :: Lens' ListRuns Text+lrArn = lens _lrArn (\ s a -> s{_lrArn = a});++instance AWSRequest ListRuns where+        type Sv ListRuns = DeviceFarm+        type Rs ListRuns = ListRunsResponse+        request = postJSON+        response+          = receiveJSON+              (\ s h x ->+                 ListRunsResponse' <$>+                   (x .?> "runs" .!@ mempty) <*> (x .?> "nextToken") <*>+                     (pure (fromEnum s)))++instance ToHeaders ListRuns where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("DeviceFarm_20150623.ListRuns" :: ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON ListRuns where+        toJSON ListRuns'{..}+          = object+              ["nextToken" .= _lrNextToken, "arn" .= _lrArn]++instance ToPath ListRuns where+        toPath = const "/"++instance ToQuery ListRuns where+        toQuery = const mempty++-- | Represents the result of a list runs request.+--+-- /See:/ 'listRunsResponse' smart constructor.+data ListRunsResponse = ListRunsResponse'+    { _lrrsRuns      :: !(Maybe [Run])+    , _lrrsNextToken :: !(Maybe Text)+    , _lrrsStatus    :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ListRunsResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lrrsRuns'+--+-- * 'lrrsNextToken'+--+-- * 'lrrsStatus'+listRunsResponse+    :: Int -- ^ 'lrrsStatus'+    -> ListRunsResponse+listRunsResponse pStatus_ =+    ListRunsResponse'+    { _lrrsRuns = Nothing+    , _lrrsNextToken = Nothing+    , _lrrsStatus = pStatus_+    }++-- | Information about the runs.+lrrsRuns :: Lens' ListRunsResponse [Run]+lrrsRuns = lens _lrrsRuns (\ s a -> s{_lrrsRuns = a}) . _Default . _Coerce;++-- | If the number of items that are returned is significantly large, this is+-- an identifier that is also returned, which can be used in a subsequent+-- call to this operation to return the next set of items in the list.+lrrsNextToken :: Lens' ListRunsResponse (Maybe Text)+lrrsNextToken = lens _lrrsNextToken (\ s a -> s{_lrrsNextToken = a});++-- | The response status code.+lrrsStatus :: Lens' ListRunsResponse Int+lrrsStatus = lens _lrrsStatus (\ s a -> s{_lrrsStatus = a});
+ gen/Network/AWS/DeviceFarm/ListSamples.hs view
@@ -0,0 +1,153 @@+{-# 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.DeviceFarm.ListSamples+-- 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)+--+-- Gets information about samples.+--+-- /See:/ <http://docs.aws.amazon.com/devicefarm/latest/APIReference/API_ListSamples.html AWS API Reference> for ListSamples.+module Network.AWS.DeviceFarm.ListSamples+    (+    -- * Creating a Request+      listSamples+    , ListSamples+    -- * Request Lenses+    , lsNextToken+    , lsArn++    -- * Destructuring the Response+    , listSamplesResponse+    , ListSamplesResponse+    -- * Response Lenses+    , lsrsNextToken+    , lsrsSamples+    , lsrsStatus+    ) where++import           Network.AWS.DeviceFarm.Types+import           Network.AWS.DeviceFarm.Types.Product+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- | Represents a request to the list samples operation.+--+-- /See:/ 'listSamples' smart constructor.+data ListSamples = ListSamples'+    { _lsNextToken :: !(Maybe Text)+    , _lsArn       :: !Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ListSamples' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lsNextToken'+--+-- * 'lsArn'+listSamples+    :: Text -- ^ 'lsArn'+    -> ListSamples+listSamples pArn_ =+    ListSamples'+    { _lsNextToken = Nothing+    , _lsArn = pArn_+    }++-- | An identifier that was returned from the previous call to this+-- operation, which can be used to return the next set of items in the+-- list.+lsNextToken :: Lens' ListSamples (Maybe Text)+lsNextToken = lens _lsNextToken (\ s a -> s{_lsNextToken = a});++-- | The samples\' ARNs.+lsArn :: Lens' ListSamples Text+lsArn = lens _lsArn (\ s a -> s{_lsArn = a});++instance AWSRequest ListSamples where+        type Sv ListSamples = DeviceFarm+        type Rs ListSamples = ListSamplesResponse+        request = postJSON+        response+          = receiveJSON+              (\ s h x ->+                 ListSamplesResponse' <$>+                   (x .?> "nextToken") <*> (x .?> "samples" .!@ mempty)+                     <*> (pure (fromEnum s)))++instance ToHeaders ListSamples where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("DeviceFarm_20150623.ListSamples" :: ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON ListSamples where+        toJSON ListSamples'{..}+          = object+              ["nextToken" .= _lsNextToken, "arn" .= _lsArn]++instance ToPath ListSamples where+        toPath = const "/"++instance ToQuery ListSamples where+        toQuery = const mempty++-- | Represents the result of a list samples request.+--+-- /See:/ 'listSamplesResponse' smart constructor.+data ListSamplesResponse = ListSamplesResponse'+    { _lsrsNextToken :: !(Maybe Text)+    , _lsrsSamples   :: !(Maybe [Sample])+    , _lsrsStatus    :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ListSamplesResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lsrsNextToken'+--+-- * 'lsrsSamples'+--+-- * 'lsrsStatus'+listSamplesResponse+    :: Int -- ^ 'lsrsStatus'+    -> ListSamplesResponse+listSamplesResponse pStatus_ =+    ListSamplesResponse'+    { _lsrsNextToken = Nothing+    , _lsrsSamples = Nothing+    , _lsrsStatus = pStatus_+    }++-- | If the number of items that are returned is significantly large, this is+-- an identifier that is also returned, which can be used in a subsequent+-- call to this operation to return the next set of items in the list.+lsrsNextToken :: Lens' ListSamplesResponse (Maybe Text)+lsrsNextToken = lens _lsrsNextToken (\ s a -> s{_lsrsNextToken = a});++-- | Information about the samples.+lsrsSamples :: Lens' ListSamplesResponse [Sample]+lsrsSamples = lens _lsrsSamples (\ s a -> s{_lsrsSamples = a}) . _Default . _Coerce;++-- | The response status code.+lsrsStatus :: Lens' ListSamplesResponse Int+lsrsStatus = lens _lsrsStatus (\ s a -> s{_lsrsStatus = a});
+ gen/Network/AWS/DeviceFarm/ListSuites.hs view
@@ -0,0 +1,152 @@+{-# 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.DeviceFarm.ListSuites+-- 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)+--+-- Gets information about suites.+--+-- /See:/ <http://docs.aws.amazon.com/devicefarm/latest/APIReference/API_ListSuites.html AWS API Reference> for ListSuites.+module Network.AWS.DeviceFarm.ListSuites+    (+    -- * Creating a Request+      listSuites+    , ListSuites+    -- * Request Lenses+    , lNextToken+    , lArn++    -- * Destructuring the Response+    , listSuitesResponse+    , ListSuitesResponse+    -- * Response Lenses+    , lrsNextToken+    , lrsSuites+    , lrsStatus+    ) where++import           Network.AWS.DeviceFarm.Types+import           Network.AWS.DeviceFarm.Types.Product+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- | Represents a request to the list suites operation.+--+-- /See:/ 'listSuites' smart constructor.+data ListSuites = ListSuites'+    { _lNextToken :: !(Maybe Text)+    , _lArn       :: !Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ListSuites' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lNextToken'+--+-- * 'lArn'+listSuites+    :: Text -- ^ 'lArn'+    -> ListSuites+listSuites pArn_ =+    ListSuites'+    { _lNextToken = Nothing+    , _lArn = pArn_+    }++-- | An identifier that was returned from the previous call to this+-- operation, which can be used to return the next set of items in the+-- list.+lNextToken :: Lens' ListSuites (Maybe Text)+lNextToken = lens _lNextToken (\ s a -> s{_lNextToken = a});++-- | The suites\' ARNs.+lArn :: Lens' ListSuites Text+lArn = lens _lArn (\ s a -> s{_lArn = a});++instance AWSRequest ListSuites where+        type Sv ListSuites = DeviceFarm+        type Rs ListSuites = ListSuitesResponse+        request = postJSON+        response+          = receiveJSON+              (\ s h x ->+                 ListSuitesResponse' <$>+                   (x .?> "nextToken") <*> (x .?> "suites" .!@ mempty)+                     <*> (pure (fromEnum s)))++instance ToHeaders ListSuites where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("DeviceFarm_20150623.ListSuites" :: ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON ListSuites where+        toJSON ListSuites'{..}+          = object ["nextToken" .= _lNextToken, "arn" .= _lArn]++instance ToPath ListSuites where+        toPath = const "/"++instance ToQuery ListSuites where+        toQuery = const mempty++-- | Represents the result of a list suites request.+--+-- /See:/ 'listSuitesResponse' smart constructor.+data ListSuitesResponse = ListSuitesResponse'+    { _lrsNextToken :: !(Maybe Text)+    , _lrsSuites    :: !(Maybe [Suite])+    , _lrsStatus    :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ListSuitesResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lrsNextToken'+--+-- * 'lrsSuites'+--+-- * 'lrsStatus'+listSuitesResponse+    :: Int -- ^ 'lrsStatus'+    -> ListSuitesResponse+listSuitesResponse pStatus_ =+    ListSuitesResponse'+    { _lrsNextToken = Nothing+    , _lrsSuites = Nothing+    , _lrsStatus = pStatus_+    }++-- | If the number of items that are returned is significantly large, this is+-- an identifier that is also returned, which can be used in a subsequent+-- call to this operation to return the next set of items in the list.+lrsNextToken :: Lens' ListSuitesResponse (Maybe Text)+lrsNextToken = lens _lrsNextToken (\ s a -> s{_lrsNextToken = a});++-- | Information about the suites.+lrsSuites :: Lens' ListSuitesResponse [Suite]+lrsSuites = lens _lrsSuites (\ s a -> s{_lrsSuites = a}) . _Default . _Coerce;++-- | The response status code.+lrsStatus :: Lens' ListSuitesResponse Int+lrsStatus = lens _lrsStatus (\ s a -> s{_lrsStatus = a});
+ gen/Network/AWS/DeviceFarm/ListTests.hs view
@@ -0,0 +1,153 @@+{-# 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.DeviceFarm.ListTests+-- 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)+--+-- Gets information about tests.+--+-- /See:/ <http://docs.aws.amazon.com/devicefarm/latest/APIReference/API_ListTests.html AWS API Reference> for ListTests.+module Network.AWS.DeviceFarm.ListTests+    (+    -- * Creating a Request+      listTests+    , ListTests+    -- * Request Lenses+    , ltNextToken+    , ltArn++    -- * Destructuring the Response+    , listTestsResponse+    , ListTestsResponse+    -- * Response Lenses+    , ltrsTests+    , ltrsNextToken+    , ltrsStatus+    ) where++import           Network.AWS.DeviceFarm.Types+import           Network.AWS.DeviceFarm.Types.Product+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- | Represents a request to the list tests operation.+--+-- /See:/ 'listTests' smart constructor.+data ListTests = ListTests'+    { _ltNextToken :: !(Maybe Text)+    , _ltArn       :: !Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ListTests' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ltNextToken'+--+-- * 'ltArn'+listTests+    :: Text -- ^ 'ltArn'+    -> ListTests+listTests pArn_ =+    ListTests'+    { _ltNextToken = Nothing+    , _ltArn = pArn_+    }++-- | An identifier that was returned from the previous call to this+-- operation, which can be used to return the next set of items in the+-- list.+ltNextToken :: Lens' ListTests (Maybe Text)+ltNextToken = lens _ltNextToken (\ s a -> s{_ltNextToken = a});++-- | The tests\' ARNs.+ltArn :: Lens' ListTests Text+ltArn = lens _ltArn (\ s a -> s{_ltArn = a});++instance AWSRequest ListTests where+        type Sv ListTests = DeviceFarm+        type Rs ListTests = ListTestsResponse+        request = postJSON+        response+          = receiveJSON+              (\ s h x ->+                 ListTestsResponse' <$>+                   (x .?> "tests" .!@ mempty) <*> (x .?> "nextToken")+                     <*> (pure (fromEnum s)))++instance ToHeaders ListTests where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("DeviceFarm_20150623.ListTests" :: ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON ListTests where+        toJSON ListTests'{..}+          = object+              ["nextToken" .= _ltNextToken, "arn" .= _ltArn]++instance ToPath ListTests where+        toPath = const "/"++instance ToQuery ListTests where+        toQuery = const mempty++-- | Represents the result of a list tests request.+--+-- /See:/ 'listTestsResponse' smart constructor.+data ListTestsResponse = ListTestsResponse'+    { _ltrsTests     :: !(Maybe [Test])+    , _ltrsNextToken :: !(Maybe Text)+    , _ltrsStatus    :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ListTestsResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ltrsTests'+--+-- * 'ltrsNextToken'+--+-- * 'ltrsStatus'+listTestsResponse+    :: Int -- ^ 'ltrsStatus'+    -> ListTestsResponse+listTestsResponse pStatus_ =+    ListTestsResponse'+    { _ltrsTests = Nothing+    , _ltrsNextToken = Nothing+    , _ltrsStatus = pStatus_+    }++-- | Information about the tests.+ltrsTests :: Lens' ListTestsResponse [Test]+ltrsTests = lens _ltrsTests (\ s a -> s{_ltrsTests = a}) . _Default . _Coerce;++-- | If the number of items that are returned is significantly large, this is+-- an identifier that is also returned, which can be used in a subsequent+-- call to this operation to return the next set of items in the list.+ltrsNextToken :: Lens' ListTestsResponse (Maybe Text)+ltrsNextToken = lens _ltrsNextToken (\ s a -> s{_ltrsNextToken = a});++-- | The response status code.+ltrsStatus :: Lens' ListTestsResponse Int+ltrsStatus = lens _ltrsStatus (\ s a -> s{_ltrsStatus = a});
+ gen/Network/AWS/DeviceFarm/ListUniqueProblems.hs view
@@ -0,0 +1,173 @@+{-# 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.DeviceFarm.ListUniqueProblems+-- 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)+--+-- Gets information about unique problems.+--+-- /See:/ <http://docs.aws.amazon.com/devicefarm/latest/APIReference/API_ListUniqueProblems.html AWS API Reference> for ListUniqueProblems.+module Network.AWS.DeviceFarm.ListUniqueProblems+    (+    -- * Creating a Request+      listUniqueProblems+    , ListUniqueProblems+    -- * Request Lenses+    , lupNextToken+    , lupArn++    -- * Destructuring the Response+    , listUniqueProblemsResponse+    , ListUniqueProblemsResponse+    -- * Response Lenses+    , luprsNextToken+    , luprsUniqueProblems+    , luprsStatus+    ) where++import           Network.AWS.DeviceFarm.Types+import           Network.AWS.DeviceFarm.Types.Product+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- | Represents a request to the list unique problems operation.+--+-- /See:/ 'listUniqueProblems' smart constructor.+data ListUniqueProblems = ListUniqueProblems'+    { _lupNextToken :: !(Maybe Text)+    , _lupArn       :: !Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ListUniqueProblems' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lupNextToken'+--+-- * 'lupArn'+listUniqueProblems+    :: Text -- ^ 'lupArn'+    -> ListUniqueProblems+listUniqueProblems pArn_ =+    ListUniqueProblems'+    { _lupNextToken = Nothing+    , _lupArn = pArn_+    }++-- | An identifier that was returned from the previous call to this+-- operation, which can be used to return the next set of items in the+-- list.+lupNextToken :: Lens' ListUniqueProblems (Maybe Text)+lupNextToken = lens _lupNextToken (\ s a -> s{_lupNextToken = a});++-- | The unique problems\' ARNs.+lupArn :: Lens' ListUniqueProblems Text+lupArn = lens _lupArn (\ s a -> s{_lupArn = a});++instance AWSRequest ListUniqueProblems where+        type Sv ListUniqueProblems = DeviceFarm+        type Rs ListUniqueProblems =+             ListUniqueProblemsResponse+        request = postJSON+        response+          = receiveJSON+              (\ s h x ->+                 ListUniqueProblemsResponse' <$>+                   (x .?> "nextToken") <*>+                     (x .?> "uniqueProblems" .!@ mempty)+                     <*> (pure (fromEnum s)))++instance ToHeaders ListUniqueProblems where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("DeviceFarm_20150623.ListUniqueProblems" ::+                       ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON ListUniqueProblems where+        toJSON ListUniqueProblems'{..}+          = object+              ["nextToken" .= _lupNextToken, "arn" .= _lupArn]++instance ToPath ListUniqueProblems where+        toPath = const "/"++instance ToQuery ListUniqueProblems where+        toQuery = const mempty++-- | Represents the result of a list unique problems request.+--+-- /See:/ 'listUniqueProblemsResponse' smart constructor.+data ListUniqueProblemsResponse = ListUniqueProblemsResponse'+    { _luprsNextToken      :: !(Maybe Text)+    , _luprsUniqueProblems :: !(Maybe (Map ExecutionResult [UniqueProblem]))+    , _luprsStatus         :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ListUniqueProblemsResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'luprsNextToken'+--+-- * 'luprsUniqueProblems'+--+-- * 'luprsStatus'+listUniqueProblemsResponse+    :: Int -- ^ 'luprsStatus'+    -> ListUniqueProblemsResponse+listUniqueProblemsResponse pStatus_ =+    ListUniqueProblemsResponse'+    { _luprsNextToken = Nothing+    , _luprsUniqueProblems = Nothing+    , _luprsStatus = pStatus_+    }++-- | If the number of items that are returned is significantly large, this is+-- an identifier that is also returned, which can be used in a subsequent+-- call to this operation to return the next set of items in the list.+luprsNextToken :: Lens' ListUniqueProblemsResponse (Maybe Text)+luprsNextToken = lens _luprsNextToken (\ s a -> s{_luprsNextToken = a});++-- | Information about the unique problems.+--+-- Allowed values include:+--+-- -   ERRORED: An error condition.+--+-- -   FAILED: A failed condition.+--+-- -   SKIPPED: A skipped condition.+--+-- -   STOPPED: A stopped condition.+--+-- -   PASSED: A passing condition.+--+-- -   PENDING: A pending condition.+--+-- -   WARNED: A warning condition.+--+luprsUniqueProblems :: Lens' ListUniqueProblemsResponse (HashMap ExecutionResult [UniqueProblem])+luprsUniqueProblems = lens _luprsUniqueProblems (\ s a -> s{_luprsUniqueProblems = a}) . _Default . _Map;++-- | The response status code.+luprsStatus :: Lens' ListUniqueProblemsResponse Int+luprsStatus = lens _luprsStatus (\ s a -> s{_luprsStatus = a});
+ gen/Network/AWS/DeviceFarm/ListUploads.hs view
@@ -0,0 +1,153 @@+{-# 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.DeviceFarm.ListUploads+-- 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)+--+-- Gets information about uploads.+--+-- /See:/ <http://docs.aws.amazon.com/devicefarm/latest/APIReference/API_ListUploads.html AWS API Reference> for ListUploads.+module Network.AWS.DeviceFarm.ListUploads+    (+    -- * Creating a Request+      listUploads+    , ListUploads+    -- * Request Lenses+    , luNextToken+    , luArn++    -- * Destructuring the Response+    , listUploadsResponse+    , ListUploadsResponse+    -- * Response Lenses+    , lursNextToken+    , lursUploads+    , lursStatus+    ) where++import           Network.AWS.DeviceFarm.Types+import           Network.AWS.DeviceFarm.Types.Product+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- | Represents a request to the list uploads operation.+--+-- /See:/ 'listUploads' smart constructor.+data ListUploads = ListUploads'+    { _luNextToken :: !(Maybe Text)+    , _luArn       :: !Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ListUploads' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'luNextToken'+--+-- * 'luArn'+listUploads+    :: Text -- ^ 'luArn'+    -> ListUploads+listUploads pArn_ =+    ListUploads'+    { _luNextToken = Nothing+    , _luArn = pArn_+    }++-- | An identifier that was returned from the previous call to this+-- operation, which can be used to return the next set of items in the+-- list.+luNextToken :: Lens' ListUploads (Maybe Text)+luNextToken = lens _luNextToken (\ s a -> s{_luNextToken = a});++-- | The uploads\' ARNs.+luArn :: Lens' ListUploads Text+luArn = lens _luArn (\ s a -> s{_luArn = a});++instance AWSRequest ListUploads where+        type Sv ListUploads = DeviceFarm+        type Rs ListUploads = ListUploadsResponse+        request = postJSON+        response+          = receiveJSON+              (\ s h x ->+                 ListUploadsResponse' <$>+                   (x .?> "nextToken") <*> (x .?> "uploads" .!@ mempty)+                     <*> (pure (fromEnum s)))++instance ToHeaders ListUploads where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("DeviceFarm_20150623.ListUploads" :: ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON ListUploads where+        toJSON ListUploads'{..}+          = object+              ["nextToken" .= _luNextToken, "arn" .= _luArn]++instance ToPath ListUploads where+        toPath = const "/"++instance ToQuery ListUploads where+        toQuery = const mempty++-- | Represents the result of a list uploads request.+--+-- /See:/ 'listUploadsResponse' smart constructor.+data ListUploadsResponse = ListUploadsResponse'+    { _lursNextToken :: !(Maybe Text)+    , _lursUploads   :: !(Maybe [Upload])+    , _lursStatus    :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ListUploadsResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lursNextToken'+--+-- * 'lursUploads'+--+-- * 'lursStatus'+listUploadsResponse+    :: Int -- ^ 'lursStatus'+    -> ListUploadsResponse+listUploadsResponse pStatus_ =+    ListUploadsResponse'+    { _lursNextToken = Nothing+    , _lursUploads = Nothing+    , _lursStatus = pStatus_+    }++-- | If the number of items that are returned is significantly large, this is+-- an identifier that is also returned, which can be used in a subsequent+-- call to this operation to return the next set of items in the list.+lursNextToken :: Lens' ListUploadsResponse (Maybe Text)+lursNextToken = lens _lursNextToken (\ s a -> s{_lursNextToken = a});++-- | Information about the uploads.+lursUploads :: Lens' ListUploadsResponse [Upload]+lursUploads = lens _lursUploads (\ s a -> s{_lursUploads = a}) . _Default . _Coerce;++-- | The response status code.+lursStatus :: Lens' ListUploadsResponse Int+lursStatus = lens _lursStatus (\ s a -> s{_lursStatus = a});
+ gen/Network/AWS/DeviceFarm/ScheduleRun.hs view
@@ -0,0 +1,182 @@+{-# 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.DeviceFarm.ScheduleRun+-- 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)+--+-- Schedules a run.+--+-- /See:/ <http://docs.aws.amazon.com/devicefarm/latest/APIReference/API_ScheduleRun.html AWS API Reference> for ScheduleRun.+module Network.AWS.DeviceFarm.ScheduleRun+    (+    -- * Creating a Request+      scheduleRun+    , ScheduleRun+    -- * Request Lenses+    , srName+    , srConfiguration+    , srProjectARN+    , srAppARN+    , srDevicePoolARN+    , srTest++    -- * Destructuring the Response+    , scheduleRunResponse+    , ScheduleRunResponse+    -- * Response Lenses+    , srrsRun+    , srrsStatus+    ) where++import           Network.AWS.DeviceFarm.Types+import           Network.AWS.DeviceFarm.Types.Product+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- | Represents a request to the schedule run operation.+--+-- /See:/ 'scheduleRun' smart constructor.+data ScheduleRun = ScheduleRun'+    { _srName          :: !(Maybe Text)+    , _srConfiguration :: !(Maybe ScheduleRunConfiguration)+    , _srProjectARN    :: !Text+    , _srAppARN        :: !Text+    , _srDevicePoolARN :: !Text+    , _srTest          :: !ScheduleRunTest+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ScheduleRun' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'srName'+--+-- * 'srConfiguration'+--+-- * 'srProjectARN'+--+-- * 'srAppARN'+--+-- * 'srDevicePoolARN'+--+-- * 'srTest'+scheduleRun+    :: Text -- ^ 'srProjectARN'+    -> Text -- ^ 'srAppARN'+    -> Text -- ^ 'srDevicePoolARN'+    -> ScheduleRunTest -- ^ 'srTest'+    -> ScheduleRun+scheduleRun pProjectARN_ pAppARN_ pDevicePoolARN_ pTest_ =+    ScheduleRun'+    { _srName = Nothing+    , _srConfiguration = Nothing+    , _srProjectARN = pProjectARN_+    , _srAppARN = pAppARN_+    , _srDevicePoolARN = pDevicePoolARN_+    , _srTest = pTest_+    }++-- | The name for the run to be scheduled.+srName :: Lens' ScheduleRun (Maybe Text)+srName = lens _srName (\ s a -> s{_srName = a});++-- | Information about the settings for the run to be scheduled.+srConfiguration :: Lens' ScheduleRun (Maybe ScheduleRunConfiguration)+srConfiguration = lens _srConfiguration (\ s a -> s{_srConfiguration = a});++-- | The ARN of the project for the run to be scheduled.+srProjectARN :: Lens' ScheduleRun Text+srProjectARN = lens _srProjectARN (\ s a -> s{_srProjectARN = a});++-- | The ARN of the app to schedule a run.+srAppARN :: Lens' ScheduleRun Text+srAppARN = lens _srAppARN (\ s a -> s{_srAppARN = a});++-- | The ARN of the device pool for the run to be scheduled.+srDevicePoolARN :: Lens' ScheduleRun Text+srDevicePoolARN = lens _srDevicePoolARN (\ s a -> s{_srDevicePoolARN = a});++-- | Information about the test for the run to be scheduled.+srTest :: Lens' ScheduleRun ScheduleRunTest+srTest = lens _srTest (\ s a -> s{_srTest = a});++instance AWSRequest ScheduleRun where+        type Sv ScheduleRun = DeviceFarm+        type Rs ScheduleRun = ScheduleRunResponse+        request = postJSON+        response+          = receiveJSON+              (\ s h x ->+                 ScheduleRunResponse' <$>+                   (x .?> "run") <*> (pure (fromEnum s)))++instance ToHeaders ScheduleRun where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("DeviceFarm_20150623.ScheduleRun" :: ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON ScheduleRun where+        toJSON ScheduleRun'{..}+          = object+              ["name" .= _srName,+               "configuration" .= _srConfiguration,+               "projectArn" .= _srProjectARN, "appArn" .= _srAppARN,+               "devicePoolArn" .= _srDevicePoolARN,+               "test" .= _srTest]++instance ToPath ScheduleRun where+        toPath = const "/"++instance ToQuery ScheduleRun where+        toQuery = const mempty++-- | Represents the result of a schedule run request.+--+-- /See:/ 'scheduleRunResponse' smart constructor.+data ScheduleRunResponse = ScheduleRunResponse'+    { _srrsRun    :: !(Maybe Run)+    , _srrsStatus :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ScheduleRunResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'srrsRun'+--+-- * 'srrsStatus'+scheduleRunResponse+    :: Int -- ^ 'srrsStatus'+    -> ScheduleRunResponse+scheduleRunResponse pStatus_ =+    ScheduleRunResponse'+    { _srrsRun = Nothing+    , _srrsStatus = pStatus_+    }++-- | Information about the scheduled run.+srrsRun :: Lens' ScheduleRunResponse (Maybe Run)+srrsRun = lens _srrsRun (\ s a -> s{_srrsRun = a});++-- | The response status code.+srrsStatus :: Lens' ScheduleRunResponse Int+srrsStatus = lens _srrsStatus (\ s a -> s{_srrsStatus = a});
+ gen/Network/AWS/DeviceFarm/Types.hs view
@@ -0,0 +1,356 @@+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE TypeFamilies      #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.DeviceFarm.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.DeviceFarm.Types+    (+    -- * Service+      DeviceFarm++    -- * Errors+    , _IdempotencyException+    , _NotFoundException+    , _ArgumentException+    , _ServiceAccountException+    , _LimitExceededException++    -- * ArtifactCategory+    , ArtifactCategory (..)++    -- * ArtifactType+    , ArtifactType (..)++    -- * BillingMethod+    , BillingMethod (..)++    -- * DeviceAttribute+    , DeviceAttribute (..)++    -- * DeviceFormFactor+    , DeviceFormFactor (..)++    -- * DevicePlatform+    , DevicePlatform (..)++    -- * DevicePoolType+    , DevicePoolType (..)++    -- * ExecutionResult+    , ExecutionResult (..)++    -- * ExecutionStatus+    , ExecutionStatus (..)++    -- * RuleOperator+    , RuleOperator (..)++    -- * SampleType+    , SampleType (..)++    -- * TestType+    , TestType (..)++    -- * UploadStatus+    , UploadStatus (..)++    -- * UploadType+    , UploadType (..)++    -- * AccountSettings+    , AccountSettings+    , accountSettings+    , asAwsAccountNumber+    , asUnmeteredDevices++    -- * Artifact+    , Artifact+    , artifact+    , aArn+    , aUrl+    , aExtension+    , aName+    , aType++    -- * CPU+    , CPU+    , cpu+    , cpuFrequency+    , cpuClock+    , cpuArchitecture++    -- * Counters+    , Counters+    , counters+    , cPassed+    , cSkipped+    , cWarned+    , cStopped+    , cTotal+    , cFailed+    , cErrored++    -- * Device+    , Device+    , device+    , dCarrier+    , dImage+    , dManufacturer+    , dPlatform+    , dArn+    , dFormFactor+    , dResolution+    , dMemory+    , dRadio+    , dOs+    , dName+    , dModel+    , dCpu+    , dHeapSize++    -- * DevicePool+    , DevicePool+    , devicePool+    , dpArn+    , dpRules+    , dpName+    , dpType+    , dpDescription++    -- * DevicePoolCompatibilityResult+    , DevicePoolCompatibilityResult+    , devicePoolCompatibilityResult+    , dpcrDevice+    , dpcrCompatible+    , dpcrIncompatibilityMessages++    -- * IncompatibilityMessage+    , IncompatibilityMessage+    , incompatibilityMessage+    , imType+    , imMessage++    -- * Job+    , Job+    , job+    , jobStatus+    , jobCounters+    , jobArn+    , jobCreated+    , jobDevice+    , jobStopped+    , jobResult+    , jobName+    , jobType+    , jobMessage+    , jobStarted++    -- * Location+    , Location+    , location+    , lLatitude+    , lLongitude++    -- * Problem+    , Problem+    , problem+    , pDevice+    , pTest+    , pResult+    , pRun+    , pJob+    , pMessage+    , pSuite++    -- * ProblemDetail+    , ProblemDetail+    , problemDetail+    , pdArn+    , pdName++    -- * Project+    , Project+    , project+    , pArn+    , pCreated+    , pName++    -- * Radios+    , Radios+    , radios+    , rNfc+    , rGps+    , rBluetooth+    , rWifi++    -- * Resolution+    , Resolution+    , resolution+    , rHeight+    , rWidth++    -- * Rule+    , Rule+    , rule+    , rAttribute+    , rOperator+    , rValue++    -- * Run+    , Run+    , run+    , runStatus+    , runBillingMethod+    , runCounters+    , runPlatform+    , runArn+    , runCreated+    , runCompletedJobs+    , runStopped+    , runResult+    , runName+    , runType+    , runMessage+    , runTotalJobs+    , runStarted++    -- * Sample+    , Sample+    , sample+    , sArn+    , sUrl+    , sType++    -- * ScheduleRunConfiguration+    , ScheduleRunConfiguration+    , scheduleRunConfiguration+    , srcBillingMethod+    , srcRadios+    , srcLocation+    , srcLocale+    , srcNetworkProfileARN+    , srcExtraDataPackageARN+    , srcAuxiliaryApps++    -- * ScheduleRunTest+    , ScheduleRunTest+    , scheduleRunTest+    , srtTestPackageARN+    , srtParameters+    , srtFilter+    , srtType++    -- * Suite+    , Suite+    , suite+    , suiStatus+    , suiCounters+    , suiArn+    , suiCreated+    , suiStopped+    , suiResult+    , suiName+    , suiType+    , suiMessage+    , suiStarted++    -- * Test+    , Test+    , test+    , tStatus+    , tCounters+    , tArn+    , tCreated+    , tStopped+    , tResult+    , tName+    , tType+    , tMessage+    , tStarted++    -- * UniqueProblem+    , UniqueProblem+    , uniqueProblem+    , upProblems+    , upMessage++    -- * Upload+    , Upload+    , upload+    , uStatus+    , uArn+    , uCreated+    , uUrl+    , uName+    , uMetadata+    , uType+    , uMessage+    , uContentType+    ) where++import           Network.AWS.DeviceFarm.Types.Product+import           Network.AWS.DeviceFarm.Types.Sum+import           Network.AWS.Prelude+import           Network.AWS.Sign.V4++-- | Version @2015-06-23@ of the Amazon Device Farm SDK.+data DeviceFarm++instance AWSService DeviceFarm where+    type Sg DeviceFarm = V4+    service = const svc+      where+        svc =+            Service+            { _svcAbbrev = "DeviceFarm"+            , _svcPrefix = "devicefarm"+            , _svcVersion = "2015-06-23"+            , _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 entity with the same name already exists.+_IdempotencyException :: AsError a => Getting (First ServiceError) a ServiceError+_IdempotencyException = _ServiceError . hasCode "IdempotencyException"++-- | The specified entity was not found.+_NotFoundException :: AsError a => Getting (First ServiceError) a ServiceError+_NotFoundException = _ServiceError . hasCode "NotFoundException"++-- | An invalid argument was specified.+_ArgumentException :: AsError a => Getting (First ServiceError) a ServiceError+_ArgumentException = _ServiceError . hasCode "ArgumentException"++-- | There was a problem with the service account.+_ServiceAccountException :: AsError a => Getting (First ServiceError) a ServiceError+_ServiceAccountException = _ServiceError . hasCode "ServiceAccountException"++-- | A limit was exceeded.+_LimitExceededException :: AsError a => Getting (First ServiceError) a ServiceError+_LimitExceededException = _ServiceError . hasCode "LimitExceededException"
+ gen/Network/AWS/DeviceFarm/Types/Product.hs view
@@ -0,0 +1,2159 @@+{-# 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.DeviceFarm.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.DeviceFarm.Types.Product where++import           Network.AWS.DeviceFarm.Types.Sum+import           Network.AWS.Prelude++-- | A container for account-level settings within AWS Device Farm.+--+-- /See:/ 'accountSettings' smart constructor.+data AccountSettings = AccountSettings'+    { _asAwsAccountNumber :: !(Maybe Text)+    , _asUnmeteredDevices :: !(Maybe (Map DevicePlatform Int))+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'AccountSettings' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'asAwsAccountNumber'+--+-- * 'asUnmeteredDevices'+accountSettings+    :: AccountSettings+accountSettings =+    AccountSettings'+    { _asAwsAccountNumber = Nothing+    , _asUnmeteredDevices = Nothing+    }++-- | The AWS account number specified in the 'AccountSettings' container.+asAwsAccountNumber :: Lens' AccountSettings (Maybe Text)+asAwsAccountNumber = lens _asAwsAccountNumber (\ s a -> s{_asAwsAccountNumber = a});++-- | Returns the unmetered devices you have purchased.+asUnmeteredDevices :: Lens' AccountSettings (HashMap DevicePlatform Int)+asUnmeteredDevices = lens _asUnmeteredDevices (\ s a -> s{_asUnmeteredDevices = a}) . _Default . _Map;++instance FromJSON AccountSettings where+        parseJSON+          = withObject "AccountSettings"+              (\ x ->+                 AccountSettings' <$>+                   (x .:? "awsAccountNumber") <*>+                     (x .:? "unmeteredDevices" .!= mempty))++-- | Represents the output of a test. Examples of artifacts include logs and+-- screenshots.+--+-- /See:/ 'artifact' smart constructor.+data Artifact = Artifact'+    { _aArn       :: !(Maybe Text)+    , _aUrl       :: !(Maybe Text)+    , _aExtension :: !(Maybe Text)+    , _aName      :: !(Maybe Text)+    , _aType      :: !(Maybe ArtifactType)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'Artifact' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'aArn'+--+-- * 'aUrl'+--+-- * 'aExtension'+--+-- * 'aName'+--+-- * 'aType'+artifact+    :: Artifact+artifact =+    Artifact'+    { _aArn = Nothing+    , _aUrl = Nothing+    , _aExtension = Nothing+    , _aName = Nothing+    , _aType = Nothing+    }++-- | The artifact\'s ARN.+aArn :: Lens' Artifact (Maybe Text)+aArn = lens _aArn (\ s a -> s{_aArn = a});++-- | The pre-signed Amazon S3 URL that can be used with a corresponding GET+-- request to download the artifact\'s file.+aUrl :: Lens' Artifact (Maybe Text)+aUrl = lens _aUrl (\ s a -> s{_aUrl = a});++-- | The artifact\'s file extension.+aExtension :: Lens' Artifact (Maybe Text)+aExtension = lens _aExtension (\ s a -> s{_aExtension = a});++-- | The artifact\'s name.+aName :: Lens' Artifact (Maybe Text)+aName = lens _aName (\ s a -> s{_aName = a});++-- | The artifact\'s type.+--+-- Allowed values include the following:+--+-- -   APPIUM_JAVA_OUTPUT: The Appium Java output type.+--+-- -   APPIUM_JAVA_XML_OUTPUT: The Appium Java XML output type.+--+-- -   APPIUM_SERVER_OUTPUT: The Appium server output type.+--+-- -   AUTOMATION_OUTPUT: The automation output type.+--+-- -   CALABASH_JSON_OUTPUT: The Calabash JSON output type.+--+-- -   CALABASH_JAVA_XML_OUTPUT: The Calabash Java XML output type.+--+-- -   CALABASH_PRETTY_OUTPUT: The Calabash pretty output type.+--+-- -   CALABASH_STANDARD_OUTPUT: The Calabash standard output type.+--+-- -   DEVICE_LOG: The device log type.+--+-- -   EXERCISER_MONKEY_OUTPUT: For Android, the artifact (log) generated+--     by an Android fuzz test.+--+-- -   INSTRUMENTATION_OUTPUT: The instrumentation type.+--+-- -   MESSAGE_LOG: The message log type.+--+-- -   RESULT_LOG: The result log type.+--+-- -   SCREENSHOT: The screenshot type.+--+-- -   SERVICE_LOG: The service log type.+--+-- -   UNKNOWN: An unknown type.+--+aType :: Lens' Artifact (Maybe ArtifactType)+aType = lens _aType (\ s a -> s{_aType = a});++instance FromJSON Artifact where+        parseJSON+          = withObject "Artifact"+              (\ x ->+                 Artifact' <$>+                   (x .:? "arn") <*> (x .:? "url") <*>+                     (x .:? "extension")+                     <*> (x .:? "name")+                     <*> (x .:? "type"))++-- | Represents the amount of CPU that an app is using on a physical device.+--+-- Note that this does not represent system-wide CPU usage.+--+-- /See:/ 'cpu' smart constructor.+data CPU = CPU'+    { _cpuFrequency    :: !(Maybe Text)+    , _cpuClock        :: !(Maybe Double)+    , _cpuArchitecture :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'CPU' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cpuFrequency'+--+-- * 'cpuClock'+--+-- * 'cpuArchitecture'+cpu+    :: CPU+cpu =+    CPU'+    { _cpuFrequency = Nothing+    , _cpuClock = Nothing+    , _cpuArchitecture = Nothing+    }++-- | The CPU\'s frequency.+cpuFrequency :: Lens' CPU (Maybe Text)+cpuFrequency = lens _cpuFrequency (\ s a -> s{_cpuFrequency = a});++-- | The clock speed of the device\'s CPU, expressed in hertz (Hz). For+-- example, a 1.2 GHz CPU is expressed as 1200000000.+cpuClock :: Lens' CPU (Maybe Double)+cpuClock = lens _cpuClock (\ s a -> s{_cpuClock = a});++-- | The CPU\'s architecture, for example x86 or ARM.+cpuArchitecture :: Lens' CPU (Maybe Text)+cpuArchitecture = lens _cpuArchitecture (\ s a -> s{_cpuArchitecture = a});++instance FromJSON CPU where+        parseJSON+          = withObject "CPU"+              (\ x ->+                 CPU' <$>+                   (x .:? "frequency") <*> (x .:? "clock") <*>+                     (x .:? "architecture"))++-- | Represents entity counters.+--+-- /See:/ 'counters' smart constructor.+data Counters = Counters'+    { _cPassed  :: !(Maybe Int)+    , _cSkipped :: !(Maybe Int)+    , _cWarned  :: !(Maybe Int)+    , _cStopped :: !(Maybe Int)+    , _cTotal   :: !(Maybe Int)+    , _cFailed  :: !(Maybe Int)+    , _cErrored :: !(Maybe Int)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'Counters' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cPassed'+--+-- * 'cSkipped'+--+-- * 'cWarned'+--+-- * 'cStopped'+--+-- * 'cTotal'+--+-- * 'cFailed'+--+-- * 'cErrored'+counters+    :: Counters+counters =+    Counters'+    { _cPassed = Nothing+    , _cSkipped = Nothing+    , _cWarned = Nothing+    , _cStopped = Nothing+    , _cTotal = Nothing+    , _cFailed = Nothing+    , _cErrored = Nothing+    }++-- | The number of passed entities.+cPassed :: Lens' Counters (Maybe Int)+cPassed = lens _cPassed (\ s a -> s{_cPassed = a});++-- | The number of skipped entities.+cSkipped :: Lens' Counters (Maybe Int)+cSkipped = lens _cSkipped (\ s a -> s{_cSkipped = a});++-- | The number of warned entities.+cWarned :: Lens' Counters (Maybe Int)+cWarned = lens _cWarned (\ s a -> s{_cWarned = a});++-- | The number of stopped entities.+cStopped :: Lens' Counters (Maybe Int)+cStopped = lens _cStopped (\ s a -> s{_cStopped = a});++-- | The total number of entities.+cTotal :: Lens' Counters (Maybe Int)+cTotal = lens _cTotal (\ s a -> s{_cTotal = a});++-- | The number of failed entities.+cFailed :: Lens' Counters (Maybe Int)+cFailed = lens _cFailed (\ s a -> s{_cFailed = a});++-- | The number of errored entities.+cErrored :: Lens' Counters (Maybe Int)+cErrored = lens _cErrored (\ s a -> s{_cErrored = a});++instance FromJSON Counters where+        parseJSON+          = withObject "Counters"+              (\ x ->+                 Counters' <$>+                   (x .:? "passed") <*> (x .:? "skipped") <*>+                     (x .:? "warned")+                     <*> (x .:? "stopped")+                     <*> (x .:? "total")+                     <*> (x .:? "failed")+                     <*> (x .:? "errored"))++-- | Represents a device type that an app is tested against.+--+-- /See:/ 'device' smart constructor.+data Device = Device'+    { _dCarrier      :: !(Maybe Text)+    , _dImage        :: !(Maybe Text)+    , _dManufacturer :: !(Maybe Text)+    , _dPlatform     :: !(Maybe DevicePlatform)+    , _dArn          :: !(Maybe Text)+    , _dFormFactor   :: !(Maybe DeviceFormFactor)+    , _dResolution   :: !(Maybe Resolution)+    , _dMemory       :: !(Maybe Integer)+    , _dRadio        :: !(Maybe Text)+    , _dOs           :: !(Maybe Text)+    , _dName         :: !(Maybe Text)+    , _dModel        :: !(Maybe Text)+    , _dCpu          :: !(Maybe CPU)+    , _dHeapSize     :: !(Maybe Integer)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'Device' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dCarrier'+--+-- * 'dImage'+--+-- * 'dManufacturer'+--+-- * 'dPlatform'+--+-- * 'dArn'+--+-- * 'dFormFactor'+--+-- * 'dResolution'+--+-- * 'dMemory'+--+-- * 'dRadio'+--+-- * 'dOs'+--+-- * 'dName'+--+-- * 'dModel'+--+-- * 'dCpu'+--+-- * 'dHeapSize'+device+    :: Device+device =+    Device'+    { _dCarrier = Nothing+    , _dImage = Nothing+    , _dManufacturer = Nothing+    , _dPlatform = Nothing+    , _dArn = Nothing+    , _dFormFactor = Nothing+    , _dResolution = Nothing+    , _dMemory = Nothing+    , _dRadio = Nothing+    , _dOs = Nothing+    , _dName = Nothing+    , _dModel = Nothing+    , _dCpu = Nothing+    , _dHeapSize = Nothing+    }++-- | The device\'s carrier.+dCarrier :: Lens' Device (Maybe Text)+dCarrier = lens _dCarrier (\ s a -> s{_dCarrier = a});++-- | The device\'s image name.+dImage :: Lens' Device (Maybe Text)+dImage = lens _dImage (\ s a -> s{_dImage = a});++-- | The device\'s manufacturer name.+dManufacturer :: Lens' Device (Maybe Text)+dManufacturer = lens _dManufacturer (\ s a -> s{_dManufacturer = a});++-- | The device\'s platform.+--+-- Allowed values include:+--+-- -   ANDROID: The Android platform.+--+-- -   IOS: The iOS platform.+--+dPlatform :: Lens' Device (Maybe DevicePlatform)+dPlatform = lens _dPlatform (\ s a -> s{_dPlatform = a});++-- | The device\'s ARN.+dArn :: Lens' Device (Maybe Text)+dArn = lens _dArn (\ s a -> s{_dArn = a});++-- | The device\'s form factor.+--+-- Allowed values include:+--+-- -   PHONE: The phone form factor.+--+-- -   TABLET: The tablet form factor.+--+dFormFactor :: Lens' Device (Maybe DeviceFormFactor)+dFormFactor = lens _dFormFactor (\ s a -> s{_dFormFactor = a});++-- | Undocumented member.+dResolution :: Lens' Device (Maybe Resolution)+dResolution = lens _dResolution (\ s a -> s{_dResolution = a});++-- | The device\'s total memory size, expressed in bytes.+dMemory :: Lens' Device (Maybe Integer)+dMemory = lens _dMemory (\ s a -> s{_dMemory = a});++-- | The device\'s radio.+dRadio :: Lens' Device (Maybe Text)+dRadio = lens _dRadio (\ s a -> s{_dRadio = a});++-- | The device\'s operating system type.+dOs :: Lens' Device (Maybe Text)+dOs = lens _dOs (\ s a -> s{_dOs = a});++-- | The device\'s display name.+dName :: Lens' Device (Maybe Text)+dName = lens _dName (\ s a -> s{_dName = a});++-- | The device\'s model name.+dModel :: Lens' Device (Maybe Text)+dModel = lens _dModel (\ s a -> s{_dModel = a});++-- | Information about the device\'s CPU.+dCpu :: Lens' Device (Maybe CPU)+dCpu = lens _dCpu (\ s a -> s{_dCpu = a});++-- | The device\'s heap size, expressed in bytes.+dHeapSize :: Lens' Device (Maybe Integer)+dHeapSize = lens _dHeapSize (\ s a -> s{_dHeapSize = a});++instance FromJSON Device where+        parseJSON+          = withObject "Device"+              (\ x ->+                 Device' <$>+                   (x .:? "carrier") <*> (x .:? "image") <*>+                     (x .:? "manufacturer")+                     <*> (x .:? "platform")+                     <*> (x .:? "arn")+                     <*> (x .:? "formFactor")+                     <*> (x .:? "resolution")+                     <*> (x .:? "memory")+                     <*> (x .:? "radio")+                     <*> (x .:? "os")+                     <*> (x .:? "name")+                     <*> (x .:? "model")+                     <*> (x .:? "cpu")+                     <*> (x .:? "heapSize"))++-- | Represents a collection of device types.+--+-- /See:/ 'devicePool' smart constructor.+data DevicePool = DevicePool'+    { _dpArn         :: !(Maybe Text)+    , _dpRules       :: !(Maybe [Rule])+    , _dpName        :: !(Maybe Text)+    , _dpType        :: !(Maybe DevicePoolType)+    , _dpDescription :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DevicePool' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dpArn'+--+-- * 'dpRules'+--+-- * 'dpName'+--+-- * 'dpType'+--+-- * 'dpDescription'+devicePool+    :: DevicePool+devicePool =+    DevicePool'+    { _dpArn = Nothing+    , _dpRules = Nothing+    , _dpName = Nothing+    , _dpType = Nothing+    , _dpDescription = Nothing+    }++-- | The device pool\'s ARN.+dpArn :: Lens' DevicePool (Maybe Text)+dpArn = lens _dpArn (\ s a -> s{_dpArn = a});++-- | Information about the device pool\'s rules.+dpRules :: Lens' DevicePool [Rule]+dpRules = lens _dpRules (\ s a -> s{_dpRules = a}) . _Default . _Coerce;++-- | The device pool\'s name.+dpName :: Lens' DevicePool (Maybe Text)+dpName = lens _dpName (\ s a -> s{_dpName = a});++-- | The device pool\'s type.+--+-- Allowed values include:+--+-- -   CURATED: A device pool that is created and managed by AWS Device+--     Farm.+--+-- -   PRIVATE: A device pool that is created and managed by the device+--     pool developer.+--+dpType :: Lens' DevicePool (Maybe DevicePoolType)+dpType = lens _dpType (\ s a -> s{_dpType = a});++-- | The device pool\'s description.+dpDescription :: Lens' DevicePool (Maybe Text)+dpDescription = lens _dpDescription (\ s a -> s{_dpDescription = a});++instance FromJSON DevicePool where+        parseJSON+          = withObject "DevicePool"+              (\ x ->+                 DevicePool' <$>+                   (x .:? "arn") <*> (x .:? "rules" .!= mempty) <*>+                     (x .:? "name")+                     <*> (x .:? "type")+                     <*> (x .:? "description"))++-- | Represents a device pool compatibility result.+--+-- /See:/ 'devicePoolCompatibilityResult' smart constructor.+data DevicePoolCompatibilityResult = DevicePoolCompatibilityResult'+    { _dpcrDevice                  :: !(Maybe Device)+    , _dpcrCompatible              :: !(Maybe Bool)+    , _dpcrIncompatibilityMessages :: !(Maybe [IncompatibilityMessage])+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DevicePoolCompatibilityResult' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dpcrDevice'+--+-- * 'dpcrCompatible'+--+-- * 'dpcrIncompatibilityMessages'+devicePoolCompatibilityResult+    :: DevicePoolCompatibilityResult+devicePoolCompatibilityResult =+    DevicePoolCompatibilityResult'+    { _dpcrDevice = Nothing+    , _dpcrCompatible = Nothing+    , _dpcrIncompatibilityMessages = Nothing+    }++-- | Undocumented member.+dpcrDevice :: Lens' DevicePoolCompatibilityResult (Maybe Device)+dpcrDevice = lens _dpcrDevice (\ s a -> s{_dpcrDevice = a});++-- | Whether the result was compatible with the device pool.+dpcrCompatible :: Lens' DevicePoolCompatibilityResult (Maybe Bool)+dpcrCompatible = lens _dpcrCompatible (\ s a -> s{_dpcrCompatible = a});++-- | Information about the compatibility.+dpcrIncompatibilityMessages :: Lens' DevicePoolCompatibilityResult [IncompatibilityMessage]+dpcrIncompatibilityMessages = lens _dpcrIncompatibilityMessages (\ s a -> s{_dpcrIncompatibilityMessages = a}) . _Default . _Coerce;++instance FromJSON DevicePoolCompatibilityResult where+        parseJSON+          = withObject "DevicePoolCompatibilityResult"+              (\ x ->+                 DevicePoolCompatibilityResult' <$>+                   (x .:? "device") <*> (x .:? "compatible") <*>+                     (x .:? "incompatibilityMessages" .!= mempty))++-- | Represents information about incompatibility.+--+-- /See:/ 'incompatibilityMessage' smart constructor.+data IncompatibilityMessage = IncompatibilityMessage'+    { _imType    :: !(Maybe DeviceAttribute)+    , _imMessage :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'IncompatibilityMessage' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'imType'+--+-- * 'imMessage'+incompatibilityMessage+    :: IncompatibilityMessage+incompatibilityMessage =+    IncompatibilityMessage'+    { _imType = Nothing+    , _imMessage = Nothing+    }++-- | The type of incompatibility.+--+-- Allowed values include:+--+-- -   ARN: The ARN.+--+-- -   FORM_FACTOR: The form factor (for example, phone or tablet).+--+-- -   MANUFACTURER: The manufacturer.+--+-- -   PLATFORM: The platform (for example, Android or iOS).+--+imType :: Lens' IncompatibilityMessage (Maybe DeviceAttribute)+imType = lens _imType (\ s a -> s{_imType = a});++-- | A message about the incompatibility.+imMessage :: Lens' IncompatibilityMessage (Maybe Text)+imMessage = lens _imMessage (\ s a -> s{_imMessage = a});++instance FromJSON IncompatibilityMessage where+        parseJSON+          = withObject "IncompatibilityMessage"+              (\ x ->+                 IncompatibilityMessage' <$>+                   (x .:? "type") <*> (x .:? "message"))++-- | Represents a device.+--+-- /See:/ 'job' smart constructor.+data Job = Job'+    { _jobStatus   :: !(Maybe ExecutionStatus)+    , _jobCounters :: !(Maybe Counters)+    , _jobArn      :: !(Maybe Text)+    , _jobCreated  :: !(Maybe POSIX)+    , _jobDevice   :: !(Maybe Device)+    , _jobStopped  :: !(Maybe POSIX)+    , _jobResult   :: !(Maybe ExecutionResult)+    , _jobName     :: !(Maybe Text)+    , _jobType     :: !(Maybe TestType)+    , _jobMessage  :: !(Maybe Text)+    , _jobStarted  :: !(Maybe POSIX)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'Job' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'jobStatus'+--+-- * 'jobCounters'+--+-- * 'jobArn'+--+-- * 'jobCreated'+--+-- * 'jobDevice'+--+-- * 'jobStopped'+--+-- * 'jobResult'+--+-- * 'jobName'+--+-- * 'jobType'+--+-- * 'jobMessage'+--+-- * 'jobStarted'+job+    :: Job+job =+    Job'+    { _jobStatus = Nothing+    , _jobCounters = Nothing+    , _jobArn = Nothing+    , _jobCreated = Nothing+    , _jobDevice = Nothing+    , _jobStopped = Nothing+    , _jobResult = Nothing+    , _jobName = Nothing+    , _jobType = Nothing+    , _jobMessage = Nothing+    , _jobStarted = Nothing+    }++-- | The job\'s status.+--+-- Allowed values include:+--+-- -   COMPLETED: A completed status.+--+-- -   PENDING: A pending status.+--+-- -   PROCESSING: A processing status.+--+-- -   RUNNING: A running status.+--+-- -   SCHEDULING: A scheduling status.+--+jobStatus :: Lens' Job (Maybe ExecutionStatus)+jobStatus = lens _jobStatus (\ s a -> s{_jobStatus = a});++-- | The job\'s result counters.+jobCounters :: Lens' Job (Maybe Counters)+jobCounters = lens _jobCounters (\ s a -> s{_jobCounters = a});++-- | The job\'s ARN.+jobArn :: Lens' Job (Maybe Text)+jobArn = lens _jobArn (\ s a -> s{_jobArn = a});++-- | When the job was created.+jobCreated :: Lens' Job (Maybe UTCTime)+jobCreated = lens _jobCreated (\ s a -> s{_jobCreated = a}) . mapping _Time;++-- | Undocumented member.+jobDevice :: Lens' Job (Maybe Device)+jobDevice = lens _jobDevice (\ s a -> s{_jobDevice = a});++-- | The job\'s stop time.+jobStopped :: Lens' Job (Maybe UTCTime)+jobStopped = lens _jobStopped (\ s a -> s{_jobStopped = a}) . mapping _Time;++-- | The job\'s result.+--+-- Allowed values include:+--+-- -   ERRORED: An error condition.+--+-- -   FAILED: A failed condition.+--+-- -   SKIPPED: A skipped condition.+--+-- -   STOPPED: A stopped condition.+--+-- -   PASSED: A passing condition.+--+-- -   PENDING: A pending condition.+--+-- -   WARNED: A warning condition.+--+jobResult :: Lens' Job (Maybe ExecutionResult)+jobResult = lens _jobResult (\ s a -> s{_jobResult = a});++-- | The job\'s name.+jobName :: Lens' Job (Maybe Text)+jobName = lens _jobName (\ s a -> s{_jobName = a});++-- | The job\'s type.+--+-- Allowed values include the following:+--+-- -   BUILTIN_FUZZ: The built-in fuzz type.+--+-- -   BUILTIN_EXPLORER: For Android, an app explorer that will traverse an+--     Android app, interacting with it and capturing screenshots at the+--     same time.+--+-- -   APPIUM_JAVA_JUNIT: The Appium Java JUnit type.+--+-- -   APPIUM_JAVA_TESTNG: The Appium Java TestNG type.+--+-- -   CALABASH: The Calabash type.+--+-- -   INSTRUMENTATION: The Instrumentation type.+--+-- -   UIAUTOMATION: The uiautomation type.+--+-- -   UIAUTOMATOR: The uiautomator type.+--+-- -   XCTEST: The XCode test type.+--+jobType :: Lens' Job (Maybe TestType)+jobType = lens _jobType (\ s a -> s{_jobType = a});++-- | A message about the job\'s result.+jobMessage :: Lens' Job (Maybe Text)+jobMessage = lens _jobMessage (\ s a -> s{_jobMessage = a});++-- | The job\'s start time.+jobStarted :: Lens' Job (Maybe UTCTime)+jobStarted = lens _jobStarted (\ s a -> s{_jobStarted = a}) . mapping _Time;++instance FromJSON Job where+        parseJSON+          = withObject "Job"+              (\ x ->+                 Job' <$>+                   (x .:? "status") <*> (x .:? "counters") <*>+                     (x .:? "arn")+                     <*> (x .:? "created")+                     <*> (x .:? "device")+                     <*> (x .:? "stopped")+                     <*> (x .:? "result")+                     <*> (x .:? "name")+                     <*> (x .:? "type")+                     <*> (x .:? "message")+                     <*> (x .:? "started"))++-- | Represents a latitude and longitude pair, expressed in geographic+-- coordinate system degrees (for example 47.6204, -122.3491).+--+-- Elevation is currently not supported.+--+-- /See:/ 'location' smart constructor.+data Location = Location'+    { _lLatitude  :: !Double+    , _lLongitude :: !Double+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'Location' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lLatitude'+--+-- * 'lLongitude'+location+    :: Double -- ^ 'lLatitude'+    -> Double -- ^ 'lLongitude'+    -> Location+location pLatitude_ pLongitude_ =+    Location'+    { _lLatitude = pLatitude_+    , _lLongitude = pLongitude_+    }++-- | The latitude.+lLatitude :: Lens' Location Double+lLatitude = lens _lLatitude (\ s a -> s{_lLatitude = a});++-- | The longitude.+lLongitude :: Lens' Location Double+lLongitude = lens _lLongitude (\ s a -> s{_lLongitude = a});++instance ToJSON Location where+        toJSON Location'{..}+          = object+              ["latitude" .= _lLatitude,+               "longitude" .= _lLongitude]++-- | Represents a specific warning or failure.+--+-- /See:/ 'problem' smart constructor.+data Problem = Problem'+    { _pDevice  :: !(Maybe Device)+    , _pTest    :: !(Maybe ProblemDetail)+    , _pResult  :: !(Maybe ExecutionResult)+    , _pRun     :: !(Maybe ProblemDetail)+    , _pJob     :: !(Maybe ProblemDetail)+    , _pMessage :: !(Maybe Text)+    , _pSuite   :: !(Maybe ProblemDetail)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'Problem' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pDevice'+--+-- * 'pTest'+--+-- * 'pResult'+--+-- * 'pRun'+--+-- * 'pJob'+--+-- * 'pMessage'+--+-- * 'pSuite'+problem+    :: Problem+problem =+    Problem'+    { _pDevice = Nothing+    , _pTest = Nothing+    , _pResult = Nothing+    , _pRun = Nothing+    , _pJob = Nothing+    , _pMessage = Nothing+    , _pSuite = Nothing+    }++-- | Information about the associated device.+pDevice :: Lens' Problem (Maybe Device)+pDevice = lens _pDevice (\ s a -> s{_pDevice = a});++-- | Information about the associated test.+pTest :: Lens' Problem (Maybe ProblemDetail)+pTest = lens _pTest (\ s a -> s{_pTest = a});++-- | The problem\'s result.+--+-- Allowed values include:+--+-- -   ERRORED: An error condition.+--+-- -   FAILED: A failed condition.+--+-- -   SKIPPED: A skipped condition.+--+-- -   STOPPED: A stopped condition.+--+-- -   PASSED: A passing condition.+--+-- -   PENDING: A pending condition.+--+-- -   WARNED: A warning condition.+--+pResult :: Lens' Problem (Maybe ExecutionResult)+pResult = lens _pResult (\ s a -> s{_pResult = a});++-- | Information about the associated run.+pRun :: Lens' Problem (Maybe ProblemDetail)+pRun = lens _pRun (\ s a -> s{_pRun = a});++-- | Information about the associated job.+pJob :: Lens' Problem (Maybe ProblemDetail)+pJob = lens _pJob (\ s a -> s{_pJob = a});++-- | A message about the problem\'s result.+pMessage :: Lens' Problem (Maybe Text)+pMessage = lens _pMessage (\ s a -> s{_pMessage = a});++-- | Information about the associated suite.+pSuite :: Lens' Problem (Maybe ProblemDetail)+pSuite = lens _pSuite (\ s a -> s{_pSuite = a});++instance FromJSON Problem where+        parseJSON+          = withObject "Problem"+              (\ x ->+                 Problem' <$>+                   (x .:? "device") <*> (x .:? "test") <*>+                     (x .:? "result")+                     <*> (x .:? "run")+                     <*> (x .:? "job")+                     <*> (x .:? "message")+                     <*> (x .:? "suite"))++-- | Information about a problem detail.+--+-- /See:/ 'problemDetail' smart constructor.+data ProblemDetail = ProblemDetail'+    { _pdArn  :: !(Maybe Text)+    , _pdName :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ProblemDetail' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pdArn'+--+-- * 'pdName'+problemDetail+    :: ProblemDetail+problemDetail =+    ProblemDetail'+    { _pdArn = Nothing+    , _pdName = Nothing+    }++-- | The problem detail\'s ARN.+pdArn :: Lens' ProblemDetail (Maybe Text)+pdArn = lens _pdArn (\ s a -> s{_pdArn = a});++-- | The problem detail\'s name.+pdName :: Lens' ProblemDetail (Maybe Text)+pdName = lens _pdName (\ s a -> s{_pdName = a});++instance FromJSON ProblemDetail where+        parseJSON+          = withObject "ProblemDetail"+              (\ x ->+                 ProblemDetail' <$> (x .:? "arn") <*> (x .:? "name"))++-- | Represents an operating-system neutral workspace for running and+-- managing tests.+--+-- /See:/ 'project' smart constructor.+data Project = Project'+    { _pArn     :: !(Maybe Text)+    , _pCreated :: !(Maybe POSIX)+    , _pName    :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'Project' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pArn'+--+-- * 'pCreated'+--+-- * 'pName'+project+    :: Project+project =+    Project'+    { _pArn = Nothing+    , _pCreated = Nothing+    , _pName = Nothing+    }++-- | The project\'s ARN.+pArn :: Lens' Project (Maybe Text)+pArn = lens _pArn (\ s a -> s{_pArn = a});++-- | When the project was created.+pCreated :: Lens' Project (Maybe UTCTime)+pCreated = lens _pCreated (\ s a -> s{_pCreated = a}) . mapping _Time;++-- | The project\'s name.+pName :: Lens' Project (Maybe Text)+pName = lens _pName (\ s a -> s{_pName = a});++instance FromJSON Project where+        parseJSON+          = withObject "Project"+              (\ x ->+                 Project' <$>+                   (x .:? "arn") <*> (x .:? "created") <*>+                     (x .:? "name"))++-- | Represents the set of radios and their states on a device. Examples of+-- radios include Wi-Fi, GPS, Bluetooth, and NFC.+--+-- /See:/ 'radios' smart constructor.+data Radios = Radios'+    { _rNfc       :: !(Maybe Bool)+    , _rGps       :: !(Maybe Bool)+    , _rBluetooth :: !(Maybe Bool)+    , _rWifi      :: !(Maybe Bool)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'Radios' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rNfc'+--+-- * 'rGps'+--+-- * 'rBluetooth'+--+-- * 'rWifi'+radios+    :: Radios+radios =+    Radios'+    { _rNfc = Nothing+    , _rGps = Nothing+    , _rBluetooth = Nothing+    , _rWifi = Nothing+    }++-- | True if NFC is enabled at the beginning of the test; otherwise, false.+rNfc :: Lens' Radios (Maybe Bool)+rNfc = lens _rNfc (\ s a -> s{_rNfc = a});++-- | True if GPS is enabled at the beginning of the test; otherwise, false.+rGps :: Lens' Radios (Maybe Bool)+rGps = lens _rGps (\ s a -> s{_rGps = a});++-- | True if Bluetooth is enabled at the beginning of the test; otherwise,+-- false.+rBluetooth :: Lens' Radios (Maybe Bool)+rBluetooth = lens _rBluetooth (\ s a -> s{_rBluetooth = a});++-- | True if Wi-Fi is enabled at the beginning of the test; otherwise, false.+rWifi :: Lens' Radios (Maybe Bool)+rWifi = lens _rWifi (\ s a -> s{_rWifi = a});++instance ToJSON Radios where+        toJSON Radios'{..}+          = object+              ["nfc" .= _rNfc, "gps" .= _rGps,+               "bluetooth" .= _rBluetooth, "wifi" .= _rWifi]++-- | Represents the screen resolution of a device in height and width,+-- expressed in pixels.+--+-- /See:/ 'resolution' smart constructor.+data Resolution = Resolution'+    { _rHeight :: !(Maybe Int)+    , _rWidth  :: !(Maybe Int)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'Resolution' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rHeight'+--+-- * 'rWidth'+resolution+    :: Resolution+resolution =+    Resolution'+    { _rHeight = Nothing+    , _rWidth = Nothing+    }++-- | The screen resolution\'s height, expressed in pixels.+rHeight :: Lens' Resolution (Maybe Int)+rHeight = lens _rHeight (\ s a -> s{_rHeight = a});++-- | The screen resolution\'s width, expressed in pixels.+rWidth :: Lens' Resolution (Maybe Int)+rWidth = lens _rWidth (\ s a -> s{_rWidth = a});++instance FromJSON Resolution where+        parseJSON+          = withObject "Resolution"+              (\ x ->+                 Resolution' <$> (x .:? "height") <*> (x .:? "width"))++-- | Represents a condition for a device pool.+--+-- /See:/ 'rule' smart constructor.+data Rule = Rule'+    { _rAttribute :: !(Maybe DeviceAttribute)+    , _rOperator  :: !(Maybe RuleOperator)+    , _rValue     :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'Rule' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rAttribute'+--+-- * 'rOperator'+--+-- * 'rValue'+rule+    :: Rule+rule =+    Rule'+    { _rAttribute = Nothing+    , _rOperator = Nothing+    , _rValue = Nothing+    }++-- | The rule\'s attribute.+--+-- Allowed values include:+--+-- -   ARN: The ARN.+--+-- -   FORM_FACTOR: The form factor (for example, phone or tablet).+--+-- -   MANUFACTURER: The manufacturer.+--+-- -   PLATFORM: The platform (for example, Android or iOS).+--+rAttribute :: Lens' Rule (Maybe DeviceAttribute)+rAttribute = lens _rAttribute (\ s a -> s{_rAttribute = a});++-- | The rule\'s operator.+--+-- -   EQUALS: The equals operator.+--+-- -   GREATER_THAN: The greater-than operator.+--+-- -   IN: The in operator.+--+-- -   LESS_THAN: The less-than operator.+--+-- -   NOT_IN: The not-in operator.+--+rOperator :: Lens' Rule (Maybe RuleOperator)+rOperator = lens _rOperator (\ s a -> s{_rOperator = a});++-- | The rule\'s value.+rValue :: Lens' Rule (Maybe Text)+rValue = lens _rValue (\ s a -> s{_rValue = a});++instance FromJSON Rule where+        parseJSON+          = withObject "Rule"+              (\ x ->+                 Rule' <$>+                   (x .:? "attribute") <*> (x .:? "operator") <*>+                     (x .:? "value"))++instance ToJSON Rule where+        toJSON Rule'{..}+          = object+              ["attribute" .= _rAttribute,+               "operator" .= _rOperator, "value" .= _rValue]++-- | Represents an app on a set of devices with a specific test and+-- configuration.+--+-- /See:/ 'run' smart constructor.+data Run = Run'+    { _runStatus        :: !(Maybe ExecutionStatus)+    , _runBillingMethod :: !(Maybe BillingMethod)+    , _runCounters      :: !(Maybe Counters)+    , _runPlatform      :: !(Maybe DevicePlatform)+    , _runArn           :: !(Maybe Text)+    , _runCreated       :: !(Maybe POSIX)+    , _runCompletedJobs :: !(Maybe Int)+    , _runStopped       :: !(Maybe POSIX)+    , _runResult        :: !(Maybe ExecutionResult)+    , _runName          :: !(Maybe Text)+    , _runType          :: !(Maybe TestType)+    , _runMessage       :: !(Maybe Text)+    , _runTotalJobs     :: !(Maybe Int)+    , _runStarted       :: !(Maybe POSIX)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'Run' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'runStatus'+--+-- * 'runBillingMethod'+--+-- * 'runCounters'+--+-- * 'runPlatform'+--+-- * 'runArn'+--+-- * 'runCreated'+--+-- * 'runCompletedJobs'+--+-- * 'runStopped'+--+-- * 'runResult'+--+-- * 'runName'+--+-- * 'runType'+--+-- * 'runMessage'+--+-- * 'runTotalJobs'+--+-- * 'runStarted'+run+    :: Run+run =+    Run'+    { _runStatus = Nothing+    , _runBillingMethod = Nothing+    , _runCounters = Nothing+    , _runPlatform = Nothing+    , _runArn = Nothing+    , _runCreated = Nothing+    , _runCompletedJobs = Nothing+    , _runStopped = Nothing+    , _runResult = Nothing+    , _runName = Nothing+    , _runType = Nothing+    , _runMessage = Nothing+    , _runTotalJobs = Nothing+    , _runStarted = Nothing+    }++-- | The run\'s status.+--+-- Allowed values include:+--+-- -   COMPLETED: A completed status.+--+-- -   PENDING: A pending status.+--+-- -   PROCESSING: A processing status.+--+-- -   RUNNING: A running status.+--+-- -   SCHEDULING: A scheduling status.+--+runStatus :: Lens' Run (Maybe ExecutionStatus)+runStatus = lens _runStatus (\ s a -> s{_runStatus = a});++-- | Specifies the billing method for a test run: 'metered' or 'unmetered'.+-- If the parameter is not specified, the default value is 'unmetered'.+runBillingMethod :: Lens' Run (Maybe BillingMethod)+runBillingMethod = lens _runBillingMethod (\ s a -> s{_runBillingMethod = a});++-- | The run\'s result counters.+runCounters :: Lens' Run (Maybe Counters)+runCounters = lens _runCounters (\ s a -> s{_runCounters = a});++-- | The run\'s platform.+--+-- Allowed values include:+--+-- -   ANDROID: The Android platform.+--+-- -   IOS: The iOS platform.+--+runPlatform :: Lens' Run (Maybe DevicePlatform)+runPlatform = lens _runPlatform (\ s a -> s{_runPlatform = a});++-- | The run\'s ARN.+runArn :: Lens' Run (Maybe Text)+runArn = lens _runArn (\ s a -> s{_runArn = a});++-- | When the run was created.+runCreated :: Lens' Run (Maybe UTCTime)+runCreated = lens _runCreated (\ s a -> s{_runCreated = a}) . mapping _Time;++-- | The total number of completed jobs.+runCompletedJobs :: Lens' Run (Maybe Int)+runCompletedJobs = lens _runCompletedJobs (\ s a -> s{_runCompletedJobs = a});++-- | The run\'s stop time.+runStopped :: Lens' Run (Maybe UTCTime)+runStopped = lens _runStopped (\ s a -> s{_runStopped = a}) . mapping _Time;++-- | The run\'s result.+--+-- Allowed values include:+--+-- -   ERRORED: An error condition.+--+-- -   FAILED: A failed condition.+--+-- -   SKIPPED: A skipped condition.+--+-- -   STOPPED: A stopped condition.+--+-- -   PASSED: A passing condition.+--+-- -   PENDING: A pending condition.+--+-- -   WARNED: A warning condition.+--+runResult :: Lens' Run (Maybe ExecutionResult)+runResult = lens _runResult (\ s a -> s{_runResult = a});++-- | The run\'s name.+runName :: Lens' Run (Maybe Text)+runName = lens _runName (\ s a -> s{_runName = a});++-- | The run\'s type.+--+-- Must be one of the following values:+--+-- -   BUILTIN_FUZZ: The built-in fuzz type.+--+-- -   BUILTIN_EXPLORER: For Android, an app explorer that will traverse an+--     Android app, interacting with it and capturing screenshots at the+--     same time.+--+-- -   APPIUM_JAVA_JUNIT: The Appium Java JUnit type.+--+-- -   APPIUM_JAVA_TESTNG: The Appium Java TestNG type.+--+-- -   CALABASH: The Calabash type.+--+-- -   INSTRUMENTATION: The Instrumentation type.+--+-- -   UIAUTOMATION: The uiautomation type.+--+-- -   UIAUTOMATOR: The uiautomator type.+--+-- -   XCTEST: The XCode test type.+--+runType :: Lens' Run (Maybe TestType)+runType = lens _runType (\ s a -> s{_runType = a});++-- | A message about the run\'s result.+runMessage :: Lens' Run (Maybe Text)+runMessage = lens _runMessage (\ s a -> s{_runMessage = a});++-- | The total number of jobs for the run.+runTotalJobs :: Lens' Run (Maybe Int)+runTotalJobs = lens _runTotalJobs (\ s a -> s{_runTotalJobs = a});++-- | The run\'s start time.+runStarted :: Lens' Run (Maybe UTCTime)+runStarted = lens _runStarted (\ s a -> s{_runStarted = a}) . mapping _Time;++instance FromJSON Run where+        parseJSON+          = withObject "Run"+              (\ x ->+                 Run' <$>+                   (x .:? "status") <*> (x .:? "billingMethod") <*>+                     (x .:? "counters")+                     <*> (x .:? "platform")+                     <*> (x .:? "arn")+                     <*> (x .:? "created")+                     <*> (x .:? "completedJobs")+                     <*> (x .:? "stopped")+                     <*> (x .:? "result")+                     <*> (x .:? "name")+                     <*> (x .:? "type")+                     <*> (x .:? "message")+                     <*> (x .:? "totalJobs")+                     <*> (x .:? "started"))++-- | Represents a sample of performance data.+--+-- /See:/ 'sample' smart constructor.+data Sample = Sample'+    { _sArn  :: !(Maybe Text)+    , _sUrl  :: !(Maybe Text)+    , _sType :: !(Maybe SampleType)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'Sample' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sArn'+--+-- * 'sUrl'+--+-- * 'sType'+sample+    :: Sample+sample =+    Sample'+    { _sArn = Nothing+    , _sUrl = Nothing+    , _sType = Nothing+    }++-- | The sample\'s ARN.+sArn :: Lens' Sample (Maybe Text)+sArn = lens _sArn (\ s a -> s{_sArn = a});++-- | The pre-signed Amazon S3 URL that can be used with a corresponding GET+-- request to download the sample\'s file.+sUrl :: Lens' Sample (Maybe Text)+sUrl = lens _sUrl (\ s a -> s{_sUrl = a});++-- | The sample\'s type.+--+-- Must be one of the following values:+--+-- -   CPU: A CPU sample type. This is expressed as the app processing CPU+--     time (including child processes) as reported by process, as a+--     percentage.+--+-- -   MEMORY: A memory usage sample type. This is expressed as the total+--     proportional set size of an app process, in kilobytes.+--+-- -   NATIVE_AVG_DRAWTIME+--+-- -   NATIVE_FPS+--+-- -   NATIVE_FRAMES+--+-- -   NATIVE_MAX_DRAWTIME+--+-- -   NATIVE_MIN_DRAWTIME+--+-- -   OPENGL_AVG_DRAWTIME+--+-- -   OPENGL_FPS+--+-- -   OPENGL_FRAMES+--+-- -   OPENGL_MAX_DRAWTIME+--+-- -   OPENGL_MIN_DRAWTIME+--+-- -   RX+--+-- -   RX_RATE: The total number of bytes per second (TCP and UDP) that are+--     sent, by app process.+--+-- -   THREADS: A threads sample type. This is expressed as the total+--     number of threads per app process.+--+-- -   TX+--+-- -   TX_RATE: The total number of bytes per second (TCP and UDP) that are+--     received, by app process.+--+sType :: Lens' Sample (Maybe SampleType)+sType = lens _sType (\ s a -> s{_sType = a});++instance FromJSON Sample where+        parseJSON+          = withObject "Sample"+              (\ x ->+                 Sample' <$>+                   (x .:? "arn") <*> (x .:? "url") <*> (x .:? "type"))++-- | Represents the settings for a run. Includes things like location, radio+-- states, auxiliary apps, and network profiles.+--+-- /See:/ 'scheduleRunConfiguration' smart constructor.+data ScheduleRunConfiguration = ScheduleRunConfiguration'+    { _srcBillingMethod       :: !(Maybe BillingMethod)+    , _srcRadios              :: !(Maybe Radios)+    , _srcLocation            :: !(Maybe Location)+    , _srcLocale              :: !(Maybe Text)+    , _srcNetworkProfileARN   :: !(Maybe Text)+    , _srcExtraDataPackageARN :: !(Maybe Text)+    , _srcAuxiliaryApps       :: !(Maybe [Text])+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ScheduleRunConfiguration' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'srcBillingMethod'+--+-- * 'srcRadios'+--+-- * 'srcLocation'+--+-- * 'srcLocale'+--+-- * 'srcNetworkProfileARN'+--+-- * 'srcExtraDataPackageARN'+--+-- * 'srcAuxiliaryApps'+scheduleRunConfiguration+    :: ScheduleRunConfiguration+scheduleRunConfiguration =+    ScheduleRunConfiguration'+    { _srcBillingMethod = Nothing+    , _srcRadios = Nothing+    , _srcLocation = Nothing+    , _srcLocale = Nothing+    , _srcNetworkProfileARN = Nothing+    , _srcExtraDataPackageARN = Nothing+    , _srcAuxiliaryApps = Nothing+    }++-- | Specifies the billing method for a test run: 'metered' or 'unmetered'.+-- If the parameter is not specified, the default value is 'unmetered'.+srcBillingMethod :: Lens' ScheduleRunConfiguration (Maybe BillingMethod)+srcBillingMethod = lens _srcBillingMethod (\ s a -> s{_srcBillingMethod = a});++-- | Information about the radio states for the run.+srcRadios :: Lens' ScheduleRunConfiguration (Maybe Radios)+srcRadios = lens _srcRadios (\ s a -> s{_srcRadios = a});++-- | Information about the location that is used for the run.+srcLocation :: Lens' ScheduleRunConfiguration (Maybe Location)+srcLocation = lens _srcLocation (\ s a -> s{_srcLocation = a});++-- | Information about the locale that is used for the run.+srcLocale :: Lens' ScheduleRunConfiguration (Maybe Text)+srcLocale = lens _srcLocale (\ s a -> s{_srcLocale = a});++-- | Reserved for internal use.+srcNetworkProfileARN :: Lens' ScheduleRunConfiguration (Maybe Text)+srcNetworkProfileARN = lens _srcNetworkProfileARN (\ s a -> s{_srcNetworkProfileARN = a});++-- | The ARN of the extra data for the run. The extra data is a .zip file+-- that AWS Device Farm will extract to external data for Android or the+-- app\'s sandbox for iOS.+srcExtraDataPackageARN :: Lens' ScheduleRunConfiguration (Maybe Text)+srcExtraDataPackageARN = lens _srcExtraDataPackageARN (\ s a -> s{_srcExtraDataPackageARN = a});++-- | A list of auxiliary apps for the run.+srcAuxiliaryApps :: Lens' ScheduleRunConfiguration [Text]+srcAuxiliaryApps = lens _srcAuxiliaryApps (\ s a -> s{_srcAuxiliaryApps = a}) . _Default . _Coerce;++instance ToJSON ScheduleRunConfiguration where+        toJSON ScheduleRunConfiguration'{..}+          = object+              ["billingMethod" .= _srcBillingMethod,+               "radios" .= _srcRadios, "location" .= _srcLocation,+               "locale" .= _srcLocale,+               "networkProfileArn" .= _srcNetworkProfileARN,+               "extraDataPackageArn" .= _srcExtraDataPackageARN,+               "auxiliaryApps" .= _srcAuxiliaryApps]++-- | Represents additional test settings.+--+-- /See:/ 'scheduleRunTest' smart constructor.+data ScheduleRunTest = ScheduleRunTest'+    { _srtTestPackageARN :: !(Maybe Text)+    , _srtParameters     :: !(Maybe (Map Text Text))+    , _srtFilter         :: !(Maybe Text)+    , _srtType           :: !TestType+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ScheduleRunTest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'srtTestPackageARN'+--+-- * 'srtParameters'+--+-- * 'srtFilter'+--+-- * 'srtType'+scheduleRunTest+    :: TestType -- ^ 'srtType'+    -> ScheduleRunTest+scheduleRunTest pType_ =+    ScheduleRunTest'+    { _srtTestPackageARN = Nothing+    , _srtParameters = Nothing+    , _srtFilter = Nothing+    , _srtType = pType_+    }++-- | The ARN of the uploaded test that will be run.+srtTestPackageARN :: Lens' ScheduleRunTest (Maybe Text)+srtTestPackageARN = lens _srtTestPackageARN (\ s a -> s{_srtTestPackageARN = a});++-- | The test\'s parameters, such as test framework parameters and fixture+-- settings.+srtParameters :: Lens' ScheduleRunTest (HashMap Text Text)+srtParameters = lens _srtParameters (\ s a -> s{_srtParameters = a}) . _Default . _Map;++-- | The test\'s filter.+srtFilter :: Lens' ScheduleRunTest (Maybe Text)+srtFilter = lens _srtFilter (\ s a -> s{_srtFilter = a});++-- | The test\'s type.+--+-- Must be one of the following values:+--+-- -   BUILTIN_FUZZ: The built-in fuzz type.+--+-- -   BUILTIN_EXPLORER: For Android, an app explorer that will traverse an+--     Android app, interacting with it and capturing screenshots at the+--     same time.+--+-- -   APPIUM_JAVA_JUNIT: The Appium Java JUnit type.+--+-- -   APPIUM_JAVA_TESTNG: The Appium Java TestNG type.+--+-- -   CALABASH: The Calabash type.+--+-- -   INSTRUMENTATION: The Instrumentation type.+--+-- -   UIAUTOMATION: The uiautomation type.+--+-- -   UIAUTOMATOR: The uiautomator type.+--+-- -   XCTEST: The XCode test type.+--+srtType :: Lens' ScheduleRunTest TestType+srtType = lens _srtType (\ s a -> s{_srtType = a});++instance ToJSON ScheduleRunTest where+        toJSON ScheduleRunTest'{..}+          = object+              ["testPackageArn" .= _srtTestPackageARN,+               "parameters" .= _srtParameters,+               "filter" .= _srtFilter, "type" .= _srtType]++-- | Represents a collection of one or more tests.+--+-- /See:/ 'suite' smart constructor.+data Suite = Suite'+    { _suiStatus   :: !(Maybe ExecutionStatus)+    , _suiCounters :: !(Maybe Counters)+    , _suiArn      :: !(Maybe Text)+    , _suiCreated  :: !(Maybe POSIX)+    , _suiStopped  :: !(Maybe POSIX)+    , _suiResult   :: !(Maybe ExecutionResult)+    , _suiName     :: !(Maybe Text)+    , _suiType     :: !(Maybe TestType)+    , _suiMessage  :: !(Maybe Text)+    , _suiStarted  :: !(Maybe POSIX)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'Suite' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'suiStatus'+--+-- * 'suiCounters'+--+-- * 'suiArn'+--+-- * 'suiCreated'+--+-- * 'suiStopped'+--+-- * 'suiResult'+--+-- * 'suiName'+--+-- * 'suiType'+--+-- * 'suiMessage'+--+-- * 'suiStarted'+suite+    :: Suite+suite =+    Suite'+    { _suiStatus = Nothing+    , _suiCounters = Nothing+    , _suiArn = Nothing+    , _suiCreated = Nothing+    , _suiStopped = Nothing+    , _suiResult = Nothing+    , _suiName = Nothing+    , _suiType = Nothing+    , _suiMessage = Nothing+    , _suiStarted = Nothing+    }++-- | The suite\'s status.+--+-- Allowed values include:+--+-- -   COMPLETED: A completed status.+--+-- -   PENDING: A pending status.+--+-- -   PROCESSING: A processing status.+--+-- -   RUNNING: A running status.+--+-- -   SCHEDULING: A scheduling status.+--+suiStatus :: Lens' Suite (Maybe ExecutionStatus)+suiStatus = lens _suiStatus (\ s a -> s{_suiStatus = a});++-- | The suite\'s result counters.+suiCounters :: Lens' Suite (Maybe Counters)+suiCounters = lens _suiCounters (\ s a -> s{_suiCounters = a});++-- | The suite\'s ARN.+suiArn :: Lens' Suite (Maybe Text)+suiArn = lens _suiArn (\ s a -> s{_suiArn = a});++-- | When the suite was created.+suiCreated :: Lens' Suite (Maybe UTCTime)+suiCreated = lens _suiCreated (\ s a -> s{_suiCreated = a}) . mapping _Time;++-- | The suite\'s stop time.+suiStopped :: Lens' Suite (Maybe UTCTime)+suiStopped = lens _suiStopped (\ s a -> s{_suiStopped = a}) . mapping _Time;++-- | The suite\'s result.+--+-- Allowed values include:+--+-- -   ERRORED: An error condition.+--+-- -   FAILED: A failed condition.+--+-- -   SKIPPED: A skipped condition.+--+-- -   STOPPED: A stopped condition.+--+-- -   PASSED: A passing condition.+--+-- -   PENDING: A pending condition.+--+-- -   WARNED: A warning condition.+--+suiResult :: Lens' Suite (Maybe ExecutionResult)+suiResult = lens _suiResult (\ s a -> s{_suiResult = a});++-- | The suite\'s name.+suiName :: Lens' Suite (Maybe Text)+suiName = lens _suiName (\ s a -> s{_suiName = a});++-- | The suite\'s type.+--+-- Must be one of the following values:+--+-- -   BUILTIN_FUZZ: The built-in fuzz type.+--+-- -   BUILTIN_EXPLORER: For Android, an app explorer that will traverse an+--     Android app, interacting with it and capturing screenshots at the+--     same time.+--+-- -   APPIUM_JAVA_JUNIT: The Appium Java JUnit type.+--+-- -   APPIUM_JAVA_TESTNG: The Appium Java TestNG type.+--+-- -   CALABASH: The Calabash type.+--+-- -   INSTRUMENTATION: The Instrumentation type.+--+-- -   UIAUTOMATION: The uiautomation type.+--+-- -   UIAUTOMATOR: The uiautomator type.+--+-- -   XCTEST: The XCode test type.+--+suiType :: Lens' Suite (Maybe TestType)+suiType = lens _suiType (\ s a -> s{_suiType = a});++-- | A message about the suite\'s result.+suiMessage :: Lens' Suite (Maybe Text)+suiMessage = lens _suiMessage (\ s a -> s{_suiMessage = a});++-- | The suite\'s start time.+suiStarted :: Lens' Suite (Maybe UTCTime)+suiStarted = lens _suiStarted (\ s a -> s{_suiStarted = a}) . mapping _Time;++instance FromJSON Suite where+        parseJSON+          = withObject "Suite"+              (\ x ->+                 Suite' <$>+                   (x .:? "status") <*> (x .:? "counters") <*>+                     (x .:? "arn")+                     <*> (x .:? "created")+                     <*> (x .:? "stopped")+                     <*> (x .:? "result")+                     <*> (x .:? "name")+                     <*> (x .:? "type")+                     <*> (x .:? "message")+                     <*> (x .:? "started"))++-- | Represents a condition that is evaluated.+--+-- /See:/ 'test' smart constructor.+data Test = Test'+    { _tStatus   :: !(Maybe ExecutionStatus)+    , _tCounters :: !(Maybe Counters)+    , _tArn      :: !(Maybe Text)+    , _tCreated  :: !(Maybe POSIX)+    , _tStopped  :: !(Maybe POSIX)+    , _tResult   :: !(Maybe ExecutionResult)+    , _tName     :: !(Maybe Text)+    , _tType     :: !(Maybe TestType)+    , _tMessage  :: !(Maybe Text)+    , _tStarted  :: !(Maybe POSIX)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'Test' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tStatus'+--+-- * 'tCounters'+--+-- * 'tArn'+--+-- * 'tCreated'+--+-- * 'tStopped'+--+-- * 'tResult'+--+-- * 'tName'+--+-- * 'tType'+--+-- * 'tMessage'+--+-- * 'tStarted'+test+    :: Test+test =+    Test'+    { _tStatus = Nothing+    , _tCounters = Nothing+    , _tArn = Nothing+    , _tCreated = Nothing+    , _tStopped = Nothing+    , _tResult = Nothing+    , _tName = Nothing+    , _tType = Nothing+    , _tMessage = Nothing+    , _tStarted = Nothing+    }++-- | The test\'s status.+--+-- Allowed values include:+--+-- -   COMPLETED: A completed status.+--+-- -   PENDING: A pending status.+--+-- -   PROCESSING: A processing status.+--+-- -   RUNNING: A running status.+--+-- -   SCHEDULING: A scheduling status.+--+tStatus :: Lens' Test (Maybe ExecutionStatus)+tStatus = lens _tStatus (\ s a -> s{_tStatus = a});++-- | The test\'s result counters.+tCounters :: Lens' Test (Maybe Counters)+tCounters = lens _tCounters (\ s a -> s{_tCounters = a});++-- | The test\'s ARN.+tArn :: Lens' Test (Maybe Text)+tArn = lens _tArn (\ s a -> s{_tArn = a});++-- | When the test was created.+tCreated :: Lens' Test (Maybe UTCTime)+tCreated = lens _tCreated (\ s a -> s{_tCreated = a}) . mapping _Time;++-- | The test\'s stop time.+tStopped :: Lens' Test (Maybe UTCTime)+tStopped = lens _tStopped (\ s a -> s{_tStopped = a}) . mapping _Time;++-- | The test\'s result.+--+-- Allowed values include:+--+-- -   ERRORED: An error condition.+--+-- -   FAILED: A failed condition.+--+-- -   SKIPPED: A skipped condition.+--+-- -   STOPPED: A stopped condition.+--+-- -   PASSED: A passing condition.+--+-- -   PENDING: A pending condition.+--+-- -   WARNED: A warning condition.+--+tResult :: Lens' Test (Maybe ExecutionResult)+tResult = lens _tResult (\ s a -> s{_tResult = a});++-- | The test\'s name.+tName :: Lens' Test (Maybe Text)+tName = lens _tName (\ s a -> s{_tName = a});++-- | The test\'s type.+--+-- Must be one of the following values:+--+-- -   BUILTIN_FUZZ: The built-in fuzz type.+--+-- -   BUILTIN_EXPLORER: For Android, an app explorer that will traverse an+--     Android app, interacting with it and capturing screenshots at the+--     same time.+--+-- -   APPIUM_JAVA_JUNIT: The Appium Java JUnit type.+--+-- -   APPIUM_JAVA_TESTNG: The Appium Java TestNG type.+--+-- -   CALABASH: The Calabash type.+--+-- -   INSTRUMENTATION: The Instrumentation type.+--+-- -   UIAUTOMATION: The uiautomation type.+--+-- -   UIAUTOMATOR: The uiautomator type.+--+-- -   XCTEST: The XCode test type.+--+tType :: Lens' Test (Maybe TestType)+tType = lens _tType (\ s a -> s{_tType = a});++-- | A message about the test\'s result.+tMessage :: Lens' Test (Maybe Text)+tMessage = lens _tMessage (\ s a -> s{_tMessage = a});++-- | The test\'s start time.+tStarted :: Lens' Test (Maybe UTCTime)+tStarted = lens _tStarted (\ s a -> s{_tStarted = a}) . mapping _Time;++instance FromJSON Test where+        parseJSON+          = withObject "Test"+              (\ x ->+                 Test' <$>+                   (x .:? "status") <*> (x .:? "counters") <*>+                     (x .:? "arn")+                     <*> (x .:? "created")+                     <*> (x .:? "stopped")+                     <*> (x .:? "result")+                     <*> (x .:? "name")+                     <*> (x .:? "type")+                     <*> (x .:? "message")+                     <*> (x .:? "started"))++-- | A collection of one or more problems, grouped by their result.+--+-- /See:/ 'uniqueProblem' smart constructor.+data UniqueProblem = UniqueProblem'+    { _upProblems :: !(Maybe [Problem])+    , _upMessage  :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'UniqueProblem' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'upProblems'+--+-- * 'upMessage'+uniqueProblem+    :: UniqueProblem+uniqueProblem =+    UniqueProblem'+    { _upProblems = Nothing+    , _upMessage = Nothing+    }++-- | Information about the problems.+upProblems :: Lens' UniqueProblem [Problem]+upProblems = lens _upProblems (\ s a -> s{_upProblems = a}) . _Default . _Coerce;++-- | A message about the unique problems\' result.+upMessage :: Lens' UniqueProblem (Maybe Text)+upMessage = lens _upMessage (\ s a -> s{_upMessage = a});++instance FromJSON UniqueProblem where+        parseJSON+          = withObject "UniqueProblem"+              (\ x ->+                 UniqueProblem' <$>+                   (x .:? "problems" .!= mempty) <*> (x .:? "message"))++-- | An app or a set of one or more tests to upload or that have been+-- uploaded.+--+-- /See:/ 'upload' smart constructor.+data Upload = Upload'+    { _uStatus      :: !(Maybe UploadStatus)+    , _uArn         :: !(Maybe Text)+    , _uCreated     :: !(Maybe POSIX)+    , _uUrl         :: !(Maybe Text)+    , _uName        :: !(Maybe Text)+    , _uMetadata    :: !(Maybe Text)+    , _uType        :: !(Maybe UploadType)+    , _uMessage     :: !(Maybe Text)+    , _uContentType :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'Upload' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'uStatus'+--+-- * 'uArn'+--+-- * 'uCreated'+--+-- * 'uUrl'+--+-- * 'uName'+--+-- * 'uMetadata'+--+-- * 'uType'+--+-- * 'uMessage'+--+-- * 'uContentType'+upload+    :: Upload+upload =+    Upload'+    { _uStatus = Nothing+    , _uArn = Nothing+    , _uCreated = Nothing+    , _uUrl = Nothing+    , _uName = Nothing+    , _uMetadata = Nothing+    , _uType = Nothing+    , _uMessage = Nothing+    , _uContentType = Nothing+    }++-- | The upload\'s status.+--+-- Must be one of the following values:+--+-- -   FAILED: A failed status.+--+-- -   INITIALIZED: An initialized status.+--+-- -   PROCESSING: A processing status.+--+-- -   SUCCEEDED: A succeeded status.+--+uStatus :: Lens' Upload (Maybe UploadStatus)+uStatus = lens _uStatus (\ s a -> s{_uStatus = a});++-- | The upload\'s ARN.+uArn :: Lens' Upload (Maybe Text)+uArn = lens _uArn (\ s a -> s{_uArn = a});++-- | When the upload was created.+uCreated :: Lens' Upload (Maybe UTCTime)+uCreated = lens _uCreated (\ s a -> s{_uCreated = a}) . mapping _Time;++-- | The pre-signed Amazon S3 URL that was used to store a file through a+-- corresponding PUT request.+uUrl :: Lens' Upload (Maybe Text)+uUrl = lens _uUrl (\ s a -> s{_uUrl = a});++-- | The upload\'s file name.+uName :: Lens' Upload (Maybe Text)+uName = lens _uName (\ s a -> s{_uName = a});++-- | The upload\'s metadata. For example, for Android, this contains+-- information that is parsed from the manifest and is displayed in the AWS+-- Device Farm console after the associated app is uploaded.+uMetadata :: Lens' Upload (Maybe Text)+uMetadata = lens _uMetadata (\ s a -> s{_uMetadata = a});++-- | The upload\'s type.+--+-- Must be one of the following values:+--+-- -   ANDROID_APP: An Android upload.+--+-- -   IOS_APP: An iOS upload.+--+-- -   EXTERNAL_DATA: An external data upload.+--+-- -   APPIUM_JAVA_JUNIT_TEST_PACKAGE: An Appium Java JUnit test package+--     upload.+--+-- -   APPIUM_JAVA_TESTNG_TEST_PACKAGE: An Appium Java TestNG test package+--     upload.+--+-- -   CALABASH_TEST_PACKAGE: A Calabash test package upload.+--+-- -   INSTRUMENTATION_TEST_PACKAGE: An instrumentation upload.+--+-- -   UIAUTOMATOR_TEST_PACKAGE: A uiautomator test package upload.+--+-- -   XCTEST_TEST_PACKAGE: An XCode test package upload.+--+uType :: Lens' Upload (Maybe UploadType)+uType = lens _uType (\ s a -> s{_uType = a});++-- | A message about the upload\'s result.+uMessage :: Lens' Upload (Maybe Text)+uMessage = lens _uMessage (\ s a -> s{_uMessage = a});++-- | The upload\'s content type (for example, \"application\/octet-stream\").+uContentType :: Lens' Upload (Maybe Text)+uContentType = lens _uContentType (\ s a -> s{_uContentType = a});++instance FromJSON Upload where+        parseJSON+          = withObject "Upload"+              (\ x ->+                 Upload' <$>+                   (x .:? "status") <*> (x .:? "arn") <*>+                     (x .:? "created")+                     <*> (x .:? "url")+                     <*> (x .:? "name")+                     <*> (x .:? "metadata")+                     <*> (x .:? "type")+                     <*> (x .:? "message")+                     <*> (x .:? "contentType"))
+ gen/Network/AWS/DeviceFarm/Types/Sum.hs view
@@ -0,0 +1,568 @@+{-# 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.DeviceFarm.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.DeviceFarm.Types.Sum where++import           Network.AWS.Prelude++data ArtifactCategory+    = ACFile+    | ACLog+    | ACScreenshot+    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)++instance FromText ArtifactCategory where+    parser = takeLowerText >>= \case+        "file" -> pure ACFile+        "log" -> pure ACLog+        "screenshot" -> pure ACScreenshot+        e -> fromTextError $ "Failure parsing ArtifactCategory from value: '" <> e+           <> "'. Accepted values: file, log, screenshot"++instance ToText ArtifactCategory where+    toText = \case+        ACFile -> "file"+        ACLog -> "log"+        ACScreenshot -> "screenshot"++instance Hashable     ArtifactCategory+instance ToByteString ArtifactCategory+instance ToQuery      ArtifactCategory+instance ToHeader     ArtifactCategory++instance ToJSON ArtifactCategory where+    toJSON = toJSONText++data ArtifactType+    = AppiumJavaOutput+    | AppiumJavaXMLOutput+    | AppiumServerOutput+    | AutomationOutput+    | CalabashJSONOutput+    | CalabashJavaXMLOutput+    | CalabashPrettyOutput+    | CalabashStandardOutput+    | DeviceLog+    | ExerciserMonkeyOutput+    | InstrumentationOutput+    | MessageLog+    | ResultLog+    | Screenshot+    | ServiceLog+    | Unknown+    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)++instance FromText ArtifactType where+    parser = takeLowerText >>= \case+        "appium_java_output" -> pure AppiumJavaOutput+        "appium_java_xml_output" -> pure AppiumJavaXMLOutput+        "appium_server_output" -> pure AppiumServerOutput+        "automation_output" -> pure AutomationOutput+        "calabash_json_output" -> pure CalabashJSONOutput+        "calabash_java_xml_output" -> pure CalabashJavaXMLOutput+        "calabash_pretty_output" -> pure CalabashPrettyOutput+        "calabash_standard_output" -> pure CalabashStandardOutput+        "device_log" -> pure DeviceLog+        "exerciser_monkey_output" -> pure ExerciserMonkeyOutput+        "instrumentation_output" -> pure InstrumentationOutput+        "message_log" -> pure MessageLog+        "result_log" -> pure ResultLog+        "screenshot" -> pure Screenshot+        "service_log" -> pure ServiceLog+        "unknown" -> pure Unknown+        e -> fromTextError $ "Failure parsing ArtifactType from value: '" <> e+           <> "'. Accepted values: appium_java_output, appium_java_xml_output, appium_server_output, automation_output, calabash_json_output, calabash_java_xml_output, calabash_pretty_output, calabash_standard_output, device_log, exerciser_monkey_output, instrumentation_output, message_log, result_log, screenshot, service_log, unknown"++instance ToText ArtifactType where+    toText = \case+        AppiumJavaOutput -> "appium_java_output"+        AppiumJavaXMLOutput -> "appium_java_xml_output"+        AppiumServerOutput -> "appium_server_output"+        AutomationOutput -> "automation_output"+        CalabashJSONOutput -> "calabash_json_output"+        CalabashJavaXMLOutput -> "calabash_java_xml_output"+        CalabashPrettyOutput -> "calabash_pretty_output"+        CalabashStandardOutput -> "calabash_standard_output"+        DeviceLog -> "device_log"+        ExerciserMonkeyOutput -> "exerciser_monkey_output"+        InstrumentationOutput -> "instrumentation_output"+        MessageLog -> "message_log"+        ResultLog -> "result_log"+        Screenshot -> "screenshot"+        ServiceLog -> "service_log"+        Unknown -> "unknown"++instance Hashable     ArtifactType+instance ToByteString ArtifactType+instance ToQuery      ArtifactType+instance ToHeader     ArtifactType++instance FromJSON ArtifactType where+    parseJSON = parseJSONText "ArtifactType"++data BillingMethod+    = Metered+    | Unmetered+    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)++instance FromText BillingMethod where+    parser = takeLowerText >>= \case+        "metered" -> pure Metered+        "unmetered" -> pure Unmetered+        e -> fromTextError $ "Failure parsing BillingMethod from value: '" <> e+           <> "'. Accepted values: metered, unmetered"++instance ToText BillingMethod where+    toText = \case+        Metered -> "metered"+        Unmetered -> "unmetered"++instance Hashable     BillingMethod+instance ToByteString BillingMethod+instance ToQuery      BillingMethod+instance ToHeader     BillingMethod++instance ToJSON BillingMethod where+    toJSON = toJSONText++instance FromJSON BillingMethod where+    parseJSON = parseJSONText "BillingMethod"++data DeviceAttribute+    = ARN+    | FormFactor+    | Manufacturer+    | Platform+    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)++instance FromText DeviceAttribute where+    parser = takeLowerText >>= \case+        "arn" -> pure ARN+        "form_factor" -> pure FormFactor+        "manufacturer" -> pure Manufacturer+        "platform" -> pure Platform+        e -> fromTextError $ "Failure parsing DeviceAttribute from value: '" <> e+           <> "'. Accepted values: arn, form_factor, manufacturer, platform"++instance ToText DeviceAttribute where+    toText = \case+        ARN -> "arn"+        FormFactor -> "form_factor"+        Manufacturer -> "manufacturer"+        Platform -> "platform"++instance Hashable     DeviceAttribute+instance ToByteString DeviceAttribute+instance ToQuery      DeviceAttribute+instance ToHeader     DeviceAttribute++instance ToJSON DeviceAttribute where+    toJSON = toJSONText++instance FromJSON DeviceAttribute where+    parseJSON = parseJSONText "DeviceAttribute"++data DeviceFormFactor+    = Phone+    | Tablet+    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)++instance FromText DeviceFormFactor where+    parser = takeLowerText >>= \case+        "phone" -> pure Phone+        "tablet" -> pure Tablet+        e -> fromTextError $ "Failure parsing DeviceFormFactor from value: '" <> e+           <> "'. Accepted values: phone, tablet"++instance ToText DeviceFormFactor where+    toText = \case+        Phone -> "phone"+        Tablet -> "tablet"++instance Hashable     DeviceFormFactor+instance ToByteString DeviceFormFactor+instance ToQuery      DeviceFormFactor+instance ToHeader     DeviceFormFactor++instance FromJSON DeviceFormFactor where+    parseJSON = parseJSONText "DeviceFormFactor"++data DevicePlatform+    = Android+    | Ios+    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)++instance FromText DevicePlatform where+    parser = takeLowerText >>= \case+        "android" -> pure Android+        "ios" -> pure Ios+        e -> fromTextError $ "Failure parsing DevicePlatform from value: '" <> e+           <> "'. Accepted values: android, ios"++instance ToText DevicePlatform where+    toText = \case+        Android -> "android"+        Ios -> "ios"++instance Hashable     DevicePlatform+instance ToByteString DevicePlatform+instance ToQuery      DevicePlatform+instance ToHeader     DevicePlatform++instance FromJSON DevicePlatform where+    parseJSON = parseJSONText "DevicePlatform"++data DevicePoolType+    = Curated+    | Private+    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)++instance FromText DevicePoolType where+    parser = takeLowerText >>= \case+        "curated" -> pure Curated+        "private" -> pure Private+        e -> fromTextError $ "Failure parsing DevicePoolType from value: '" <> e+           <> "'. Accepted values: curated, private"++instance ToText DevicePoolType where+    toText = \case+        Curated -> "curated"+        Private -> "private"++instance Hashable     DevicePoolType+instance ToByteString DevicePoolType+instance ToQuery      DevicePoolType+instance ToHeader     DevicePoolType++instance ToJSON DevicePoolType where+    toJSON = toJSONText++instance FromJSON DevicePoolType where+    parseJSON = parseJSONText "DevicePoolType"++data ExecutionResult+    = ERErrored+    | ERFailed+    | ERPassed+    | ERPending+    | ERSkipped+    | ERStopped+    | ERWarned+    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)++instance FromText ExecutionResult where+    parser = takeLowerText >>= \case+        "errored" -> pure ERErrored+        "failed" -> pure ERFailed+        "passed" -> pure ERPassed+        "pending" -> pure ERPending+        "skipped" -> pure ERSkipped+        "stopped" -> pure ERStopped+        "warned" -> pure ERWarned+        e -> fromTextError $ "Failure parsing ExecutionResult from value: '" <> e+           <> "'. Accepted values: errored, failed, passed, pending, skipped, stopped, warned"++instance ToText ExecutionResult where+    toText = \case+        ERErrored -> "errored"+        ERFailed -> "failed"+        ERPassed -> "passed"+        ERPending -> "pending"+        ERSkipped -> "skipped"+        ERStopped -> "stopped"+        ERWarned -> "warned"++instance Hashable     ExecutionResult+instance ToByteString ExecutionResult+instance ToQuery      ExecutionResult+instance ToHeader     ExecutionResult++instance FromJSON ExecutionResult where+    parseJSON = parseJSONText "ExecutionResult"++data ExecutionStatus+    = Completed+    | Pending+    | Processing+    | Running+    | Scheduling+    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)++instance FromText ExecutionStatus where+    parser = takeLowerText >>= \case+        "completed" -> pure Completed+        "pending" -> pure Pending+        "processing" -> pure Processing+        "running" -> pure Running+        "scheduling" -> pure Scheduling+        e -> fromTextError $ "Failure parsing ExecutionStatus from value: '" <> e+           <> "'. Accepted values: completed, pending, processing, running, scheduling"++instance ToText ExecutionStatus where+    toText = \case+        Completed -> "completed"+        Pending -> "pending"+        Processing -> "processing"+        Running -> "running"+        Scheduling -> "scheduling"++instance Hashable     ExecutionStatus+instance ToByteString ExecutionStatus+instance ToQuery      ExecutionStatus+instance ToHeader     ExecutionStatus++instance FromJSON ExecutionStatus where+    parseJSON = parseJSONText "ExecutionStatus"++data RuleOperator+    = Equals+    | GreaterThan+    | IN+    | LessThan+    | NotIn+    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)++instance FromText RuleOperator where+    parser = takeLowerText >>= \case+        "equals" -> pure Equals+        "greater_than" -> pure GreaterThan+        "in" -> pure IN+        "less_than" -> pure LessThan+        "not_in" -> pure NotIn+        e -> fromTextError $ "Failure parsing RuleOperator from value: '" <> e+           <> "'. Accepted values: equals, greater_than, in, less_than, not_in"++instance ToText RuleOperator where+    toText = \case+        Equals -> "equals"+        GreaterThan -> "greater_than"+        IN -> "in"+        LessThan -> "less_than"+        NotIn -> "not_in"++instance Hashable     RuleOperator+instance ToByteString RuleOperator+instance ToQuery      RuleOperator+instance ToHeader     RuleOperator++instance ToJSON RuleOperator where+    toJSON = toJSONText++instance FromJSON RuleOperator where+    parseJSON = parseJSONText "RuleOperator"++data SampleType+    = CPU+    | Memory+    | NativeAvgDrawtime+    | NativeFps+    | NativeFrames+    | NativeMaxDrawtime+    | NativeMinDrawtime+    | OpenglAvgDrawtime+    | OpenglFps+    | OpenglFrames+    | OpenglMaxDrawtime+    | OpenglMinDrawtime+    | RX+    | RxRate+    | TX+    | Threads+    | TxRate+    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)++instance FromText SampleType where+    parser = takeLowerText >>= \case+        "cpu" -> pure CPU+        "memory" -> pure Memory+        "native_avg_drawtime" -> pure NativeAvgDrawtime+        "native_fps" -> pure NativeFps+        "native_frames" -> pure NativeFrames+        "native_max_drawtime" -> pure NativeMaxDrawtime+        "native_min_drawtime" -> pure NativeMinDrawtime+        "opengl_avg_drawtime" -> pure OpenglAvgDrawtime+        "opengl_fps" -> pure OpenglFps+        "opengl_frames" -> pure OpenglFrames+        "opengl_max_drawtime" -> pure OpenglMaxDrawtime+        "opengl_min_drawtime" -> pure OpenglMinDrawtime+        "rx" -> pure RX+        "rx_rate" -> pure RxRate+        "tx" -> pure TX+        "threads" -> pure Threads+        "tx_rate" -> pure TxRate+        e -> fromTextError $ "Failure parsing SampleType from value: '" <> e+           <> "'. Accepted values: cpu, memory, native_avg_drawtime, native_fps, native_frames, native_max_drawtime, native_min_drawtime, opengl_avg_drawtime, opengl_fps, opengl_frames, opengl_max_drawtime, opengl_min_drawtime, rx, rx_rate, tx, threads, tx_rate"++instance ToText SampleType where+    toText = \case+        CPU -> "cpu"+        Memory -> "memory"+        NativeAvgDrawtime -> "native_avg_drawtime"+        NativeFps -> "native_fps"+        NativeFrames -> "native_frames"+        NativeMaxDrawtime -> "native_max_drawtime"+        NativeMinDrawtime -> "native_min_drawtime"+        OpenglAvgDrawtime -> "opengl_avg_drawtime"+        OpenglFps -> "opengl_fps"+        OpenglFrames -> "opengl_frames"+        OpenglMaxDrawtime -> "opengl_max_drawtime"+        OpenglMinDrawtime -> "opengl_min_drawtime"+        RX -> "rx"+        RxRate -> "rx_rate"+        TX -> "tx"+        Threads -> "threads"+        TxRate -> "tx_rate"++instance Hashable     SampleType+instance ToByteString SampleType+instance ToQuery      SampleType+instance ToHeader     SampleType++instance FromJSON SampleType where+    parseJSON = parseJSONText "SampleType"++data TestType+    = AppiumJavaJunit+    | AppiumJavaTestng+    | BuiltinExplorer+    | BuiltinFuzz+    | Calabash+    | Instrumentation+    | Uiautomation+    | Uiautomator+    | Xctest+    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)++instance FromText TestType where+    parser = takeLowerText >>= \case+        "appium_java_junit" -> pure AppiumJavaJunit+        "appium_java_testng" -> pure AppiumJavaTestng+        "builtin_explorer" -> pure BuiltinExplorer+        "builtin_fuzz" -> pure BuiltinFuzz+        "calabash" -> pure Calabash+        "instrumentation" -> pure Instrumentation+        "uiautomation" -> pure Uiautomation+        "uiautomator" -> pure Uiautomator+        "xctest" -> pure Xctest+        e -> fromTextError $ "Failure parsing TestType from value: '" <> e+           <> "'. Accepted values: appium_java_junit, appium_java_testng, builtin_explorer, builtin_fuzz, calabash, instrumentation, uiautomation, uiautomator, xctest"++instance ToText TestType where+    toText = \case+        AppiumJavaJunit -> "appium_java_junit"+        AppiumJavaTestng -> "appium_java_testng"+        BuiltinExplorer -> "builtin_explorer"+        BuiltinFuzz -> "builtin_fuzz"+        Calabash -> "calabash"+        Instrumentation -> "instrumentation"+        Uiautomation -> "uiautomation"+        Uiautomator -> "uiautomator"+        Xctest -> "xctest"++instance Hashable     TestType+instance ToByteString TestType+instance ToQuery      TestType+instance ToHeader     TestType++instance ToJSON TestType where+    toJSON = toJSONText++instance FromJSON TestType where+    parseJSON = parseJSONText "TestType"++data UploadStatus+    = USFailed+    | USInitialized+    | USProcessing+    | USSucceeded+    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)++instance FromText UploadStatus where+    parser = takeLowerText >>= \case+        "failed" -> pure USFailed+        "initialized" -> pure USInitialized+        "processing" -> pure USProcessing+        "succeeded" -> pure USSucceeded+        e -> fromTextError $ "Failure parsing UploadStatus from value: '" <> e+           <> "'. Accepted values: failed, initialized, processing, succeeded"++instance ToText UploadStatus where+    toText = \case+        USFailed -> "failed"+        USInitialized -> "initialized"+        USProcessing -> "processing"+        USSucceeded -> "succeeded"++instance Hashable     UploadStatus+instance ToByteString UploadStatus+instance ToQuery      UploadStatus+instance ToHeader     UploadStatus++instance FromJSON UploadStatus where+    parseJSON = parseJSONText "UploadStatus"++data UploadType+    = AndroidApp+    | AppiumJavaJunitTestPackage+    | AppiumJavaTestngTestPackage+    | CalabashTestPackage+    | ExternalData+    | InstrumentationTestPackage+    | IosApp+    | UiautomationTestPackage+    | UiautomatorTestPackage+    | XctestTestPackage+    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)++instance FromText UploadType where+    parser = takeLowerText >>= \case+        "android_app" -> pure AndroidApp+        "appium_java_junit_test_package" -> pure AppiumJavaJunitTestPackage+        "appium_java_testng_test_package" -> pure AppiumJavaTestngTestPackage+        "calabash_test_package" -> pure CalabashTestPackage+        "external_data" -> pure ExternalData+        "instrumentation_test_package" -> pure InstrumentationTestPackage+        "ios_app" -> pure IosApp+        "uiautomation_test_package" -> pure UiautomationTestPackage+        "uiautomator_test_package" -> pure UiautomatorTestPackage+        "xctest_test_package" -> pure XctestTestPackage+        e -> fromTextError $ "Failure parsing UploadType from value: '" <> e+           <> "'. Accepted values: android_app, appium_java_junit_test_package, appium_java_testng_test_package, calabash_test_package, external_data, instrumentation_test_package, ios_app, uiautomation_test_package, uiautomator_test_package, xctest_test_package"++instance ToText UploadType where+    toText = \case+        AndroidApp -> "android_app"+        AppiumJavaJunitTestPackage -> "appium_java_junit_test_package"+        AppiumJavaTestngTestPackage -> "appium_java_testng_test_package"+        CalabashTestPackage -> "calabash_test_package"+        ExternalData -> "external_data"+        InstrumentationTestPackage -> "instrumentation_test_package"+        IosApp -> "ios_app"+        UiautomationTestPackage -> "uiautomation_test_package"+        UiautomatorTestPackage -> "uiautomator_test_package"+        XctestTestPackage -> "xctest_test_package"++instance Hashable     UploadType+instance ToByteString UploadType+instance ToQuery      UploadType+instance ToHeader     UploadType++instance ToJSON UploadType where+    toJSON = toJSONText++instance FromJSON UploadType where+    parseJSON = parseJSONText "UploadType"
+ gen/Network/AWS/DeviceFarm/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.DeviceFarm.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.DeviceFarm.Waiters where++import           Network.AWS.DeviceFarm.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.DeviceFarm+import Test.AWS.DeviceFarm.Internal++main :: IO ()+main = defaultMain $ testGroup "DeviceFarm"+    [ testGroup "tests"    tests+    , testGroup "fixtures" fixtures+    ]
+ test/Test/AWS/DeviceFarm.hs view
@@ -0,0 +1,26 @@+{-# LANGUAGE OverloadedStrings #-}++-- Module      : Test.AWS.DeviceFarm+-- 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.DeviceFarm+    ( tests+    , fixtures+    ) where++import           Network.AWS.DeviceFarm+import           Test.AWS.Gen.DeviceFarm+import           Test.Tasty++tests :: [TestTree]+tests = []++fixtures :: [TestTree]+fixtures = []
+ test/Test/AWS/DeviceFarm/Internal.hs view
@@ -0,0 +1,16 @@+{-# LANGUAGE OverloadedStrings #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module      : Test.AWS.DeviceFarm.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.DeviceFarm.Internal where++import           Test.AWS.Prelude
+ test/Test/AWS/Gen/DeviceFarm.hs view
@@ -0,0 +1,464 @@+{-# 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.DeviceFarm+-- 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.DeviceFarm where++import Data.Proxy+import Test.AWS.Fixture+import Test.AWS.Prelude+import Test.Tasty+import Network.AWS.DeviceFarm+import Test.AWS.DeviceFarm.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"+--         [ testListProjects $+--             listProjects+--+--         , testGetDevicePoolCompatibility $+--             getDevicePoolCompatibility+--+--         , testListTests $+--             listTests+--+--         , testCreateUpload $+--             createUpload+--+--         , testListArtifacts $+--             listArtifacts+--+--         , testGetDevicePool $+--             getDevicePool+--+--         , testGetUpload $+--             getUpload+--+--         , testListDevicePools $+--             listDevicePools+--+--         , testGetTest $+--             getTest+--+--         , testCreateDevicePool $+--             createDevicePool+--+--         , testListRuns $+--             listRuns+--+--         , testListJobs $+--             listJobs+--+--         , testGetDevice $+--             getDevice+--+--         , testGetJob $+--             getJob+--+--         , testScheduleRun $+--             scheduleRun+--+--         , testGetRun $+--             getRun+--+--         , testListSamples $+--             listSamples+--+--         , testListSuites $+--             listSuites+--+--         , testGetAccountSettings $+--             getAccountSettings+--+--         , testListUploads $+--             listUploads+--+--         , testGetSuite $+--             getSuite+--+--         , testGetProject $+--             getProject+--+--         , testListDevices $+--             listDevices+--+--         , testListUniqueProblems $+--             listUniqueProblems+--+--         , testCreateProject $+--             createProject+--+--           ]++--     , testGroup "response"+--         [ testListProjectsResponse $+--             listProjectsResponse+--+--         , testGetDevicePoolCompatibilityResponse $+--             getDevicePoolCompatibilityResponse+--+--         , testListTestsResponse $+--             listTestsResponse+--+--         , testCreateUploadResponse $+--             createUploadResponse+--+--         , testListArtifactsResponse $+--             listArtifactsResponse+--+--         , testGetDevicePoolResponse $+--             getDevicePoolResponse+--+--         , testGetUploadResponse $+--             getUploadResponse+--+--         , testListDevicePoolsResponse $+--             listDevicePoolsResponse+--+--         , testGetTestResponse $+--             getTestResponse+--+--         , testCreateDevicePoolResponse $+--             createDevicePoolResponse+--+--         , testListRunsResponse $+--             listRunsResponse+--+--         , testListJobsResponse $+--             listJobsResponse+--+--         , testGetDeviceResponse $+--             getDeviceResponse+--+--         , testGetJobResponse $+--             getJobResponse+--+--         , testScheduleRunResponse $+--             scheduleRunResponse+--+--         , testGetRunResponse $+--             getRunResponse+--+--         , testListSamplesResponse $+--             listSamplesResponse+--+--         , testListSuitesResponse $+--             listSuitesResponse+--+--         , testGetAccountSettingsResponse $+--             getAccountSettingsResponse+--+--         , testListUploadsResponse $+--             listUploadsResponse+--+--         , testGetSuiteResponse $+--             getSuiteResponse+--+--         , testGetProjectResponse $+--             getProjectResponse+--+--         , testListDevicesResponse $+--             listDevicesResponse+--+--         , testListUniqueProblemsResponse $+--             listUniqueProblemsResponse+--+--         , testCreateProjectResponse $+--             createProjectResponse+--+--           ]+--     ]++-- Requests++testListProjects :: ListProjects -> TestTree+testListProjects = req+    "ListProjects"+    "fixture/ListProjects"++testGetDevicePoolCompatibility :: GetDevicePoolCompatibility -> TestTree+testGetDevicePoolCompatibility = req+    "GetDevicePoolCompatibility"+    "fixture/GetDevicePoolCompatibility"++testListTests :: ListTests -> TestTree+testListTests = req+    "ListTests"+    "fixture/ListTests"++testCreateUpload :: CreateUpload -> TestTree+testCreateUpload = req+    "CreateUpload"+    "fixture/CreateUpload"++testListArtifacts :: ListArtifacts -> TestTree+testListArtifacts = req+    "ListArtifacts"+    "fixture/ListArtifacts"++testGetDevicePool :: GetDevicePool -> TestTree+testGetDevicePool = req+    "GetDevicePool"+    "fixture/GetDevicePool"++testGetUpload :: GetUpload -> TestTree+testGetUpload = req+    "GetUpload"+    "fixture/GetUpload"++testListDevicePools :: ListDevicePools -> TestTree+testListDevicePools = req+    "ListDevicePools"+    "fixture/ListDevicePools"++testGetTest :: GetTest -> TestTree+testGetTest = req+    "GetTest"+    "fixture/GetTest"++testCreateDevicePool :: CreateDevicePool -> TestTree+testCreateDevicePool = req+    "CreateDevicePool"+    "fixture/CreateDevicePool"++testListRuns :: ListRuns -> TestTree+testListRuns = req+    "ListRuns"+    "fixture/ListRuns"++testListJobs :: ListJobs -> TestTree+testListJobs = req+    "ListJobs"+    "fixture/ListJobs"++testGetDevice :: GetDevice -> TestTree+testGetDevice = req+    "GetDevice"+    "fixture/GetDevice"++testGetJob :: GetJob -> TestTree+testGetJob = req+    "GetJob"+    "fixture/GetJob"++testScheduleRun :: ScheduleRun -> TestTree+testScheduleRun = req+    "ScheduleRun"+    "fixture/ScheduleRun"++testGetRun :: GetRun -> TestTree+testGetRun = req+    "GetRun"+    "fixture/GetRun"++testListSamples :: ListSamples -> TestTree+testListSamples = req+    "ListSamples"+    "fixture/ListSamples"++testListSuites :: ListSuites -> TestTree+testListSuites = req+    "ListSuites"+    "fixture/ListSuites"++testGetAccountSettings :: GetAccountSettings -> TestTree+testGetAccountSettings = req+    "GetAccountSettings"+    "fixture/GetAccountSettings"++testListUploads :: ListUploads -> TestTree+testListUploads = req+    "ListUploads"+    "fixture/ListUploads"++testGetSuite :: GetSuite -> TestTree+testGetSuite = req+    "GetSuite"+    "fixture/GetSuite"++testGetProject :: GetProject -> TestTree+testGetProject = req+    "GetProject"+    "fixture/GetProject"++testListDevices :: ListDevices -> TestTree+testListDevices = req+    "ListDevices"+    "fixture/ListDevices"++testListUniqueProblems :: ListUniqueProblems -> TestTree+testListUniqueProblems = req+    "ListUniqueProblems"+    "fixture/ListUniqueProblems"++testCreateProject :: CreateProject -> TestTree+testCreateProject = req+    "CreateProject"+    "fixture/CreateProject"++-- Responses++testListProjectsResponse :: ListProjectsResponse -> TestTree+testListProjectsResponse = res+    "ListProjectsResponse"+    "fixture/ListProjectsResponse"+    (Proxy :: Proxy ListProjects)++testGetDevicePoolCompatibilityResponse :: GetDevicePoolCompatibilityResponse -> TestTree+testGetDevicePoolCompatibilityResponse = res+    "GetDevicePoolCompatibilityResponse"+    "fixture/GetDevicePoolCompatibilityResponse"+    (Proxy :: Proxy GetDevicePoolCompatibility)++testListTestsResponse :: ListTestsResponse -> TestTree+testListTestsResponse = res+    "ListTestsResponse"+    "fixture/ListTestsResponse"+    (Proxy :: Proxy ListTests)++testCreateUploadResponse :: CreateUploadResponse -> TestTree+testCreateUploadResponse = res+    "CreateUploadResponse"+    "fixture/CreateUploadResponse"+    (Proxy :: Proxy CreateUpload)++testListArtifactsResponse :: ListArtifactsResponse -> TestTree+testListArtifactsResponse = res+    "ListArtifactsResponse"+    "fixture/ListArtifactsResponse"+    (Proxy :: Proxy ListArtifacts)++testGetDevicePoolResponse :: GetDevicePoolResponse -> TestTree+testGetDevicePoolResponse = res+    "GetDevicePoolResponse"+    "fixture/GetDevicePoolResponse"+    (Proxy :: Proxy GetDevicePool)++testGetUploadResponse :: GetUploadResponse -> TestTree+testGetUploadResponse = res+    "GetUploadResponse"+    "fixture/GetUploadResponse"+    (Proxy :: Proxy GetUpload)++testListDevicePoolsResponse :: ListDevicePoolsResponse -> TestTree+testListDevicePoolsResponse = res+    "ListDevicePoolsResponse"+    "fixture/ListDevicePoolsResponse"+    (Proxy :: Proxy ListDevicePools)++testGetTestResponse :: GetTestResponse -> TestTree+testGetTestResponse = res+    "GetTestResponse"+    "fixture/GetTestResponse"+    (Proxy :: Proxy GetTest)++testCreateDevicePoolResponse :: CreateDevicePoolResponse -> TestTree+testCreateDevicePoolResponse = res+    "CreateDevicePoolResponse"+    "fixture/CreateDevicePoolResponse"+    (Proxy :: Proxy CreateDevicePool)++testListRunsResponse :: ListRunsResponse -> TestTree+testListRunsResponse = res+    "ListRunsResponse"+    "fixture/ListRunsResponse"+    (Proxy :: Proxy ListRuns)++testListJobsResponse :: ListJobsResponse -> TestTree+testListJobsResponse = res+    "ListJobsResponse"+    "fixture/ListJobsResponse"+    (Proxy :: Proxy ListJobs)++testGetDeviceResponse :: GetDeviceResponse -> TestTree+testGetDeviceResponse = res+    "GetDeviceResponse"+    "fixture/GetDeviceResponse"+    (Proxy :: Proxy GetDevice)++testGetJobResponse :: GetJobResponse -> TestTree+testGetJobResponse = res+    "GetJobResponse"+    "fixture/GetJobResponse"+    (Proxy :: Proxy GetJob)++testScheduleRunResponse :: ScheduleRunResponse -> TestTree+testScheduleRunResponse = res+    "ScheduleRunResponse"+    "fixture/ScheduleRunResponse"+    (Proxy :: Proxy ScheduleRun)++testGetRunResponse :: GetRunResponse -> TestTree+testGetRunResponse = res+    "GetRunResponse"+    "fixture/GetRunResponse"+    (Proxy :: Proxy GetRun)++testListSamplesResponse :: ListSamplesResponse -> TestTree+testListSamplesResponse = res+    "ListSamplesResponse"+    "fixture/ListSamplesResponse"+    (Proxy :: Proxy ListSamples)++testListSuitesResponse :: ListSuitesResponse -> TestTree+testListSuitesResponse = res+    "ListSuitesResponse"+    "fixture/ListSuitesResponse"+    (Proxy :: Proxy ListSuites)++testGetAccountSettingsResponse :: GetAccountSettingsResponse -> TestTree+testGetAccountSettingsResponse = res+    "GetAccountSettingsResponse"+    "fixture/GetAccountSettingsResponse"+    (Proxy :: Proxy GetAccountSettings)++testListUploadsResponse :: ListUploadsResponse -> TestTree+testListUploadsResponse = res+    "ListUploadsResponse"+    "fixture/ListUploadsResponse"+    (Proxy :: Proxy ListUploads)++testGetSuiteResponse :: GetSuiteResponse -> TestTree+testGetSuiteResponse = res+    "GetSuiteResponse"+    "fixture/GetSuiteResponse"+    (Proxy :: Proxy GetSuite)++testGetProjectResponse :: GetProjectResponse -> TestTree+testGetProjectResponse = res+    "GetProjectResponse"+    "fixture/GetProjectResponse"+    (Proxy :: Proxy GetProject)++testListDevicesResponse :: ListDevicesResponse -> TestTree+testListDevicesResponse = res+    "ListDevicesResponse"+    "fixture/ListDevicesResponse"+    (Proxy :: Proxy ListDevices)++testListUniqueProblemsResponse :: ListUniqueProblemsResponse -> TestTree+testListUniqueProblemsResponse = res+    "ListUniqueProblemsResponse"+    "fixture/ListUniqueProblemsResponse"+    (Proxy :: Proxy ListUniqueProblems)++testCreateProjectResponse :: CreateProjectResponse -> TestTree+testCreateProjectResponse = res+    "CreateProjectResponse"+    "fixture/CreateProjectResponse"+    (Proxy :: Proxy CreateProject)