packages feed

amazonka-kinesis-analytics (empty) → 1.4.4

raw patch · 53 files changed

+6026/−0 lines, 53 filesdep +amazonka-coredep +amazonka-kinesis-analyticsdep +amazonka-testsetup-changed

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

Files

+ LICENSE view
@@ -0,0 +1,367 @@+Mozilla Public License Version 2.0+==================================++1. Definitions+--------------++1.1. "Contributor"+    means each individual or legal entity that creates, contributes to+    the creation of, or owns Covered Software.++1.2. "Contributor Version"+    means the combination of the Contributions of others (if any) used+    by a Contributor and that particular Contributor's Contribution.++1.3. "Contribution"+    means Covered Software of a particular Contributor.++1.4. "Covered Software"+    means Source Code Form to which the initial Contributor has attached+    the notice in Exhibit A, the Executable Form of such Source Code+    Form, and Modifications of such Source Code Form, in each case+    including portions thereof.++1.5. "Incompatible With Secondary Licenses"+    means++    (a) that the initial Contributor has attached the notice described+        in Exhibit B to the Covered Software; or++    (b) that the Covered Software was made available under the terms of+        version 1.1 or earlier of the License, but not also under the+        terms of a Secondary License.++1.6. "Executable Form"+    means any form of the work other than Source Code Form.++1.7. "Larger Work"+    means a work that combines Covered Software with other material, in+    a separate file or files, that is not Covered Software.++1.8. "License"+    means this document.++1.9. "Licensable"+    means having the right to grant, to the maximum extent possible,+    whether at the time of the initial grant or subsequently, any and+    all of the rights conveyed by this License.++1.10. "Modifications"+    means any of the following:++    (a) any file in Source Code Form that results from an addition to,+        deletion from, or modification of the contents of Covered+        Software; or++    (b) any new file in Source Code Form that contains any Covered+        Software.++1.11. "Patent Claims" of a Contributor+    means any patent claim(s), including without limitation, method,+    process, and apparatus claims, in any patent Licensable by such+    Contributor that would be infringed, but for the grant of the+    License, by the making, using, selling, offering for sale, having+    made, import, or transfer of either its Contributions or its+    Contributor Version.++1.12. "Secondary License"+    means either the GNU General Public License, Version 2.0, the GNU+    Lesser General Public License, Version 2.1, the GNU Affero General+    Public License, Version 3.0, or any later versions of those+    licenses.++1.13. "Source Code Form"+    means the form of the work preferred for making modifications.++1.14. "You" (or "Your")+    means an individual or a legal entity exercising rights under this+    License. For legal entities, "You" includes any entity that+    controls, is controlled by, or is under common control with You. For+    purposes of this definition, "control" means (a) the power, direct+    or indirect, to cause the direction or management of such entity,+    whether by contract or otherwise, or (b) ownership of more than+    fifty percent (50%) of the outstanding shares or beneficial+    ownership of such entity.++2. License Grants and Conditions+--------------------------------++2.1. Grants++Each Contributor hereby grants You a world-wide, royalty-free,+non-exclusive license:++(a) under intellectual property rights (other than patent or trademark)+    Licensable by such Contributor to use, reproduce, make available,+    modify, display, perform, distribute, and otherwise exploit its+    Contributions, either on an unmodified basis, with Modifications, or+    as part of a Larger Work; and++(b) under Patent Claims of such Contributor to make, use, sell, offer+    for sale, have made, import, and otherwise transfer either its+    Contributions or its Contributor Version.++2.2. Effective Date++The licenses granted in Section 2.1 with respect to any Contribution+become effective for each Contribution on the date the Contributor first+distributes such Contribution.++2.3. Limitations on Grant Scope++The licenses granted in this Section 2 are the only rights granted under+this License. No additional rights or licenses will be implied from the+distribution or licensing of Covered Software under this License.+Notwithstanding Section 2.1(b) above, no patent license is granted by a+Contributor:++(a) for any code that a Contributor has removed from Covered Software;+    or++(b) for infringements caused by: (i) Your and any other third party's+    modifications of Covered Software, or (ii) the combination of its+    Contributions with other software (except as part of its Contributor+    Version); or++(c) under Patent Claims infringed by Covered Software in the absence of+    its Contributions.++This License does not grant any rights in the trademarks, service marks,+or logos of any Contributor (except as may be necessary to comply with+the notice requirements in Section 3.4).++2.4. Subsequent Licenses++No Contributor makes additional grants as a result of Your choice to+distribute the Covered Software under a subsequent version of this+License (see Section 10.2) or under the terms of a Secondary License (if+permitted under the terms of Section 3.3).++2.5. Representation++Each Contributor represents that the Contributor believes its+Contributions are its original creation(s) or it has sufficient rights+to grant the rights to its Contributions conveyed by this License.++2.6. Fair Use++This License is not intended to limit any rights You have under+applicable copyright doctrines of fair use, fair dealing, or other+equivalents.++2.7. Conditions++Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted+in Section 2.1.++3. Responsibilities+-------------------++3.1. Distribution of Source Form++All distribution of Covered Software in Source Code Form, including any+Modifications that You create or to which You contribute, must be under+the terms of this License. You must inform recipients that the Source+Code Form of the Covered Software is governed by the terms of this+License, and how they can obtain a copy of this License. You may not+attempt to alter or restrict the recipients' rights in the Source Code+Form.++3.2. Distribution of Executable Form++If You distribute Covered Software in Executable Form then:++(a) such Covered Software must also be made available in Source Code+    Form, as described in Section 3.1, and You must inform recipients of+    the Executable Form how they can obtain a copy of such Source Code+    Form by reasonable means in a timely manner, at a charge no more+    than the cost of distribution to the recipient; and++(b) You may distribute such Executable Form under the terms of this+    License, or sublicense it under different terms, provided that the+    license for the Executable Form does not attempt to limit or alter+    the recipients' rights in the Source Code Form under this License.++3.3. Distribution of a Larger Work++You may create and distribute a Larger Work under terms of Your choice,+provided that You also comply with the requirements of this License for+the Covered Software. If the Larger Work is a combination of Covered+Software with a work governed by one or more Secondary Licenses, and the+Covered Software is not Incompatible With Secondary Licenses, this+License permits You to additionally distribute such Covered Software+under the terms of such Secondary License(s), so that the recipient of+the Larger Work may, at their option, further distribute the Covered+Software under the terms of either this License or such Secondary+License(s).++3.4. Notices++You may not remove or alter the substance of any license notices+(including copyright notices, patent notices, disclaimers of warranty,+or limitations of liability) contained within the Source Code Form of+the Covered Software, except that You may alter any license notices to+the extent required to remedy known factual inaccuracies.++3.5. Application of Additional Terms++You may choose to offer, and to charge a fee for, warranty, support,+indemnity or liability obligations to one or more recipients of Covered+Software. However, You may do so only on Your own behalf, and not on+behalf of any Contributor. You must make it absolutely clear that any+such warranty, support, indemnity, or liability obligation is offered by+You alone, and You hereby agree to indemnify every Contributor for any+liability incurred by such Contributor as a result of warranty, support,+indemnity or liability terms You offer. You may include additional+disclaimers of warranty and limitations of liability specific to any+jurisdiction.++4. Inability to Comply Due to Statute or Regulation+---------------------------------------------------++If it is impossible for You to comply with any of the terms of this+License with respect to some or all of the Covered Software due to+statute, judicial order, or regulation then You must: (a) comply with+the terms of this License to the maximum extent possible; and (b)+describe the limitations and the code they affect. Such description must+be placed in a text file included with all distributions of the Covered+Software under this License. Except to the extent prohibited by statute+or regulation, such description must be sufficiently detailed for a+recipient of ordinary skill to be able to understand it.++5. Termination+--------------++5.1. The rights granted under this License will terminate automatically+if You fail to comply with any of its terms. However, if You become+compliant, then the rights granted under this License from a particular+Contributor are reinstated (a) provisionally, unless and until such+Contributor explicitly and finally terminates Your grants, and (b) on an+ongoing basis, if such Contributor fails to notify You of the+non-compliance by some reasonable means prior to 60 days after You have+come back into compliance. Moreover, Your grants from a particular+Contributor are reinstated on an ongoing basis if such Contributor+notifies You of the non-compliance by some reasonable means, this is the+first time You have received notice of non-compliance with this License+from such Contributor, and You become compliant prior to 30 days after+Your receipt of the notice.++5.2. If You initiate litigation against any entity by asserting a patent+infringement claim (excluding declaratory judgment actions,+counter-claims, and cross-claims) alleging that a Contributor Version+directly or indirectly infringes any patent, then the rights granted to+You by any and all Contributors for the Covered Software under Section+2.1 of this License shall terminate.++5.3. In the event of termination under Sections 5.1 or 5.2 above, all+end user license agreements (excluding distributors and resellers) which+have been validly granted by You or Your distributors under this License+prior to termination shall survive termination.++************************************************************************+*                                                                      *+*  6. Disclaimer of Warranty                                           *+*  -------------------------                                           *+*                                                                      *+*  Covered Software is provided under this License on an "as is"       *+*  basis, without warranty of any kind, either expressed, implied, or  *+*  statutory, including, without limitation, warranties that the       *+*  Covered Software is free of defects, merchantable, fit for a        *+*  particular purpose or non-infringing. The entire risk as to the     *+*  quality and performance of the Covered Software is with You.        *+*  Should any Covered Software prove defective in any respect, You     *+*  (not any Contributor) assume the cost of any necessary servicing,   *+*  repair, or correction. This disclaimer of warranty constitutes an   *+*  essential part of this License. No use of any Covered Software is   *+*  authorized under this License except under this disclaimer.         *+*                                                                      *+************************************************************************++************************************************************************+*                                                                      *+*  7. Limitation of Liability                                          *+*  --------------------------                                          *+*                                                                      *+*  Under no circumstances and under no legal theory, whether tort      *+*  (including negligence), contract, or otherwise, shall any           *+*  Contributor, or anyone who distributes Covered Software as          *+*  permitted above, be liable to You for any direct, indirect,         *+*  special, incidental, or consequential damages of any character      *+*  including, without limitation, damages for lost profits, loss of    *+*  goodwill, work stoppage, computer failure or malfunction, or any    *+*  and all other commercial damages or losses, even if such party      *+*  shall have been informed of the possibility of such damages. This   *+*  limitation of liability shall not apply to liability for death or   *+*  personal injury resulting from such party's negligence to the       *+*  extent applicable law prohibits such limitation. Some               *+*  jurisdictions do not allow the exclusion or limitation of           *+*  incidental or consequential damages, so this exclusion and          *+*  limitation may not apply to You.                                    *+*                                                                      *+************************************************************************++8. Litigation+-------------++Any litigation relating to this License may be brought only in the+courts of a jurisdiction where the defendant maintains its principal+place of business and such litigation shall be governed by laws of that+jurisdiction, without reference to its conflict-of-law provisions.+Nothing in this Section shall prevent a party's ability to bring+cross-claims or counter-claims.++9. Miscellaneous+----------------++This License represents the complete agreement concerning the subject+matter hereof. If any provision of this License is held to be+unenforceable, such provision shall be reformed only to the extent+necessary to make it enforceable. Any law or regulation which provides+that the language of a contract shall be construed against the drafter+shall not be used to construe this License against a Contributor.++10. Versions of the License+---------------------------++10.1. New Versions++Mozilla Foundation is the license steward. Except as provided in Section+10.3, no one other than the license steward has the right to modify or+publish new versions of this License. Each version will be given a+distinguishing version number.++10.2. Effect of New Versions++You may distribute the Covered Software under the terms of the version+of the License under which You originally received the Covered Software,+or under the terms of any subsequent version published by the license+steward.++10.3. Modified Versions++If you create software not governed by this License, and you want to+create a new license for such software, you may create and use a+modified version of this License if you rename the license and remove+any references to the name of the license steward (except to note that+such modified license differs from this License).++10.4. Distributing Source Code Form that is Incompatible With Secondary+Licenses++If You choose to distribute Source Code Form that is Incompatible With+Secondary Licenses under the terms of this version of the License, the+notice described in Exhibit B of this License must be attached.++Exhibit A - Source Code Form License Notice+-------------------------------------------++  This Source Code Form is subject to the terms of the Mozilla Public+  License, v. 2.0. If a copy of the MPL was not distributed with this+  file, You can obtain one at http://mozilla.org/MPL/2.0/.++If it is not possible or desirable to put the notice in a particular+file, then You may include the notice in a location (such as a LICENSE+file in a relevant directory) where a recipient would be likely to look+for such a notice.++You may add additional accurate notices of copyright ownership.
+ README.md view
@@ -0,0 +1,42 @@+# Amazon Kinesis Analytics SDK++* [Version](#version)+* [Description](#description)+* [Contribute](#contribute)+* [Licence](#licence)+++## Version++`1.4.4`+++## Description++Amazon Kinesis Analytics is the easiest way to process streaming data in real time with standard SQL without having to learn new programming languages or processing frameworks. Amazon Kinesis Analytics enables you to create and run SQL queries on streaming data so that you can gain actionable insights and respond to your business and customer needs promptly. Amazon Kinesis Analytics takes care of everything required to run your queries continuously and scales automatically to match the volume and throughput rate of your incoming data. With Amazon Kinesis Analytics, you only pay for the resources your queries consume. There is no minimum fee or setup cost.++Documentation is available via [Hackage](http://hackage.haskell.org/package/amazonka-kinesis-analytics)+and the [AWS API Reference](https://aws.amazon.com/documentation/).++The types from this library are intended to be used with [amazonka](http://hackage.haskell.org/package/amazonka),+which provides mechanisms for specifying AuthN/AuthZ information 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-kinesis-analytics` 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-kinesis-analytics.cabal view
@@ -0,0 +1,94 @@+name:                  amazonka-kinesis-analytics+version:               1.4.4+synopsis:              Amazon Kinesis Analytics SDK.+homepage:              https://github.com/brendanhay/amazonka+bug-reports:           https://github.com/brendanhay/amazonka/issues+license:               OtherLicense+license-file:          LICENSE+author:                Brendan Hay+maintainer:            Brendan Hay <brendan.g.hay@gmail.com>+copyright:             Copyright (c) 2013-2016 Brendan Hay+category:              Network, AWS, Cloud, Distributed Computing+build-type:            Simple+cabal-version:         >= 1.10+extra-source-files:    README.md fixture/*.yaml fixture/*.proto src/.gitkeep+description:+    Amazon Kinesis Analytics is the easiest way to process streaming data in real time with standard SQL without having to learn new programming languages or processing frameworks. Amazon Kinesis Analytics enables you to create and run SQL queries on streaming data so that you can gain actionable insights and respond to your business and customer needs promptly. Amazon Kinesis Analytics takes care of everything required to run your queries continuously and scales automatically to match the volume and throughput rate of your incoming data. With Amazon Kinesis Analytics, you only pay for the resources your queries consume. There is no minimum fee or setup cost.+    .+    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.KinesisAnalytics" or <https://aws.amazon.com/documentation/ the AWS Documentation>+    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.KinesisAnalytics+        , Network.AWS.KinesisAnalytics.AddApplicationInput+        , Network.AWS.KinesisAnalytics.AddApplicationOutput+        , Network.AWS.KinesisAnalytics.AddApplicationReferenceDataSource+        , Network.AWS.KinesisAnalytics.CreateApplication+        , Network.AWS.KinesisAnalytics.DeleteApplication+        , Network.AWS.KinesisAnalytics.DeleteApplicationOutput+        , Network.AWS.KinesisAnalytics.DeleteApplicationReferenceDataSource+        , Network.AWS.KinesisAnalytics.DescribeApplication+        , Network.AWS.KinesisAnalytics.DiscoverInputSchema+        , Network.AWS.KinesisAnalytics.ListApplications+        , Network.AWS.KinesisAnalytics.StartApplication+        , Network.AWS.KinesisAnalytics.StopApplication+        , Network.AWS.KinesisAnalytics.Types+        , Network.AWS.KinesisAnalytics.UpdateApplication+        , Network.AWS.KinesisAnalytics.Waiters++    other-modules:+          Network.AWS.KinesisAnalytics.Types.Product+        , Network.AWS.KinesisAnalytics.Types.Sum++    build-depends:+          amazonka-core == 1.4.4.*+        , base          >= 4.7     && < 5++test-suite amazonka-kinesis-analytics-test+    type:              exitcode-stdio-1.0+    default-language:  Haskell2010+    hs-source-dirs:    test+    main-is:           Main.hs++    ghc-options:       -Wall -threaded++    -- This section is encoded by the template and any modules added by+    -- hand outside these namespaces will not correctly be added to the+    -- distribution package.+    other-modules:+          Test.AWS.KinesisAnalytics+        , Test.AWS.Gen.KinesisAnalytics+        , Test.AWS.KinesisAnalytics.Internal++    build-depends:+          amazonka-core == 1.4.4.*+        , amazonka-test == 1.4.4.*+        , amazonka-kinesis-analytics == 1.4.4.*+        , base+        , bytestring+        , tasty+        , tasty-hunit+        , text+        , time+        , unordered-containers
+ fixture/AddApplicationInput.yaml view
+ fixture/AddApplicationInputResponse.proto view
+ fixture/AddApplicationOutput.yaml view
+ fixture/AddApplicationOutputResponse.proto view
+ fixture/AddApplicationReferenceDataSource.yaml view
+ fixture/AddApplicationReferenceDataSourceResponse.proto view
+ fixture/CreateApplication.yaml view
+ fixture/CreateApplicationResponse.proto view
+ fixture/DeleteApplication.yaml view
+ fixture/DeleteApplicationOutput.yaml view
+ fixture/DeleteApplicationOutputResponse.proto view
+ fixture/DeleteApplicationReferenceDataSource.yaml view
+ fixture/DeleteApplicationReferenceDataSourceResponse.proto view
+ fixture/DeleteApplicationResponse.proto view
+ fixture/DescribeApplication.yaml view
+ fixture/DescribeApplicationResponse.proto view
+ fixture/DiscoverInputSchema.yaml view
+ fixture/DiscoverInputSchemaResponse.proto view
+ fixture/ListApplications.yaml view
+ fixture/ListApplicationsResponse.proto view
+ fixture/StartApplication.yaml view
+ fixture/StartApplicationResponse.proto view
+ fixture/StopApplication.yaml view
+ fixture/StopApplicationResponse.proto view
+ fixture/UpdateApplication.yaml view
+ fixture/UpdateApplicationResponse.proto view
+ gen/Network/AWS/KinesisAnalytics.hs view
@@ -0,0 +1,424 @@+{-# 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.KinesisAnalytics+-- Copyright   : (c) 2013-2016 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)+--+-- Amazon Kinesis Analytics is the easiest way to process streaming data in real time with standard SQL without having to learn new programming languages or processing frameworks. Amazon Kinesis Analytics enables you to create and run SQL queries on streaming data so that you can gain actionable insights and respond to your business and customer needs promptly. Amazon Kinesis Analytics takes care of everything required to run your queries continuously and scales automatically to match the volume and throughput rate of your incoming data. With Amazon Kinesis Analytics, you only pay for the resources your queries consume. There is no minimum fee or setup cost.+module Network.AWS.KinesisAnalytics+    (+    -- * Service Configuration+      kinesisAnalytics++    -- * Errors+    -- $errors++    -- ** InvalidApplicationConfigurationException+    , _InvalidApplicationConfigurationException++    -- ** ResourceProvisionedThroughputExceededException+    , _ResourceProvisionedThroughputExceededException++    -- ** InvalidArgumentException+    , _InvalidArgumentException++    -- ** CodeValidationException+    , _CodeValidationException++    -- ** ConcurrentModificationException+    , _ConcurrentModificationException++    -- ** UnableToDetectSchemaException+    , _UnableToDetectSchemaException++    -- ** ResourceNotFoundException+    , _ResourceNotFoundException++    -- ** LimitExceededException+    , _LimitExceededException++    -- ** ResourceInUseException+    , _ResourceInUseException++    -- * Waiters+    -- $waiters++    -- * Operations+    -- $operations++    -- ** AddApplicationOutput+    , module Network.AWS.KinesisAnalytics.AddApplicationOutput++    -- ** DiscoverInputSchema+    , module Network.AWS.KinesisAnalytics.DiscoverInputSchema++    -- ** DescribeApplication+    , module Network.AWS.KinesisAnalytics.DescribeApplication++    -- ** StartApplication+    , module Network.AWS.KinesisAnalytics.StartApplication++    -- ** DeleteApplicationReferenceDataSource+    , module Network.AWS.KinesisAnalytics.DeleteApplicationReferenceDataSource++    -- ** DeleteApplication+    , module Network.AWS.KinesisAnalytics.DeleteApplication++    -- ** UpdateApplication+    , module Network.AWS.KinesisAnalytics.UpdateApplication++    -- ** CreateApplication+    , module Network.AWS.KinesisAnalytics.CreateApplication++    -- ** DeleteApplicationOutput+    , module Network.AWS.KinesisAnalytics.DeleteApplicationOutput++    -- ** StopApplication+    , module Network.AWS.KinesisAnalytics.StopApplication++    -- ** AddApplicationReferenceDataSource+    , module Network.AWS.KinesisAnalytics.AddApplicationReferenceDataSource++    -- ** AddApplicationInput+    , module Network.AWS.KinesisAnalytics.AddApplicationInput++    -- ** ListApplications+    , module Network.AWS.KinesisAnalytics.ListApplications++    -- * Types++    -- ** ApplicationStatus+    , ApplicationStatus (..)++    -- ** InputStartingPosition+    , InputStartingPosition (..)++    -- ** RecordFormatType+    , RecordFormatType (..)++    -- ** ApplicationDetail+    , ApplicationDetail+    , applicationDetail+    , adApplicationDescription+    , adOutputDescriptions+    , adReferenceDataSourceDescriptions+    , adInputDescriptions+    , adApplicationCode+    , adCreateTimestamp+    , adLastUpdateTimestamp+    , adApplicationName+    , adApplicationARN+    , adApplicationStatus+    , adApplicationVersionId++    -- ** ApplicationSummary+    , ApplicationSummary+    , applicationSummary+    , asApplicationName+    , asApplicationARN+    , asApplicationStatus++    -- ** ApplicationUpdate+    , ApplicationUpdate+    , applicationUpdate+    , auReferenceDataSourceUpdates+    , auInputUpdates+    , auOutputUpdates+    , auApplicationCodeUpdate++    -- ** CSVMappingParameters+    , CSVMappingParameters+    , csvMappingParameters+    , cmpRecordRowDelimiter+    , cmpRecordColumnDelimiter++    -- ** DestinationSchema+    , DestinationSchema+    , destinationSchema+    , dsRecordFormatType++    -- ** Input+    , Input+    , input+    , iInputParallelism+    , iKinesisStreamsInput+    , iKinesisFirehoseInput+    , iInputSchema+    , iNamePrefix++    -- ** InputConfiguration+    , InputConfiguration+    , inputConfiguration+    , icId+    , icInputStartingPositionConfiguration++    -- ** InputDescription+    , InputDescription+    , inputDescription+    , idInputStartingPositionConfiguration+    , idInputParallelism+    , idInputId+    , idInAppStreamNames+    , idKinesisFirehoseInputDescription+    , idInputSchema+    , idKinesisStreamsInputDescription+    , idNamePrefix++    -- ** InputParallelism+    , InputParallelism+    , inputParallelism+    , ipCount++    -- ** InputParallelismUpdate+    , InputParallelismUpdate+    , inputParallelismUpdate+    , ipuCountUpdate++    -- ** InputSchemaUpdate+    , InputSchemaUpdate+    , inputSchemaUpdate+    , isuRecordFormatUpdate+    , isuRecordEncodingUpdate+    , isuRecordColumnUpdates++    -- ** InputStartingPositionConfiguration+    , InputStartingPositionConfiguration+    , inputStartingPositionConfiguration+    , ispcInputStartingPosition++    -- ** InputUpdate+    , InputUpdate+    , inputUpdate+    , iuKinesisStreamsInputUpdate+    , iuInputParallelismUpdate+    , iuNamePrefixUpdate+    , iuInputSchemaUpdate+    , iuKinesisFirehoseInputUpdate+    , iuInputId++    -- ** JSONMappingParameters+    , JSONMappingParameters+    , jsonMappingParameters+    , jmpRecordRowPath++    -- ** KinesisFirehoseInput+    , KinesisFirehoseInput+    , kinesisFirehoseInput+    , kfiResourceARN+    , kfiRoleARN++    -- ** KinesisFirehoseInputDescription+    , KinesisFirehoseInputDescription+    , kinesisFirehoseInputDescription+    , kfidResourceARN+    , kfidRoleARN++    -- ** KinesisFirehoseInputUpdate+    , KinesisFirehoseInputUpdate+    , kinesisFirehoseInputUpdate+    , kfiuRoleARNUpdate+    , kfiuResourceARNUpdate++    -- ** KinesisFirehoseOutput+    , KinesisFirehoseOutput+    , kinesisFirehoseOutput+    , kfoResourceARN+    , kfoRoleARN++    -- ** KinesisFirehoseOutputDescription+    , KinesisFirehoseOutputDescription+    , kinesisFirehoseOutputDescription+    , kfodResourceARN+    , kfodRoleARN++    -- ** KinesisFirehoseOutputUpdate+    , KinesisFirehoseOutputUpdate+    , kinesisFirehoseOutputUpdate+    , kfouRoleARNUpdate+    , kfouResourceARNUpdate++    -- ** KinesisStreamsInput+    , KinesisStreamsInput+    , kinesisStreamsInput+    , ksiResourceARN+    , ksiRoleARN++    -- ** KinesisStreamsInputDescription+    , KinesisStreamsInputDescription+    , kinesisStreamsInputDescription+    , ksidResourceARN+    , ksidRoleARN++    -- ** KinesisStreamsInputUpdate+    , KinesisStreamsInputUpdate+    , kinesisStreamsInputUpdate+    , ksiuRoleARNUpdate+    , ksiuResourceARNUpdate++    -- ** KinesisStreamsOutput+    , KinesisStreamsOutput+    , kinesisStreamsOutput+    , ksoResourceARN+    , ksoRoleARN++    -- ** KinesisStreamsOutputDescription+    , KinesisStreamsOutputDescription+    , kinesisStreamsOutputDescription+    , ksodResourceARN+    , ksodRoleARN++    -- ** KinesisStreamsOutputUpdate+    , KinesisStreamsOutputUpdate+    , kinesisStreamsOutputUpdate+    , ksouRoleARNUpdate+    , ksouResourceARNUpdate++    -- ** MappingParameters+    , MappingParameters+    , mappingParameters+    , mpCSVMappingParameters+    , mpJSONMappingParameters++    -- ** Output+    , Output+    , output+    , oKinesisStreamsOutput+    , oKinesisFirehoseOutput+    , oName+    , oDestinationSchema++    -- ** OutputDescription+    , OutputDescription+    , outputDescription+    , odOutputId+    , odDestinationSchema+    , odKinesisFirehoseOutputDescription+    , odKinesisStreamsOutputDescription+    , odName++    -- ** OutputUpdate+    , OutputUpdate+    , outputUpdate+    , ouKinesisStreamsOutputUpdate+    , ouDestinationSchemaUpdate+    , ouKinesisFirehoseOutputUpdate+    , ouNameUpdate+    , ouOutputId++    -- ** RecordColumn+    , RecordColumn+    , recordColumn+    , rcMapping+    , rcName+    , rcSqlType++    -- ** RecordFormat+    , RecordFormat+    , recordFormat+    , rfMappingParameters+    , rfRecordFormatType++    -- ** ReferenceDataSource+    , ReferenceDataSource+    , referenceDataSource+    , rdsS3ReferenceDataSource+    , rdsTableName+    , rdsReferenceSchema++    -- ** ReferenceDataSourceDescription+    , ReferenceDataSourceDescription+    , referenceDataSourceDescription+    , rdsdReferenceSchema+    , rdsdReferenceId+    , rdsdTableName+    , rdsdS3ReferenceDataSourceDescription++    -- ** ReferenceDataSourceUpdate+    , ReferenceDataSourceUpdate+    , referenceDataSourceUpdate+    , rdsuTableNameUpdate+    , rdsuS3ReferenceDataSourceUpdate+    , rdsuReferenceSchemaUpdate+    , rdsuReferenceId++    -- ** S3ReferenceDataSource+    , S3ReferenceDataSource+    , s3ReferenceDataSource+    , srdsBucketARN+    , srdsFileKey+    , srdsReferenceRoleARN++    -- ** S3ReferenceDataSourceDescription+    , S3ReferenceDataSourceDescription+    , s3ReferenceDataSourceDescription+    , srdsdBucketARN+    , srdsdFileKey+    , srdsdReferenceRoleARN++    -- ** S3ReferenceDataSourceUpdate+    , S3ReferenceDataSourceUpdate+    , s3ReferenceDataSourceUpdate+    , srdsuBucketARNUpdate+    , srdsuFileKeyUpdate+    , srdsuReferenceRoleARNUpdate++    -- ** SourceSchema+    , SourceSchema+    , sourceSchema+    , ssRecordEncoding+    , ssRecordFormat+    , ssRecordColumns+    ) where++import           Network.AWS.KinesisAnalytics.AddApplicationInput+import           Network.AWS.KinesisAnalytics.AddApplicationOutput+import           Network.AWS.KinesisAnalytics.AddApplicationReferenceDataSource+import           Network.AWS.KinesisAnalytics.CreateApplication+import           Network.AWS.KinesisAnalytics.DeleteApplication+import           Network.AWS.KinesisAnalytics.DeleteApplicationOutput+import           Network.AWS.KinesisAnalytics.DeleteApplicationReferenceDataSource+import           Network.AWS.KinesisAnalytics.DescribeApplication+import           Network.AWS.KinesisAnalytics.DiscoverInputSchema+import           Network.AWS.KinesisAnalytics.ListApplications+import           Network.AWS.KinesisAnalytics.StartApplication+import           Network.AWS.KinesisAnalytics.StopApplication+import           Network.AWS.KinesisAnalytics.Types+import           Network.AWS.KinesisAnalytics.UpdateApplication+import           Network.AWS.KinesisAnalytics.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 'KinesisAnalytics'.+-}++{- $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/KinesisAnalytics/AddApplicationInput.hs view
@@ -0,0 +1,157 @@+{-# 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.KinesisAnalytics.AddApplicationInput+-- Copyright   : (c) 2013-2016 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)+--+-- Adds a streaming source to your Amazon Kinesis application. For conceptual information, see <http://docs.aws.amazon.com/kinesisanalytics/latest/dev/how-it-works-input.html Configuring Application Input>.+--+-- You can add a streaming source either when you create an application or you can use this operation to add a streaming source after you create an application. For more information, see < CreateApplication>.+--+-- Any configuration update, including adding a streaming source using this operation, results in a new version of the application. You can use the < DescribeApplication> operation to find the current application version.+--+-- This operation requires permissions to perform the 'kinesisanalytics:AddApplicationInput' action.+module Network.AWS.KinesisAnalytics.AddApplicationInput+    (+    -- * Creating a Request+      addApplicationInput+    , AddApplicationInput+    -- * Request Lenses+    , aaiApplicationName+    , aaiCurrentApplicationVersionId+    , aaiInput++    -- * Destructuring the Response+    , addApplicationInputResponse+    , AddApplicationInputResponse+    -- * Response Lenses+    , aairsResponseStatus+    ) where++import           Network.AWS.KinesisAnalytics.Types+import           Network.AWS.KinesisAnalytics.Types.Product+import           Network.AWS.Lens+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- |+--+-- /See:/ 'addApplicationInput' smart constructor.+data AddApplicationInput = AddApplicationInput'+    { _aaiApplicationName             :: !Text+    , _aaiCurrentApplicationVersionId :: !Nat+    , _aaiInput                       :: !Input+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'AddApplicationInput' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'aaiApplicationName'+--+-- * 'aaiCurrentApplicationVersionId'+--+-- * 'aaiInput'+addApplicationInput+    :: Text -- ^ 'aaiApplicationName'+    -> Natural -- ^ 'aaiCurrentApplicationVersionId'+    -> Input -- ^ 'aaiInput'+    -> AddApplicationInput+addApplicationInput pApplicationName_ pCurrentApplicationVersionId_ pInput_ =+    AddApplicationInput'+    { _aaiApplicationName = pApplicationName_+    , _aaiCurrentApplicationVersionId = _Nat # pCurrentApplicationVersionId_+    , _aaiInput = pInput_+    }++-- | Name of your existing Amazon Kinesis Analytics application to which you want to add the streaming source.+aaiApplicationName :: Lens' AddApplicationInput Text+aaiApplicationName = lens _aaiApplicationName (\ s a -> s{_aaiApplicationName = a});++-- | Current version of your Amazon Kinesis Analytics application. You can use the < DescribeApplication> operation to find the current application version.+aaiCurrentApplicationVersionId :: Lens' AddApplicationInput Natural+aaiCurrentApplicationVersionId = lens _aaiCurrentApplicationVersionId (\ s a -> s{_aaiCurrentApplicationVersionId = a}) . _Nat;++-- | Undocumented member.+aaiInput :: Lens' AddApplicationInput Input+aaiInput = lens _aaiInput (\ s a -> s{_aaiInput = a});++instance AWSRequest AddApplicationInput where+        type Rs AddApplicationInput =+             AddApplicationInputResponse+        request = postJSON kinesisAnalytics+        response+          = receiveEmpty+              (\ s h x ->+                 AddApplicationInputResponse' <$> (pure (fromEnum s)))++instance Hashable AddApplicationInput++instance NFData AddApplicationInput++instance ToHeaders AddApplicationInput where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("KinesisAnalytics_20150814.AddApplicationInput" ::+                       ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON AddApplicationInput where+        toJSON AddApplicationInput'{..}+          = object+              (catMaybes+                 [Just ("ApplicationName" .= _aaiApplicationName),+                  Just+                    ("CurrentApplicationVersionId" .=+                       _aaiCurrentApplicationVersionId),+                  Just ("Input" .= _aaiInput)])++instance ToPath AddApplicationInput where+        toPath = const "/"++instance ToQuery AddApplicationInput where+        toQuery = const mempty++-- |+--+-- /See:/ 'addApplicationInputResponse' smart constructor.+newtype AddApplicationInputResponse = AddApplicationInputResponse'+    { _aairsResponseStatus :: Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'AddApplicationInputResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'aairsResponseStatus'+addApplicationInputResponse+    :: Int -- ^ 'aairsResponseStatus'+    -> AddApplicationInputResponse+addApplicationInputResponse pResponseStatus_ =+    AddApplicationInputResponse'+    { _aairsResponseStatus = pResponseStatus_+    }++-- | The response status code.+aairsResponseStatus :: Lens' AddApplicationInputResponse Int+aairsResponseStatus = lens _aairsResponseStatus (\ s a -> s{_aairsResponseStatus = a});++instance NFData AddApplicationInputResponse
+ gen/Network/AWS/KinesisAnalytics/AddApplicationOutput.hs view
@@ -0,0 +1,162 @@+{-# 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.KinesisAnalytics.AddApplicationOutput+-- Copyright   : (c) 2013-2016 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)+--+-- Adds an external destination to your Amazon Kinesis Analytics application.+--+-- If you want Amazon Kinesis Analytics to deliver data from an in-application stream within your application to an external destination (such as an Amazon Kinesis stream or a Firehose delivery stream), you add the relevant configuration to your application using this operation. You can configure one or more outputs for your application. Each output configuration maps an in-application stream and an external destination.+--+-- You can use one of the output configurations to deliver data from your in-application error stream to an external destination so that you can analyze the errors. For conceptual information, see <http://docs.aws.amazon.com/kinesisanalytics/latest/dev/how-it-works-output.html Understanding Application Output (Destination)>.+--+-- Note that any configuration update, including adding a streaming source using this operation, results in a new version of the application. You can use the < DescribeApplication> operation to find the current application version.+--+-- For the limits on the number of application inputs and outputs you can configure, see <http://docs.aws.amazon.com/kinesisanalytics/latest/dev/limits.html Limits>.+--+-- This operation requires permissions to perform the 'kinesisanalytics:AddApplicationOutput' action.+module Network.AWS.KinesisAnalytics.AddApplicationOutput+    (+    -- * Creating a Request+      addApplicationOutput+    , AddApplicationOutput+    -- * Request Lenses+    , aaoApplicationName+    , aaoCurrentApplicationVersionId+    , aaoOutput++    -- * Destructuring the Response+    , addApplicationOutputResponse+    , AddApplicationOutputResponse+    -- * Response Lenses+    , aaorsResponseStatus+    ) where++import           Network.AWS.KinesisAnalytics.Types+import           Network.AWS.KinesisAnalytics.Types.Product+import           Network.AWS.Lens+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- |+--+-- /See:/ 'addApplicationOutput' smart constructor.+data AddApplicationOutput = AddApplicationOutput'+    { _aaoApplicationName             :: !Text+    , _aaoCurrentApplicationVersionId :: !Nat+    , _aaoOutput                      :: !Output+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'AddApplicationOutput' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'aaoApplicationName'+--+-- * 'aaoCurrentApplicationVersionId'+--+-- * 'aaoOutput'+addApplicationOutput+    :: Text -- ^ 'aaoApplicationName'+    -> Natural -- ^ 'aaoCurrentApplicationVersionId'+    -> Output -- ^ 'aaoOutput'+    -> AddApplicationOutput+addApplicationOutput pApplicationName_ pCurrentApplicationVersionId_ pOutput_ =+    AddApplicationOutput'+    { _aaoApplicationName = pApplicationName_+    , _aaoCurrentApplicationVersionId = _Nat # pCurrentApplicationVersionId_+    , _aaoOutput = pOutput_+    }++-- | Name of the application to which you want to add the output configuration.+aaoApplicationName :: Lens' AddApplicationOutput Text+aaoApplicationName = lens _aaoApplicationName (\ s a -> s{_aaoApplicationName = a});++-- | Version of the application to which you want add the output configuration. You can use the < DescribeApplication> operation to get the current application version. If the version specified is not the current version, the 'ConcurrentModificationException' is returned.+aaoCurrentApplicationVersionId :: Lens' AddApplicationOutput Natural+aaoCurrentApplicationVersionId = lens _aaoCurrentApplicationVersionId (\ s a -> s{_aaoCurrentApplicationVersionId = a}) . _Nat;++-- | An array of objects, each describing one output configuration. In the output configuration, you specify the name of an in-application stream, a destination (that is, an Amazon Kinesis stream or an Amazon Kinesis Firehose delivery stream), and record the formation to use when writing to the destination.+aaoOutput :: Lens' AddApplicationOutput Output+aaoOutput = lens _aaoOutput (\ s a -> s{_aaoOutput = a});++instance AWSRequest AddApplicationOutput where+        type Rs AddApplicationOutput =+             AddApplicationOutputResponse+        request = postJSON kinesisAnalytics+        response+          = receiveEmpty+              (\ s h x ->+                 AddApplicationOutputResponse' <$>+                   (pure (fromEnum s)))++instance Hashable AddApplicationOutput++instance NFData AddApplicationOutput++instance ToHeaders AddApplicationOutput where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("KinesisAnalytics_20150814.AddApplicationOutput" ::+                       ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON AddApplicationOutput where+        toJSON AddApplicationOutput'{..}+          = object+              (catMaybes+                 [Just ("ApplicationName" .= _aaoApplicationName),+                  Just+                    ("CurrentApplicationVersionId" .=+                       _aaoCurrentApplicationVersionId),+                  Just ("Output" .= _aaoOutput)])++instance ToPath AddApplicationOutput where+        toPath = const "/"++instance ToQuery AddApplicationOutput where+        toQuery = const mempty++-- |+--+-- /See:/ 'addApplicationOutputResponse' smart constructor.+newtype AddApplicationOutputResponse = AddApplicationOutputResponse'+    { _aaorsResponseStatus :: Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'AddApplicationOutputResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'aaorsResponseStatus'+addApplicationOutputResponse+    :: Int -- ^ 'aaorsResponseStatus'+    -> AddApplicationOutputResponse+addApplicationOutputResponse pResponseStatus_ =+    AddApplicationOutputResponse'+    { _aaorsResponseStatus = pResponseStatus_+    }++-- | The response status code.+aaorsResponseStatus :: Lens' AddApplicationOutputResponse Int+aaorsResponseStatus = lens _aaorsResponseStatus (\ s a -> s{_aaorsResponseStatus = a});++instance NFData AddApplicationOutputResponse
+ gen/Network/AWS/KinesisAnalytics/AddApplicationReferenceDataSource.hs view
@@ -0,0 +1,166 @@+{-# 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.KinesisAnalytics.AddApplicationReferenceDataSource+-- Copyright   : (c) 2013-2016 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)+--+-- Adds a reference data source to an existing application.+--+-- Amazon Kinesis Analytics reads reference data (that is, an Amazon S3 object) and creates an in-application table within your application. In the request, you provide the source (S3 bucket name and object key name), name of the in-application table to create, and the necessary mapping information that describes how data in Amazon S3 object maps to columns in the resulting in-application table.+--+-- For conceptual information, see <http://docs.aws.amazon.com/kinesisanalytics/latest/dev/how-it-works-input.html Configuring Application Input>. For the limits on data sources you can add to your application, see <http://docs.aws.amazon.com/kinesisanalytics/latest/dev/limits.html Limits>.+--+-- This operation requires permissions to perform the 'kinesisanalytics:AddApplicationOutput' action.+module Network.AWS.KinesisAnalytics.AddApplicationReferenceDataSource+    (+    -- * Creating a Request+      addApplicationReferenceDataSource+    , AddApplicationReferenceDataSource+    -- * Request Lenses+    , aardsApplicationName+    , aardsCurrentApplicationVersionId+    , aardsReferenceDataSource++    -- * Destructuring the Response+    , addApplicationReferenceDataSourceResponse+    , AddApplicationReferenceDataSourceResponse+    -- * Response Lenses+    , aardsrsResponseStatus+    ) where++import           Network.AWS.KinesisAnalytics.Types+import           Network.AWS.KinesisAnalytics.Types.Product+import           Network.AWS.Lens+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- |+--+-- /See:/ 'addApplicationReferenceDataSource' smart constructor.+data AddApplicationReferenceDataSource = AddApplicationReferenceDataSource'+    { _aardsApplicationName             :: !Text+    , _aardsCurrentApplicationVersionId :: !Nat+    , _aardsReferenceDataSource         :: !ReferenceDataSource+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'AddApplicationReferenceDataSource' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'aardsApplicationName'+--+-- * 'aardsCurrentApplicationVersionId'+--+-- * 'aardsReferenceDataSource'+addApplicationReferenceDataSource+    :: Text -- ^ 'aardsApplicationName'+    -> Natural -- ^ 'aardsCurrentApplicationVersionId'+    -> ReferenceDataSource -- ^ 'aardsReferenceDataSource'+    -> AddApplicationReferenceDataSource+addApplicationReferenceDataSource pApplicationName_ pCurrentApplicationVersionId_ pReferenceDataSource_ =+    AddApplicationReferenceDataSource'+    { _aardsApplicationName = pApplicationName_+    , _aardsCurrentApplicationVersionId = _Nat # pCurrentApplicationVersionId_+    , _aardsReferenceDataSource = pReferenceDataSource_+    }++-- | Name of an existing application.+aardsApplicationName :: Lens' AddApplicationReferenceDataSource Text+aardsApplicationName = lens _aardsApplicationName (\ s a -> s{_aardsApplicationName = a});++-- | Version of the application for which you are adding the reference data source. You can use the < DescribeApplication> operation to get the current application version. If the version specified is not the current version, the 'ConcurrentModificationException' is returned.+aardsCurrentApplicationVersionId :: Lens' AddApplicationReferenceDataSource Natural+aardsCurrentApplicationVersionId = lens _aardsCurrentApplicationVersionId (\ s a -> s{_aardsCurrentApplicationVersionId = a}) . _Nat;++-- | The reference data source can be an object in your Amazon S3 bucket. Amazon Kinesis Analytics reads the object and copies the data into the in-application table that is created. You provide an S3 bucket, object key name, and the resulting in-application table that is created. You must also provide an IAM role with the necessary permissions that Amazon Kinesis Analytics can assume to read the object from your S3 bucket on your behalf.+aardsReferenceDataSource :: Lens' AddApplicationReferenceDataSource ReferenceDataSource+aardsReferenceDataSource = lens _aardsReferenceDataSource (\ s a -> s{_aardsReferenceDataSource = a});++instance AWSRequest AddApplicationReferenceDataSource+         where+        type Rs AddApplicationReferenceDataSource =+             AddApplicationReferenceDataSourceResponse+        request = postJSON kinesisAnalytics+        response+          = receiveEmpty+              (\ s h x ->+                 AddApplicationReferenceDataSourceResponse' <$>+                   (pure (fromEnum s)))++instance Hashable AddApplicationReferenceDataSource++instance NFData AddApplicationReferenceDataSource++instance ToHeaders AddApplicationReferenceDataSource+         where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("KinesisAnalytics_20150814.AddApplicationReferenceDataSource"+                       :: ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON AddApplicationReferenceDataSource+         where+        toJSON AddApplicationReferenceDataSource'{..}+          = object+              (catMaybes+                 [Just ("ApplicationName" .= _aardsApplicationName),+                  Just+                    ("CurrentApplicationVersionId" .=+                       _aardsCurrentApplicationVersionId),+                  Just+                    ("ReferenceDataSource" .=+                       _aardsReferenceDataSource)])++instance ToPath AddApplicationReferenceDataSource+         where+        toPath = const "/"++instance ToQuery AddApplicationReferenceDataSource+         where+        toQuery = const mempty++-- |+--+-- /See:/ 'addApplicationReferenceDataSourceResponse' smart constructor.+newtype AddApplicationReferenceDataSourceResponse = AddApplicationReferenceDataSourceResponse'+    { _aardsrsResponseStatus :: Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'AddApplicationReferenceDataSourceResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'aardsrsResponseStatus'+addApplicationReferenceDataSourceResponse+    :: Int -- ^ 'aardsrsResponseStatus'+    -> AddApplicationReferenceDataSourceResponse+addApplicationReferenceDataSourceResponse pResponseStatus_ =+    AddApplicationReferenceDataSourceResponse'+    { _aardsrsResponseStatus = pResponseStatus_+    }++-- | The response status code.+aardsrsResponseStatus :: Lens' AddApplicationReferenceDataSourceResponse Int+aardsrsResponseStatus = lens _aardsrsResponseStatus (\ s a -> s{_aardsrsResponseStatus = a});++instance NFData+         AddApplicationReferenceDataSourceResponse
+ gen/Network/AWS/KinesisAnalytics/CreateApplication.hs view
@@ -0,0 +1,204 @@+{-# 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.KinesisAnalytics.CreateApplication+-- Copyright   : (c) 2013-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates an Amazon Kinesis Analytics application. You can configure each application with one streaming source as input, application code to process the input, and up to five streaming destinations where you want Amazon Kinesis Analytics to write the output data from your application. For an overview, see <http://docs.aws.amazon.com/kinesisanalytics/latest/dev/how-it-works.html How it Works>.+--+-- In the input configuration, you map the streaming source to an in-application stream, which you can think of as a constantly updating table. In the mapping, you must provide a schema for the in-application stream and map each data column in the in-application stream to a data element in the streaming source, with the option of renaming, casting and dropping columns as desired.+--+-- Your application code is one or more SQL statements that read input data, transform it, and generate output. Your application code can create one or more SQL artifacts like SQL streams or pumps.+--+-- In the output configuration, you can configure the application to write data from in-application streams created in your applications to up to five streaming destinations.+--+-- To read data from your source stream or write data to destination streams, Amazon Kinesis Analytics needs your permissions. You grant these permissions by creating IAM roles. This operation requires permissions to perform the 'kinesisanalytics:CreateApplication' action.+--+-- For introductory exercises to create an Amazon Kinesis Analytics application, see <http://docs.aws.amazon.com/kinesisanalytics/latest/dev/getting-started.html Getting Started>.+module Network.AWS.KinesisAnalytics.CreateApplication+    (+    -- * Creating a Request+      createApplication+    , CreateApplication+    -- * Request Lenses+    , caApplicationDescription+    , caInputs+    , caOutputs+    , caApplicationCode+    , caApplicationName++    -- * Destructuring the Response+    , createApplicationResponse+    , CreateApplicationResponse+    -- * Response Lenses+    , carsResponseStatus+    , carsApplicationSummary+    ) where++import           Network.AWS.KinesisAnalytics.Types+import           Network.AWS.KinesisAnalytics.Types.Product+import           Network.AWS.Lens+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- | TBD+--+-- /See:/ 'createApplication' smart constructor.+data CreateApplication = CreateApplication'+    { _caApplicationDescription :: !(Maybe Text)+    , _caInputs                 :: !(Maybe [Input])+    , _caOutputs                :: !(Maybe [Output])+    , _caApplicationCode        :: !(Maybe Text)+    , _caApplicationName        :: !Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'CreateApplication' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'caApplicationDescription'+--+-- * 'caInputs'+--+-- * 'caOutputs'+--+-- * 'caApplicationCode'+--+-- * 'caApplicationName'+createApplication+    :: Text -- ^ 'caApplicationName'+    -> CreateApplication+createApplication pApplicationName_ =+    CreateApplication'+    { _caApplicationDescription = Nothing+    , _caInputs = Nothing+    , _caOutputs = Nothing+    , _caApplicationCode = Nothing+    , _caApplicationName = pApplicationName_+    }++-- | Summary description of the application.+caApplicationDescription :: Lens' CreateApplication (Maybe Text)+caApplicationDescription = lens _caApplicationDescription (\ s a -> s{_caApplicationDescription = a});++-- | Use this parameter to configure the application input.+--+-- You can configure your application to receive input from a single streaming source. In this configuration, you map this streaming source to an in-application stream that is created. Your application code can then query the in-application stream like a table (you can think of it as a constantly updating table).+--+-- For the streaming source, you provide its Amazon Resource Name (ARN) and format of data on the stream (for example, JSON, CSV, etc). You also must provide an IAM role that Amazon Kinesis Analytics can assume to read this stream on your behalf.+--+-- To create the in-application stream, you need to specify a schema to transform your data into a schematized version used in SQL. In the schema, you provide the necessary mapping of the data elements in the streaming source to record columns in the in-app stream.+caInputs :: Lens' CreateApplication [Input]+caInputs = lens _caInputs (\ s a -> s{_caInputs = a}) . _Default . _Coerce;++-- | You can configure application output to write data from any of the in-application streams to up to five destinations.+--+-- These destinations can be Amazon Kinesis streams, Amazon Kinesis Firehose delivery streams, or both.+--+-- In the configuration, you specify the in-application stream name, the destination stream Amazon Resource Name (ARN), and the format to use when writing data. You must also provide an IAM role that Amazon Kinesis Analytics can assume to write to the destination stream on your behalf.+--+-- In the output configuration, you also provide the output stream Amazon Resource Name (ARN) and the format of data in the stream (for example, JSON, CSV). You also must provide an IAM role that Amazon Kinesis Analytics can assume to write to this stream on your behalf.+caOutputs :: Lens' CreateApplication [Output]+caOutputs = lens _caOutputs (\ s a -> s{_caOutputs = a}) . _Default . _Coerce;++-- | One or more SQL statements that read input data, transform it, and generate output. For example, you can write a SQL statement that reads input data and generates a running average of the number of advertisement clicks by vendor.+--+-- You can also provide a series of SQL statements, where output of one statement can be used as the input for the next statement.+--+-- Note that the application code must create the streams with names specified in the 'Outputs'. For example, if your 'Outputs' defines output streams named 'ExampleOutputStream1' and 'ExampleOutputStream2', then your application code must create these streams.+caApplicationCode :: Lens' CreateApplication (Maybe Text)+caApplicationCode = lens _caApplicationCode (\ s a -> s{_caApplicationCode = a});++-- | Name of your Amazon Kinesis Analytics application (for example, 'sample-app').+caApplicationName :: Lens' CreateApplication Text+caApplicationName = lens _caApplicationName (\ s a -> s{_caApplicationName = a});++instance AWSRequest CreateApplication where+        type Rs CreateApplication = CreateApplicationResponse+        request = postJSON kinesisAnalytics+        response+          = receiveJSON+              (\ s h x ->+                 CreateApplicationResponse' <$>+                   (pure (fromEnum s)) <*> (x .:> "ApplicationSummary"))++instance Hashable CreateApplication++instance NFData CreateApplication++instance ToHeaders CreateApplication where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("KinesisAnalytics_20150814.CreateApplication" ::+                       ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON CreateApplication where+        toJSON CreateApplication'{..}+          = object+              (catMaybes+                 [("ApplicationDescription" .=) <$>+                    _caApplicationDescription,+                  ("Inputs" .=) <$> _caInputs,+                  ("Outputs" .=) <$> _caOutputs,+                  ("ApplicationCode" .=) <$> _caApplicationCode,+                  Just ("ApplicationName" .= _caApplicationName)])++instance ToPath CreateApplication where+        toPath = const "/"++instance ToQuery CreateApplication where+        toQuery = const mempty++-- | TBD+--+-- /See:/ 'createApplicationResponse' smart constructor.+data CreateApplicationResponse = CreateApplicationResponse'+    { _carsResponseStatus     :: !Int+    , _carsApplicationSummary :: !ApplicationSummary+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'CreateApplicationResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'carsResponseStatus'+--+-- * 'carsApplicationSummary'+createApplicationResponse+    :: Int -- ^ 'carsResponseStatus'+    -> ApplicationSummary -- ^ 'carsApplicationSummary'+    -> CreateApplicationResponse+createApplicationResponse pResponseStatus_ pApplicationSummary_ =+    CreateApplicationResponse'+    { _carsResponseStatus = pResponseStatus_+    , _carsApplicationSummary = pApplicationSummary_+    }++-- | The response status code.+carsResponseStatus :: Lens' CreateApplicationResponse Int+carsResponseStatus = lens _carsResponseStatus (\ s a -> s{_carsResponseStatus = a});++-- | In response to your 'CreateApplication' request, Amazon Kinesis Analytics returns a response with a summary of the application it created, including the application Amazon Resource Name (ARN), name, and status.+carsApplicationSummary :: Lens' CreateApplicationResponse ApplicationSummary+carsApplicationSummary = lens _carsApplicationSummary (\ s a -> s{_carsApplicationSummary = a});++instance NFData CreateApplicationResponse
+ gen/Network/AWS/KinesisAnalytics/DeleteApplication.hs view
@@ -0,0 +1,139 @@+{-# 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.KinesisAnalytics.DeleteApplication+-- Copyright   : (c) 2013-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes the specified application. Amazon Kinesis Analytics halts application execution and deletes the application, including any application artifacts (such as in-application streams, reference table, and application code).+--+-- This operation requires permissions to perform the 'kinesisanalytics:DeleteApplication' action.+module Network.AWS.KinesisAnalytics.DeleteApplication+    (+    -- * Creating a Request+      deleteApplication+    , DeleteApplication+    -- * Request Lenses+    , dApplicationName+    , dCreateTimestamp++    -- * Destructuring the Response+    , deleteApplicationResponse+    , DeleteApplicationResponse+    -- * Response Lenses+    , drsResponseStatus+    ) where++import           Network.AWS.KinesisAnalytics.Types+import           Network.AWS.KinesisAnalytics.Types.Product+import           Network.AWS.Lens+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- |+--+-- /See:/ 'deleteApplication' smart constructor.+data DeleteApplication = DeleteApplication'+    { _dApplicationName :: !Text+    , _dCreateTimestamp :: !POSIX+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DeleteApplication' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dApplicationName'+--+-- * 'dCreateTimestamp'+deleteApplication+    :: Text -- ^ 'dApplicationName'+    -> UTCTime -- ^ 'dCreateTimestamp'+    -> DeleteApplication+deleteApplication pApplicationName_ pCreateTimestamp_ =+    DeleteApplication'+    { _dApplicationName = pApplicationName_+    , _dCreateTimestamp = _Time # pCreateTimestamp_+    }++-- | Name of the Amazon Kinesis Analytics application to delete.+dApplicationName :: Lens' DeleteApplication Text+dApplicationName = lens _dApplicationName (\ s a -> s{_dApplicationName = a});++-- | You can use the 'DescribeApplication' operation to get this value.+dCreateTimestamp :: Lens' DeleteApplication UTCTime+dCreateTimestamp = lens _dCreateTimestamp (\ s a -> s{_dCreateTimestamp = a}) . _Time;++instance AWSRequest DeleteApplication where+        type Rs DeleteApplication = DeleteApplicationResponse+        request = postJSON kinesisAnalytics+        response+          = receiveEmpty+              (\ s h x ->+                 DeleteApplicationResponse' <$> (pure (fromEnum s)))++instance Hashable DeleteApplication++instance NFData DeleteApplication++instance ToHeaders DeleteApplication where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("KinesisAnalytics_20150814.DeleteApplication" ::+                       ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON DeleteApplication where+        toJSON DeleteApplication'{..}+          = object+              (catMaybes+                 [Just ("ApplicationName" .= _dApplicationName),+                  Just ("CreateTimestamp" .= _dCreateTimestamp)])++instance ToPath DeleteApplication where+        toPath = const "/"++instance ToQuery DeleteApplication where+        toQuery = const mempty++-- |+--+-- /See:/ 'deleteApplicationResponse' smart constructor.+newtype DeleteApplicationResponse = DeleteApplicationResponse'+    { _drsResponseStatus :: Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DeleteApplicationResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'drsResponseStatus'+deleteApplicationResponse+    :: Int -- ^ 'drsResponseStatus'+    -> DeleteApplicationResponse+deleteApplicationResponse pResponseStatus_ =+    DeleteApplicationResponse'+    { _drsResponseStatus = pResponseStatus_+    }++-- | The response status code.+drsResponseStatus :: Lens' DeleteApplicationResponse Int+drsResponseStatus = lens _drsResponseStatus (\ s a -> s{_drsResponseStatus = a});++instance NFData DeleteApplicationResponse
+ gen/Network/AWS/KinesisAnalytics/DeleteApplicationOutput.hs view
@@ -0,0 +1,154 @@+{-# 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.KinesisAnalytics.DeleteApplicationOutput+-- Copyright   : (c) 2013-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes output destination configuration from your application configuration. Amazon Kinesis Analytics will no longer write data from the corresponding in-application stream to the external output destination.+--+-- This operation requires permissions to perform the 'kinesisanalytics:DeleteApplicationOutput' action.+module Network.AWS.KinesisAnalytics.DeleteApplicationOutput+    (+    -- * Creating a Request+      deleteApplicationOutput+    , DeleteApplicationOutput+    -- * Request Lenses+    , daoApplicationName+    , daoCurrentApplicationVersionId+    , daoOutputId++    -- * Destructuring the Response+    , deleteApplicationOutputResponse+    , DeleteApplicationOutputResponse+    -- * Response Lenses+    , daorsResponseStatus+    ) where++import           Network.AWS.KinesisAnalytics.Types+import           Network.AWS.KinesisAnalytics.Types.Product+import           Network.AWS.Lens+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- |+--+-- /See:/ 'deleteApplicationOutput' smart constructor.+data DeleteApplicationOutput = DeleteApplicationOutput'+    { _daoApplicationName             :: !Text+    , _daoCurrentApplicationVersionId :: !Nat+    , _daoOutputId                    :: !Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DeleteApplicationOutput' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'daoApplicationName'+--+-- * 'daoCurrentApplicationVersionId'+--+-- * 'daoOutputId'+deleteApplicationOutput+    :: Text -- ^ 'daoApplicationName'+    -> Natural -- ^ 'daoCurrentApplicationVersionId'+    -> Text -- ^ 'daoOutputId'+    -> DeleteApplicationOutput+deleteApplicationOutput pApplicationName_ pCurrentApplicationVersionId_ pOutputId_ =+    DeleteApplicationOutput'+    { _daoApplicationName = pApplicationName_+    , _daoCurrentApplicationVersionId = _Nat # pCurrentApplicationVersionId_+    , _daoOutputId = pOutputId_+    }++-- | Amazon Kinesis Analytics application name.+daoApplicationName :: Lens' DeleteApplicationOutput Text+daoApplicationName = lens _daoApplicationName (\ s a -> s{_daoApplicationName = a});++-- | Amazon Kinesis Analytics application version. You can use the < DescribeApplication> operation to get the current application version. If the version specified is not the current version, the 'ConcurrentModificationException' is returned.+daoCurrentApplicationVersionId :: Lens' DeleteApplicationOutput Natural+daoCurrentApplicationVersionId = lens _daoCurrentApplicationVersionId (\ s a -> s{_daoCurrentApplicationVersionId = a}) . _Nat;++-- | The ID of the configuration to delete. Each output configuration that is added to the application, either when the application is created or later using the < AddApplicationOutput> operation, has a unique ID. You need to provide the ID to uniquely identify the output configuration that you want to delete from the application configuration. You can use the < DescribeApplication> operation to get the specific 'OutputId'.+daoOutputId :: Lens' DeleteApplicationOutput Text+daoOutputId = lens _daoOutputId (\ s a -> s{_daoOutputId = a});++instance AWSRequest DeleteApplicationOutput where+        type Rs DeleteApplicationOutput =+             DeleteApplicationOutputResponse+        request = postJSON kinesisAnalytics+        response+          = receiveEmpty+              (\ s h x ->+                 DeleteApplicationOutputResponse' <$>+                   (pure (fromEnum s)))++instance Hashable DeleteApplicationOutput++instance NFData DeleteApplicationOutput++instance ToHeaders DeleteApplicationOutput where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("KinesisAnalytics_20150814.DeleteApplicationOutput"+                       :: ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON DeleteApplicationOutput where+        toJSON DeleteApplicationOutput'{..}+          = object+              (catMaybes+                 [Just ("ApplicationName" .= _daoApplicationName),+                  Just+                    ("CurrentApplicationVersionId" .=+                       _daoCurrentApplicationVersionId),+                  Just ("OutputId" .= _daoOutputId)])++instance ToPath DeleteApplicationOutput where+        toPath = const "/"++instance ToQuery DeleteApplicationOutput where+        toQuery = const mempty++-- |+--+-- /See:/ 'deleteApplicationOutputResponse' smart constructor.+newtype DeleteApplicationOutputResponse = DeleteApplicationOutputResponse'+    { _daorsResponseStatus :: Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DeleteApplicationOutputResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'daorsResponseStatus'+deleteApplicationOutputResponse+    :: Int -- ^ 'daorsResponseStatus'+    -> DeleteApplicationOutputResponse+deleteApplicationOutputResponse pResponseStatus_ =+    DeleteApplicationOutputResponse'+    { _daorsResponseStatus = pResponseStatus_+    }++-- | The response status code.+daorsResponseStatus :: Lens' DeleteApplicationOutputResponse Int+daorsResponseStatus = lens _daorsResponseStatus (\ s a -> s{_daorsResponseStatus = a});++instance NFData DeleteApplicationOutputResponse
+ gen/Network/AWS/KinesisAnalytics/DeleteApplicationReferenceDataSource.hs view
@@ -0,0 +1,159 @@+{-# 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.KinesisAnalytics.DeleteApplicationReferenceDataSource+-- Copyright   : (c) 2013-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes a reference data source configuration from the specified application configuration.+--+-- If the application is running, Amazon Kinesis Analytics immediately removes the in-application table that you created using the < AddApplicationReferenceDataSource> operation.+--+-- This operation requires permissions to perform the 'kinesisanalytics.DeleteApplicationReferenceDataSource' action.+module Network.AWS.KinesisAnalytics.DeleteApplicationReferenceDataSource+    (+    -- * Creating a Request+      deleteApplicationReferenceDataSource+    , DeleteApplicationReferenceDataSource+    -- * Request Lenses+    , dardsApplicationName+    , dardsCurrentApplicationVersionId+    , dardsReferenceId++    -- * Destructuring the Response+    , deleteApplicationReferenceDataSourceResponse+    , DeleteApplicationReferenceDataSourceResponse+    -- * Response Lenses+    , dardsrsResponseStatus+    ) where++import           Network.AWS.KinesisAnalytics.Types+import           Network.AWS.KinesisAnalytics.Types.Product+import           Network.AWS.Lens+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- | /See:/ 'deleteApplicationReferenceDataSource' smart constructor.+data DeleteApplicationReferenceDataSource = DeleteApplicationReferenceDataSource'+    { _dardsApplicationName             :: !Text+    , _dardsCurrentApplicationVersionId :: !Nat+    , _dardsReferenceId                 :: !Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DeleteApplicationReferenceDataSource' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dardsApplicationName'+--+-- * 'dardsCurrentApplicationVersionId'+--+-- * 'dardsReferenceId'+deleteApplicationReferenceDataSource+    :: Text -- ^ 'dardsApplicationName'+    -> Natural -- ^ 'dardsCurrentApplicationVersionId'+    -> Text -- ^ 'dardsReferenceId'+    -> DeleteApplicationReferenceDataSource+deleteApplicationReferenceDataSource pApplicationName_ pCurrentApplicationVersionId_ pReferenceId_ =+    DeleteApplicationReferenceDataSource'+    { _dardsApplicationName = pApplicationName_+    , _dardsCurrentApplicationVersionId = _Nat # pCurrentApplicationVersionId_+    , _dardsReferenceId = pReferenceId_+    }++-- | Name of an existing application.+dardsApplicationName :: Lens' DeleteApplicationReferenceDataSource Text+dardsApplicationName = lens _dardsApplicationName (\ s a -> s{_dardsApplicationName = a});++-- | Version of the application. You can use the < DescribeApplication> operation to get the current application version. If the version specified is not the current version, the 'ConcurrentModificationException' is returned.+dardsCurrentApplicationVersionId :: Lens' DeleteApplicationReferenceDataSource Natural+dardsCurrentApplicationVersionId = lens _dardsCurrentApplicationVersionId (\ s a -> s{_dardsCurrentApplicationVersionId = a}) . _Nat;++-- | ID of the reference data source. When you add a reference data source to your application using the < AddApplicationReferenceDataSource>, Amazon Kinesis Analytics assigns an ID. You can use the < DescribeApplication> operation to get the reference ID.+dardsReferenceId :: Lens' DeleteApplicationReferenceDataSource Text+dardsReferenceId = lens _dardsReferenceId (\ s a -> s{_dardsReferenceId = a});++instance AWSRequest+         DeleteApplicationReferenceDataSource where+        type Rs DeleteApplicationReferenceDataSource =+             DeleteApplicationReferenceDataSourceResponse+        request = postJSON kinesisAnalytics+        response+          = receiveEmpty+              (\ s h x ->+                 DeleteApplicationReferenceDataSourceResponse' <$>+                   (pure (fromEnum s)))++instance Hashable+         DeleteApplicationReferenceDataSource++instance NFData DeleteApplicationReferenceDataSource++instance ToHeaders+         DeleteApplicationReferenceDataSource where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("KinesisAnalytics_20150814.DeleteApplicationReferenceDataSource"+                       :: ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON DeleteApplicationReferenceDataSource+         where+        toJSON DeleteApplicationReferenceDataSource'{..}+          = object+              (catMaybes+                 [Just ("ApplicationName" .= _dardsApplicationName),+                  Just+                    ("CurrentApplicationVersionId" .=+                       _dardsCurrentApplicationVersionId),+                  Just ("ReferenceId" .= _dardsReferenceId)])++instance ToPath DeleteApplicationReferenceDataSource+         where+        toPath = const "/"++instance ToQuery DeleteApplicationReferenceDataSource+         where+        toQuery = const mempty++-- | /See:/ 'deleteApplicationReferenceDataSourceResponse' smart constructor.+newtype DeleteApplicationReferenceDataSourceResponse = DeleteApplicationReferenceDataSourceResponse'+    { _dardsrsResponseStatus :: Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DeleteApplicationReferenceDataSourceResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dardsrsResponseStatus'+deleteApplicationReferenceDataSourceResponse+    :: Int -- ^ 'dardsrsResponseStatus'+    -> DeleteApplicationReferenceDataSourceResponse+deleteApplicationReferenceDataSourceResponse pResponseStatus_ =+    DeleteApplicationReferenceDataSourceResponse'+    { _dardsrsResponseStatus = pResponseStatus_+    }++-- | The response status code.+dardsrsResponseStatus :: Lens' DeleteApplicationReferenceDataSourceResponse Int+dardsrsResponseStatus = lens _dardsrsResponseStatus (\ s a -> s{_dardsrsResponseStatus = a});++instance NFData+         DeleteApplicationReferenceDataSourceResponse
+ gen/Network/AWS/KinesisAnalytics/DescribeApplication.hs view
@@ -0,0 +1,142 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.KinesisAnalytics.DescribeApplication+-- Copyright   : (c) 2013-2016 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 information about a specific Amazon Kinesis Analytics application.+--+-- If you want to retrieve a list of all applications in your account, use the < ListApplications> operation.+--+-- This operation requires permissions to perform the 'kinesisanalytics:DescribeApplication' action. You can use 'DescribeApplication' to get the current application versionId, which you need to call other operations such as 'Update'.+module Network.AWS.KinesisAnalytics.DescribeApplication+    (+    -- * Creating a Request+      describeApplication+    , DescribeApplication+    -- * Request Lenses+    , daApplicationName++    -- * Destructuring the Response+    , describeApplicationResponse+    , DescribeApplicationResponse+    -- * Response Lenses+    , darsResponseStatus+    , darsApplicationDetail+    ) where++import           Network.AWS.KinesisAnalytics.Types+import           Network.AWS.KinesisAnalytics.Types.Product+import           Network.AWS.Lens+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- |+--+-- /See:/ 'describeApplication' smart constructor.+newtype DescribeApplication = DescribeApplication'+    { _daApplicationName :: Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DescribeApplication' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'daApplicationName'+describeApplication+    :: Text -- ^ 'daApplicationName'+    -> DescribeApplication+describeApplication pApplicationName_ =+    DescribeApplication'+    { _daApplicationName = pApplicationName_+    }++-- | Name of the application.+daApplicationName :: Lens' DescribeApplication Text+daApplicationName = lens _daApplicationName (\ s a -> s{_daApplicationName = a});++instance AWSRequest DescribeApplication where+        type Rs DescribeApplication =+             DescribeApplicationResponse+        request = postJSON kinesisAnalytics+        response+          = receiveJSON+              (\ s h x ->+                 DescribeApplicationResponse' <$>+                   (pure (fromEnum s)) <*> (x .:> "ApplicationDetail"))++instance Hashable DescribeApplication++instance NFData DescribeApplication++instance ToHeaders DescribeApplication where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("KinesisAnalytics_20150814.DescribeApplication" ::+                       ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON DescribeApplication where+        toJSON DescribeApplication'{..}+          = object+              (catMaybes+                 [Just ("ApplicationName" .= _daApplicationName)])++instance ToPath DescribeApplication where+        toPath = const "/"++instance ToQuery DescribeApplication where+        toQuery = const mempty++-- |+--+-- /See:/ 'describeApplicationResponse' smart constructor.+data DescribeApplicationResponse = DescribeApplicationResponse'+    { _darsResponseStatus    :: !Int+    , _darsApplicationDetail :: !ApplicationDetail+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DescribeApplicationResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'darsResponseStatus'+--+-- * 'darsApplicationDetail'+describeApplicationResponse+    :: Int -- ^ 'darsResponseStatus'+    -> ApplicationDetail -- ^ 'darsApplicationDetail'+    -> DescribeApplicationResponse+describeApplicationResponse pResponseStatus_ pApplicationDetail_ =+    DescribeApplicationResponse'+    { _darsResponseStatus = pResponseStatus_+    , _darsApplicationDetail = pApplicationDetail_+    }++-- | The response status code.+darsResponseStatus :: Lens' DescribeApplicationResponse Int+darsResponseStatus = lens _darsResponseStatus (\ s a -> s{_darsResponseStatus = a});++-- | Provides a description of the application, such as the application Amazon Resource Name (ARN), status, latest version, and input and output configuration details.+darsApplicationDetail :: Lens' DescribeApplicationResponse ApplicationDetail+darsApplicationDetail = lens _darsApplicationDetail (\ s a -> s{_darsApplicationDetail = a});++instance NFData DescribeApplicationResponse
+ gen/Network/AWS/KinesisAnalytics/DiscoverInputSchema.hs view
@@ -0,0 +1,186 @@+{-# 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.KinesisAnalytics.DiscoverInputSchema+-- Copyright   : (c) 2013-2016 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)+--+-- Infers a schema by evaluating sample records on the specified streaming source (Amazon Kinesis stream or Amazon Kinesis Firehose delivery stream). In the response, the operation returns the inferred schema and also the sample records that the operation used to infer the schema.+--+-- You can use the inferred schema when configuring a streaming source for your application. For conceptual information, see <http://docs.aws.amazon.com/kinesisanalytics/latest/dev/how-it-works-input.html Configuring Application Input>. Note that when you create an application using the Amazon Kinesis Analytics console, the console uses this operation to infer a schema and show it in the console user interface.+--+-- This operation requires permissions to perform the 'kinesisanalytics:DiscoverInputSchema' action.+module Network.AWS.KinesisAnalytics.DiscoverInputSchema+    (+    -- * Creating a Request+      discoverInputSchema+    , DiscoverInputSchema+    -- * Request Lenses+    , disResourceARN+    , disRoleARN+    , disInputStartingPositionConfiguration++    -- * Destructuring the Response+    , discoverInputSchemaResponse+    , DiscoverInputSchemaResponse+    -- * Response Lenses+    , disrsRawInputRecords+    , disrsInputSchema+    , disrsParsedInputRecords+    , disrsResponseStatus+    ) where++import           Network.AWS.KinesisAnalytics.Types+import           Network.AWS.KinesisAnalytics.Types.Product+import           Network.AWS.Lens+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- |+--+-- /See:/ 'discoverInputSchema' smart constructor.+data DiscoverInputSchema = DiscoverInputSchema'+    { _disResourceARN                        :: !Text+    , _disRoleARN                            :: !Text+    , _disInputStartingPositionConfiguration :: !InputStartingPositionConfiguration+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DiscoverInputSchema' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'disResourceARN'+--+-- * 'disRoleARN'+--+-- * 'disInputStartingPositionConfiguration'+discoverInputSchema+    :: Text -- ^ 'disResourceARN'+    -> Text -- ^ 'disRoleARN'+    -> InputStartingPositionConfiguration -- ^ 'disInputStartingPositionConfiguration'+    -> DiscoverInputSchema+discoverInputSchema pResourceARN_ pRoleARN_ pInputStartingPositionConfiguration_ =+    DiscoverInputSchema'+    { _disResourceARN = pResourceARN_+    , _disRoleARN = pRoleARN_+    , _disInputStartingPositionConfiguration = pInputStartingPositionConfiguration_+    }++-- | Amazon Resource Name (ARN) of the streaming source.+disResourceARN :: Lens' DiscoverInputSchema Text+disResourceARN = lens _disResourceARN (\ s a -> s{_disResourceARN = a});++-- | ARN of the IAM role that Amazon Kinesis Analytics can assume to access the stream on your behalf.+disRoleARN :: Lens' DiscoverInputSchema Text+disRoleARN = lens _disRoleARN (\ s a -> s{_disRoleARN = a});++-- | Point at which you want Amazon Kinesis Analytics to start reading records from the specified streaming source discovery purposes.+disInputStartingPositionConfiguration :: Lens' DiscoverInputSchema InputStartingPositionConfiguration+disInputStartingPositionConfiguration = lens _disInputStartingPositionConfiguration (\ s a -> s{_disInputStartingPositionConfiguration = a});++instance AWSRequest DiscoverInputSchema where+        type Rs DiscoverInputSchema =+             DiscoverInputSchemaResponse+        request = postJSON kinesisAnalytics+        response+          = receiveJSON+              (\ s h x ->+                 DiscoverInputSchemaResponse' <$>+                   (x .?> "RawInputRecords" .!@ mempty) <*>+                     (x .?> "InputSchema")+                     <*> (x .?> "ParsedInputRecords" .!@ mempty)+                     <*> (pure (fromEnum s)))++instance Hashable DiscoverInputSchema++instance NFData DiscoverInputSchema++instance ToHeaders DiscoverInputSchema where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("KinesisAnalytics_20150814.DiscoverInputSchema" ::+                       ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON DiscoverInputSchema where+        toJSON DiscoverInputSchema'{..}+          = object+              (catMaybes+                 [Just ("ResourceARN" .= _disResourceARN),+                  Just ("RoleARN" .= _disRoleARN),+                  Just+                    ("InputStartingPositionConfiguration" .=+                       _disInputStartingPositionConfiguration)])++instance ToPath DiscoverInputSchema where+        toPath = const "/"++instance ToQuery DiscoverInputSchema where+        toQuery = const mempty++-- |+--+-- /See:/ 'discoverInputSchemaResponse' smart constructor.+data DiscoverInputSchemaResponse = DiscoverInputSchemaResponse'+    { _disrsRawInputRecords    :: !(Maybe [Text])+    , _disrsInputSchema        :: !(Maybe SourceSchema)+    , _disrsParsedInputRecords :: !(Maybe [[Text]])+    , _disrsResponseStatus     :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DiscoverInputSchemaResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'disrsRawInputRecords'+--+-- * 'disrsInputSchema'+--+-- * 'disrsParsedInputRecords'+--+-- * 'disrsResponseStatus'+discoverInputSchemaResponse+    :: Int -- ^ 'disrsResponseStatus'+    -> DiscoverInputSchemaResponse+discoverInputSchemaResponse pResponseStatus_ =+    DiscoverInputSchemaResponse'+    { _disrsRawInputRecords = Nothing+    , _disrsInputSchema = Nothing+    , _disrsParsedInputRecords = Nothing+    , _disrsResponseStatus = pResponseStatus_+    }++-- | Raw stream data that was sampled to infer the schema.+disrsRawInputRecords :: Lens' DiscoverInputSchemaResponse [Text]+disrsRawInputRecords = lens _disrsRawInputRecords (\ s a -> s{_disrsRawInputRecords = a}) . _Default . _Coerce;++-- | Schema inferred from the streaming source. It identifies the format of the data in the streaming source and how each data element maps to corresponding columns in the in-application stream that you can create.+disrsInputSchema :: Lens' DiscoverInputSchemaResponse (Maybe SourceSchema)+disrsInputSchema = lens _disrsInputSchema (\ s a -> s{_disrsInputSchema = a});++-- | An array of elements, where each element corresponds to a row in a stream record (a stream record can have more than one row).+disrsParsedInputRecords :: Lens' DiscoverInputSchemaResponse [[Text]]+disrsParsedInputRecords = lens _disrsParsedInputRecords (\ s a -> s{_disrsParsedInputRecords = a}) . _Default . _Coerce;++-- | The response status code.+disrsResponseStatus :: Lens' DiscoverInputSchemaResponse Int+disrsResponseStatus = lens _disrsResponseStatus (\ s a -> s{_disrsResponseStatus = a});++instance NFData DiscoverInputSchemaResponse
+ gen/Network/AWS/KinesisAnalytics/ListApplications.hs view
@@ -0,0 +1,162 @@+{-# 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.KinesisAnalytics.ListApplications+-- Copyright   : (c) 2013-2016 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 a list of Amazon Kinesis Analytics applications in your account. For each application, the response includes the application name, Amazon Resource Name (ARN), and status. If the response returns the 'HasMoreApplications' value as true, you can send another request by adding the 'ExclusiveStartApplicationName' in the request body, and set the value of this to the last application name from the previous response.+--+-- If you want detailed information about a specific application, use < DescribeApplication>.+--+-- This operation requires permissions to perform the 'kinesisanalytics:ListApplications' action.+module Network.AWS.KinesisAnalytics.ListApplications+    (+    -- * Creating a Request+      listApplications+    , ListApplications+    -- * Request Lenses+    , laLimit+    , laExclusiveStartApplicationName++    -- * Destructuring the Response+    , listApplicationsResponse+    , ListApplicationsResponse+    -- * Response Lenses+    , larsResponseStatus+    , larsApplicationSummaries+    , larsHasMoreApplications+    ) where++import           Network.AWS.KinesisAnalytics.Types+import           Network.AWS.KinesisAnalytics.Types.Product+import           Network.AWS.Lens+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- |+--+-- /See:/ 'listApplications' smart constructor.+data ListApplications = ListApplications'+    { _laLimit                         :: !(Maybe Nat)+    , _laExclusiveStartApplicationName :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ListApplications' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'laLimit'+--+-- * 'laExclusiveStartApplicationName'+listApplications+    :: ListApplications+listApplications =+    ListApplications'+    { _laLimit = Nothing+    , _laExclusiveStartApplicationName = Nothing+    }++-- | Maximum number of applications to list.+laLimit :: Lens' ListApplications (Maybe Natural)+laLimit = lens _laLimit (\ s a -> s{_laLimit = a}) . mapping _Nat;++-- | Name of the application to start the list with. When using pagination to retrieve the list, you don\'t need to specify this parameter in the first request. However, in subsequent requests, you add the last application name from the previous response to get the next page of applications.+laExclusiveStartApplicationName :: Lens' ListApplications (Maybe Text)+laExclusiveStartApplicationName = lens _laExclusiveStartApplicationName (\ s a -> s{_laExclusiveStartApplicationName = a});++instance AWSRequest ListApplications where+        type Rs ListApplications = ListApplicationsResponse+        request = postJSON kinesisAnalytics+        response+          = receiveJSON+              (\ s h x ->+                 ListApplicationsResponse' <$>+                   (pure (fromEnum s)) <*>+                     (x .?> "ApplicationSummaries" .!@ mempty)+                     <*> (x .:> "HasMoreApplications"))++instance Hashable ListApplications++instance NFData ListApplications++instance ToHeaders ListApplications where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("KinesisAnalytics_20150814.ListApplications" ::+                       ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON ListApplications where+        toJSON ListApplications'{..}+          = object+              (catMaybes+                 [("Limit" .=) <$> _laLimit,+                  ("ExclusiveStartApplicationName" .=) <$>+                    _laExclusiveStartApplicationName])++instance ToPath ListApplications where+        toPath = const "/"++instance ToQuery ListApplications where+        toQuery = const mempty++-- |+--+-- /See:/ 'listApplicationsResponse' smart constructor.+data ListApplicationsResponse = ListApplicationsResponse'+    { _larsResponseStatus       :: !Int+    , _larsApplicationSummaries :: ![ApplicationSummary]+    , _larsHasMoreApplications  :: !Bool+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ListApplicationsResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'larsResponseStatus'+--+-- * 'larsApplicationSummaries'+--+-- * 'larsHasMoreApplications'+listApplicationsResponse+    :: Int -- ^ 'larsResponseStatus'+    -> Bool -- ^ 'larsHasMoreApplications'+    -> ListApplicationsResponse+listApplicationsResponse pResponseStatus_ pHasMoreApplications_ =+    ListApplicationsResponse'+    { _larsResponseStatus = pResponseStatus_+    , _larsApplicationSummaries = mempty+    , _larsHasMoreApplications = pHasMoreApplications_+    }++-- | The response status code.+larsResponseStatus :: Lens' ListApplicationsResponse Int+larsResponseStatus = lens _larsResponseStatus (\ s a -> s{_larsResponseStatus = a});++-- | List of 'ApplicationSummary' objects.+larsApplicationSummaries :: Lens' ListApplicationsResponse [ApplicationSummary]+larsApplicationSummaries = lens _larsApplicationSummaries (\ s a -> s{_larsApplicationSummaries = a}) . _Coerce;++-- | Returns true if there are more applications to retrieve.+larsHasMoreApplications :: Lens' ListApplicationsResponse Bool+larsHasMoreApplications = lens _larsHasMoreApplications (\ s a -> s{_larsHasMoreApplications = a});++instance NFData ListApplicationsResponse
+ gen/Network/AWS/KinesisAnalytics/StartApplication.hs view
@@ -0,0 +1,145 @@+{-# 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.KinesisAnalytics.StartApplication+-- Copyright   : (c) 2013-2016 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)+--+-- Starts the specified Amazon Kinesis Analytics application. After creating an application, you must exclusively call this operation to start your application.+--+-- After the application starts, it begins consuming the input data, processes it, and writes the output to the configured destination.+--+-- The application status must be 'READY' for you to start an application. You can get the application status in the console or using the < DescribeApplication> operation.+--+-- After you start the application, you can stop the application from processing the input by calling the < StopApplication> operation.+--+-- This operation requires permissions to perform the 'kinesisanalytics:StartApplication' action.+module Network.AWS.KinesisAnalytics.StartApplication+    (+    -- * Creating a Request+      startApplication+    , StartApplication+    -- * Request Lenses+    , saApplicationName+    , saInputConfigurations++    -- * Destructuring the Response+    , startApplicationResponse+    , StartApplicationResponse+    -- * Response Lenses+    , sarsResponseStatus+    ) where++import           Network.AWS.KinesisAnalytics.Types+import           Network.AWS.KinesisAnalytics.Types.Product+import           Network.AWS.Lens+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- |+--+-- /See:/ 'startApplication' smart constructor.+data StartApplication = StartApplication'+    { _saApplicationName     :: !Text+    , _saInputConfigurations :: ![InputConfiguration]+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'StartApplication' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'saApplicationName'+--+-- * 'saInputConfigurations'+startApplication+    :: Text -- ^ 'saApplicationName'+    -> StartApplication+startApplication pApplicationName_ =+    StartApplication'+    { _saApplicationName = pApplicationName_+    , _saInputConfigurations = mempty+    }++-- | Name of the application.+saApplicationName :: Lens' StartApplication Text+saApplicationName = lens _saApplicationName (\ s a -> s{_saApplicationName = a});++-- | Identifies the specific input, by ID, that the application starts consuming. Amazon Kinesis Analytics starts reading the streaming source associated with the input. You can also specify where in the streaming source you want Amazon Kinesis Analytics to start reading.+saInputConfigurations :: Lens' StartApplication [InputConfiguration]+saInputConfigurations = lens _saInputConfigurations (\ s a -> s{_saInputConfigurations = a}) . _Coerce;++instance AWSRequest StartApplication where+        type Rs StartApplication = StartApplicationResponse+        request = postJSON kinesisAnalytics+        response+          = receiveEmpty+              (\ s h x ->+                 StartApplicationResponse' <$> (pure (fromEnum s)))++instance Hashable StartApplication++instance NFData StartApplication++instance ToHeaders StartApplication where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("KinesisAnalytics_20150814.StartApplication" ::+                       ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON StartApplication where+        toJSON StartApplication'{..}+          = object+              (catMaybes+                 [Just ("ApplicationName" .= _saApplicationName),+                  Just+                    ("InputConfigurations" .= _saInputConfigurations)])++instance ToPath StartApplication where+        toPath = const "/"++instance ToQuery StartApplication where+        toQuery = const mempty++-- |+--+-- /See:/ 'startApplicationResponse' smart constructor.+newtype StartApplicationResponse = StartApplicationResponse'+    { _sarsResponseStatus :: Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'StartApplicationResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sarsResponseStatus'+startApplicationResponse+    :: Int -- ^ 'sarsResponseStatus'+    -> StartApplicationResponse+startApplicationResponse pResponseStatus_ =+    StartApplicationResponse'+    { _sarsResponseStatus = pResponseStatus_+    }++-- | The response status code.+sarsResponseStatus :: Lens' StartApplicationResponse Int+sarsResponseStatus = lens _sarsResponseStatus (\ s a -> s{_sarsResponseStatus = a});++instance NFData StartApplicationResponse
+ gen/Network/AWS/KinesisAnalytics/StopApplication.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.KinesisAnalytics.StopApplication+-- Copyright   : (c) 2013-2016 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)+--+-- Stops the application from processing input data. You can stop an application only if it is in the running state. You can use the < DescribeApplication> operation to find the application state. After the application is stopped, Amazon Kinesis Analytics stops reading data from the input, the application stops processing data, and there is no output written to the destination.+--+-- This operation requires permissions to perform the 'kinesisanalytics:StopApplication' action.+module Network.AWS.KinesisAnalytics.StopApplication+    (+    -- * Creating a Request+      stopApplication+    , StopApplication+    -- * Request Lenses+    , sApplicationName++    -- * Destructuring the Response+    , stopApplicationResponse+    , StopApplicationResponse+    -- * Response Lenses+    , srsResponseStatus+    ) where++import           Network.AWS.KinesisAnalytics.Types+import           Network.AWS.KinesisAnalytics.Types.Product+import           Network.AWS.Lens+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- |+--+-- /See:/ 'stopApplication' smart constructor.+newtype StopApplication = StopApplication'+    { _sApplicationName :: Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'StopApplication' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sApplicationName'+stopApplication+    :: Text -- ^ 'sApplicationName'+    -> StopApplication+stopApplication pApplicationName_ =+    StopApplication'+    { _sApplicationName = pApplicationName_+    }++-- | Name of the running application to stop.+sApplicationName :: Lens' StopApplication Text+sApplicationName = lens _sApplicationName (\ s a -> s{_sApplicationName = a});++instance AWSRequest StopApplication where+        type Rs StopApplication = StopApplicationResponse+        request = postJSON kinesisAnalytics+        response+          = receiveEmpty+              (\ s h x ->+                 StopApplicationResponse' <$> (pure (fromEnum s)))++instance Hashable StopApplication++instance NFData StopApplication++instance ToHeaders StopApplication where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("KinesisAnalytics_20150814.StopApplication" ::+                       ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON StopApplication where+        toJSON StopApplication'{..}+          = object+              (catMaybes+                 [Just ("ApplicationName" .= _sApplicationName)])++instance ToPath StopApplication where+        toPath = const "/"++instance ToQuery StopApplication where+        toQuery = const mempty++-- |+--+-- /See:/ 'stopApplicationResponse' smart constructor.+newtype StopApplicationResponse = StopApplicationResponse'+    { _srsResponseStatus :: Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'StopApplicationResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'srsResponseStatus'+stopApplicationResponse+    :: Int -- ^ 'srsResponseStatus'+    -> StopApplicationResponse+stopApplicationResponse pResponseStatus_ =+    StopApplicationResponse'+    { _srsResponseStatus = pResponseStatus_+    }++-- | The response status code.+srsResponseStatus :: Lens' StopApplicationResponse Int+srsResponseStatus = lens _srsResponseStatus (\ s a -> s{_srsResponseStatus = a});++instance NFData StopApplicationResponse
+ gen/Network/AWS/KinesisAnalytics/Types.hs view
@@ -0,0 +1,391 @@+{-# LANGUAGE OverloadedStrings #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.KinesisAnalytics.Types+-- Copyright   : (c) 2013-2016 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.KinesisAnalytics.Types+    (+    -- * Service Configuration+      kinesisAnalytics++    -- * Errors+    , _InvalidApplicationConfigurationException+    , _ResourceProvisionedThroughputExceededException+    , _InvalidArgumentException+    , _CodeValidationException+    , _ConcurrentModificationException+    , _UnableToDetectSchemaException+    , _ResourceNotFoundException+    , _LimitExceededException+    , _ResourceInUseException++    -- * ApplicationStatus+    , ApplicationStatus (..)++    -- * InputStartingPosition+    , InputStartingPosition (..)++    -- * RecordFormatType+    , RecordFormatType (..)++    -- * ApplicationDetail+    , ApplicationDetail+    , applicationDetail+    , adApplicationDescription+    , adOutputDescriptions+    , adReferenceDataSourceDescriptions+    , adInputDescriptions+    , adApplicationCode+    , adCreateTimestamp+    , adLastUpdateTimestamp+    , adApplicationName+    , adApplicationARN+    , adApplicationStatus+    , adApplicationVersionId++    -- * ApplicationSummary+    , ApplicationSummary+    , applicationSummary+    , asApplicationName+    , asApplicationARN+    , asApplicationStatus++    -- * ApplicationUpdate+    , ApplicationUpdate+    , applicationUpdate+    , auReferenceDataSourceUpdates+    , auInputUpdates+    , auOutputUpdates+    , auApplicationCodeUpdate++    -- * CSVMappingParameters+    , CSVMappingParameters+    , csvMappingParameters+    , cmpRecordRowDelimiter+    , cmpRecordColumnDelimiter++    -- * DestinationSchema+    , DestinationSchema+    , destinationSchema+    , dsRecordFormatType++    -- * Input+    , Input+    , input+    , iInputParallelism+    , iKinesisStreamsInput+    , iKinesisFirehoseInput+    , iInputSchema+    , iNamePrefix++    -- * InputConfiguration+    , InputConfiguration+    , inputConfiguration+    , icId+    , icInputStartingPositionConfiguration++    -- * InputDescription+    , InputDescription+    , inputDescription+    , idInputStartingPositionConfiguration+    , idInputParallelism+    , idInputId+    , idInAppStreamNames+    , idKinesisFirehoseInputDescription+    , idInputSchema+    , idKinesisStreamsInputDescription+    , idNamePrefix++    -- * InputParallelism+    , InputParallelism+    , inputParallelism+    , ipCount++    -- * InputParallelismUpdate+    , InputParallelismUpdate+    , inputParallelismUpdate+    , ipuCountUpdate++    -- * InputSchemaUpdate+    , InputSchemaUpdate+    , inputSchemaUpdate+    , isuRecordFormatUpdate+    , isuRecordEncodingUpdate+    , isuRecordColumnUpdates++    -- * InputStartingPositionConfiguration+    , InputStartingPositionConfiguration+    , inputStartingPositionConfiguration+    , ispcInputStartingPosition++    -- * InputUpdate+    , InputUpdate+    , inputUpdate+    , iuKinesisStreamsInputUpdate+    , iuInputParallelismUpdate+    , iuNamePrefixUpdate+    , iuInputSchemaUpdate+    , iuKinesisFirehoseInputUpdate+    , iuInputId++    -- * JSONMappingParameters+    , JSONMappingParameters+    , jsonMappingParameters+    , jmpRecordRowPath++    -- * KinesisFirehoseInput+    , KinesisFirehoseInput+    , kinesisFirehoseInput+    , kfiResourceARN+    , kfiRoleARN++    -- * KinesisFirehoseInputDescription+    , KinesisFirehoseInputDescription+    , kinesisFirehoseInputDescription+    , kfidResourceARN+    , kfidRoleARN++    -- * KinesisFirehoseInputUpdate+    , KinesisFirehoseInputUpdate+    , kinesisFirehoseInputUpdate+    , kfiuRoleARNUpdate+    , kfiuResourceARNUpdate++    -- * KinesisFirehoseOutput+    , KinesisFirehoseOutput+    , kinesisFirehoseOutput+    , kfoResourceARN+    , kfoRoleARN++    -- * KinesisFirehoseOutputDescription+    , KinesisFirehoseOutputDescription+    , kinesisFirehoseOutputDescription+    , kfodResourceARN+    , kfodRoleARN++    -- * KinesisFirehoseOutputUpdate+    , KinesisFirehoseOutputUpdate+    , kinesisFirehoseOutputUpdate+    , kfouRoleARNUpdate+    , kfouResourceARNUpdate++    -- * KinesisStreamsInput+    , KinesisStreamsInput+    , kinesisStreamsInput+    , ksiResourceARN+    , ksiRoleARN++    -- * KinesisStreamsInputDescription+    , KinesisStreamsInputDescription+    , kinesisStreamsInputDescription+    , ksidResourceARN+    , ksidRoleARN++    -- * KinesisStreamsInputUpdate+    , KinesisStreamsInputUpdate+    , kinesisStreamsInputUpdate+    , ksiuRoleARNUpdate+    , ksiuResourceARNUpdate++    -- * KinesisStreamsOutput+    , KinesisStreamsOutput+    , kinesisStreamsOutput+    , ksoResourceARN+    , ksoRoleARN++    -- * KinesisStreamsOutputDescription+    , KinesisStreamsOutputDescription+    , kinesisStreamsOutputDescription+    , ksodResourceARN+    , ksodRoleARN++    -- * KinesisStreamsOutputUpdate+    , KinesisStreamsOutputUpdate+    , kinesisStreamsOutputUpdate+    , ksouRoleARNUpdate+    , ksouResourceARNUpdate++    -- * MappingParameters+    , MappingParameters+    , mappingParameters+    , mpCSVMappingParameters+    , mpJSONMappingParameters++    -- * Output+    , Output+    , output+    , oKinesisStreamsOutput+    , oKinesisFirehoseOutput+    , oName+    , oDestinationSchema++    -- * OutputDescription+    , OutputDescription+    , outputDescription+    , odOutputId+    , odDestinationSchema+    , odKinesisFirehoseOutputDescription+    , odKinesisStreamsOutputDescription+    , odName++    -- * OutputUpdate+    , OutputUpdate+    , outputUpdate+    , ouKinesisStreamsOutputUpdate+    , ouDestinationSchemaUpdate+    , ouKinesisFirehoseOutputUpdate+    , ouNameUpdate+    , ouOutputId++    -- * RecordColumn+    , RecordColumn+    , recordColumn+    , rcMapping+    , rcName+    , rcSqlType++    -- * RecordFormat+    , RecordFormat+    , recordFormat+    , rfMappingParameters+    , rfRecordFormatType++    -- * ReferenceDataSource+    , ReferenceDataSource+    , referenceDataSource+    , rdsS3ReferenceDataSource+    , rdsTableName+    , rdsReferenceSchema++    -- * ReferenceDataSourceDescription+    , ReferenceDataSourceDescription+    , referenceDataSourceDescription+    , rdsdReferenceSchema+    , rdsdReferenceId+    , rdsdTableName+    , rdsdS3ReferenceDataSourceDescription++    -- * ReferenceDataSourceUpdate+    , ReferenceDataSourceUpdate+    , referenceDataSourceUpdate+    , rdsuTableNameUpdate+    , rdsuS3ReferenceDataSourceUpdate+    , rdsuReferenceSchemaUpdate+    , rdsuReferenceId++    -- * S3ReferenceDataSource+    , S3ReferenceDataSource+    , s3ReferenceDataSource+    , srdsBucketARN+    , srdsFileKey+    , srdsReferenceRoleARN++    -- * S3ReferenceDataSourceDescription+    , S3ReferenceDataSourceDescription+    , s3ReferenceDataSourceDescription+    , srdsdBucketARN+    , srdsdFileKey+    , srdsdReferenceRoleARN++    -- * S3ReferenceDataSourceUpdate+    , S3ReferenceDataSourceUpdate+    , s3ReferenceDataSourceUpdate+    , srdsuBucketARNUpdate+    , srdsuFileKeyUpdate+    , srdsuReferenceRoleARNUpdate++    -- * SourceSchema+    , SourceSchema+    , sourceSchema+    , ssRecordEncoding+    , ssRecordFormat+    , ssRecordColumns+    ) where++import           Network.AWS.KinesisAnalytics.Types.Product+import           Network.AWS.KinesisAnalytics.Types.Sum+import           Network.AWS.Lens+import           Network.AWS.Prelude+import           Network.AWS.Sign.V4++-- | API version '2015-08-14' of the Amazon Kinesis Analytics SDK configuration.+kinesisAnalytics :: Service+kinesisAnalytics =+    Service+    { _svcAbbrev = "KinesisAnalytics"+    , _svcSigner = v4+    , _svcPrefix = "kinesisanalytics"+    , _svcVersion = "2015-08-14"+    , _svcEndpoint = defaultEndpoint kinesisAnalytics+    , _svcTimeout = Just 70+    , _svcCheck = statusSuccess+    , _svcError = parseJSONError "KinesisAnalytics"+    , _svcRetry = retry+    }+  where+    retry =+        Exponential+        { _retryBase = 5.0e-2+        , _retryGrowth = 2+        , _retryAttempts = 5+        , _retryCheck = check+        }+    check e+      | has (hasStatus 429) e = Just "too_many_requests"+      | has (hasCode "ThrottlingException" . hasStatus 400) e =+          Just "throttling_exception"+      | has (hasCode "Throttling" . hasStatus 400) e = Just "throttling"+      | has (hasStatus 504) e = Just "gateway_timeout"+      | has (hasStatus 502) e = Just "bad_gateway"+      | has (hasStatus 503) e = Just "service_unavailable"+      | has (hasStatus 500) e = Just "general_server_error"+      | has (hasStatus 509) e = Just "limit_exceeded"+      | otherwise = Nothing++-- | User-provided application configuration is not valid.+_InvalidApplicationConfigurationException :: AsError a => Getting (First ServiceError) a ServiceError+_InvalidApplicationConfigurationException =+    _ServiceError . hasCode "InvalidApplicationConfigurationException"++-- | Discovery failed to get a record from the streaming source because of the Kinesis Streams ProvisionedThroughputExceededException.+_ResourceProvisionedThroughputExceededException :: AsError a => Getting (First ServiceError) a ServiceError+_ResourceProvisionedThroughputExceededException =+    _ServiceError . hasCode "ResourceProvisionedThroughputExceededException"++-- | Specified input parameter value is invalid.+_InvalidArgumentException :: AsError a => Getting (First ServiceError) a ServiceError+_InvalidArgumentException = _ServiceError . hasCode "InvalidArgumentException"++-- | User-provided application code (query) is invalid. This can be a simple syntax error.+_CodeValidationException :: AsError a => Getting (First ServiceError) a ServiceError+_CodeValidationException = _ServiceError . hasCode "CodeValidationException"++-- | Exception thrown as a result of concurrent modification to an application. For example, two individuals attempting to edit the same application at the same time.+_ConcurrentModificationException :: AsError a => Getting (First ServiceError) a ServiceError+_ConcurrentModificationException =+    _ServiceError . hasCode "ConcurrentModificationException"++-- | Data format is not valid, Kinesis Analytics is not able to detect schema for the given streaming source.+_UnableToDetectSchemaException :: AsError a => Getting (First ServiceError) a ServiceError+_UnableToDetectSchemaException =+    _ServiceError . hasCode "UnableToDetectSchemaException"++-- | Specified application can\'t be found.+_ResourceNotFoundException :: AsError a => Getting (First ServiceError) a ServiceError+_ResourceNotFoundException =+    _ServiceError . hasCode "ResourceNotFoundException"++-- | Exceeded the number of applications allowed.+_LimitExceededException :: AsError a => Getting (First ServiceError) a ServiceError+_LimitExceededException = _ServiceError . hasCode "LimitExceededException"++-- | Application is not available for this operation.+_ResourceInUseException :: AsError a => Getting (First ServiceError) a ServiceError+_ResourceInUseException = _ServiceError . hasCode "ResourceInUseException"
+ gen/Network/AWS/KinesisAnalytics/Types/Product.hs view
@@ -0,0 +1,2178 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.KinesisAnalytics.Types.Product+-- Copyright   : (c) 2013-2016 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.KinesisAnalytics.Types.Product where++import           Network.AWS.KinesisAnalytics.Types.Sum+import           Network.AWS.Lens+import           Network.AWS.Prelude++-- | Provides a description of the application, including the application Amazon Resource Name (ARN), status, latest version, and input and output configuration.+--+-- /See:/ 'applicationDetail' smart constructor.+data ApplicationDetail = ApplicationDetail'+    { _adApplicationDescription          :: !(Maybe Text)+    , _adOutputDescriptions              :: !(Maybe [OutputDescription])+    , _adReferenceDataSourceDescriptions :: !(Maybe [ReferenceDataSourceDescription])+    , _adInputDescriptions               :: !(Maybe [InputDescription])+    , _adApplicationCode                 :: !(Maybe Text)+    , _adCreateTimestamp                 :: !(Maybe POSIX)+    , _adLastUpdateTimestamp             :: !(Maybe POSIX)+    , _adApplicationName                 :: !Text+    , _adApplicationARN                  :: !Text+    , _adApplicationStatus               :: !ApplicationStatus+    , _adApplicationVersionId            :: !Nat+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ApplicationDetail' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'adApplicationDescription'+--+-- * 'adOutputDescriptions'+--+-- * 'adReferenceDataSourceDescriptions'+--+-- * 'adInputDescriptions'+--+-- * 'adApplicationCode'+--+-- * 'adCreateTimestamp'+--+-- * 'adLastUpdateTimestamp'+--+-- * 'adApplicationName'+--+-- * 'adApplicationARN'+--+-- * 'adApplicationStatus'+--+-- * 'adApplicationVersionId'+applicationDetail+    :: Text -- ^ 'adApplicationName'+    -> Text -- ^ 'adApplicationARN'+    -> ApplicationStatus -- ^ 'adApplicationStatus'+    -> Natural -- ^ 'adApplicationVersionId'+    -> ApplicationDetail+applicationDetail pApplicationName_ pApplicationARN_ pApplicationStatus_ pApplicationVersionId_ =+    ApplicationDetail'+    { _adApplicationDescription = Nothing+    , _adOutputDescriptions = Nothing+    , _adReferenceDataSourceDescriptions = Nothing+    , _adInputDescriptions = Nothing+    , _adApplicationCode = Nothing+    , _adCreateTimestamp = Nothing+    , _adLastUpdateTimestamp = Nothing+    , _adApplicationName = pApplicationName_+    , _adApplicationARN = pApplicationARN_+    , _adApplicationStatus = pApplicationStatus_+    , _adApplicationVersionId = _Nat # pApplicationVersionId_+    }++-- | Description of the application.+adApplicationDescription :: Lens' ApplicationDetail (Maybe Text)+adApplicationDescription = lens _adApplicationDescription (\ s a -> s{_adApplicationDescription = a});++-- | Describes the application output configuration. For more information, see <http://docs.aws.amazon.com/kinesisanalytics/latest/dev/how-it-works-output.html Configuring Application Output>.+adOutputDescriptions :: Lens' ApplicationDetail [OutputDescription]+adOutputDescriptions = lens _adOutputDescriptions (\ s a -> s{_adOutputDescriptions = a}) . _Default . _Coerce;++-- | Describes reference data sources configured for the application. For more information, see <http://docs.aws.amazon.com/kinesisanalytics/latest/dev/how-it-works-input.html Configuring Application Input>.+adReferenceDataSourceDescriptions :: Lens' ApplicationDetail [ReferenceDataSourceDescription]+adReferenceDataSourceDescriptions = lens _adReferenceDataSourceDescriptions (\ s a -> s{_adReferenceDataSourceDescriptions = a}) . _Default . _Coerce;++-- | Describes the application input configuration. For more information, see <http://docs.aws.amazon.com/kinesisanalytics/latest/dev/how-it-works-input.html Configuring Application Input>.+adInputDescriptions :: Lens' ApplicationDetail [InputDescription]+adInputDescriptions = lens _adInputDescriptions (\ s a -> s{_adInputDescriptions = a}) . _Default . _Coerce;++-- | Returns the application code that you provided to perform data analysis on any of the in-application streams in your application.+adApplicationCode :: Lens' ApplicationDetail (Maybe Text)+adApplicationCode = lens _adApplicationCode (\ s a -> s{_adApplicationCode = a});++-- | Timestamp when the application version was created.+adCreateTimestamp :: Lens' ApplicationDetail (Maybe UTCTime)+adCreateTimestamp = lens _adCreateTimestamp (\ s a -> s{_adCreateTimestamp = a}) . mapping _Time;++-- | Timestamp when the application was last updated.+adLastUpdateTimestamp :: Lens' ApplicationDetail (Maybe UTCTime)+adLastUpdateTimestamp = lens _adLastUpdateTimestamp (\ s a -> s{_adLastUpdateTimestamp = a}) . mapping _Time;++-- | Name of the application.+adApplicationName :: Lens' ApplicationDetail Text+adApplicationName = lens _adApplicationName (\ s a -> s{_adApplicationName = a});++-- | ARN of the application.+adApplicationARN :: Lens' ApplicationDetail Text+adApplicationARN = lens _adApplicationARN (\ s a -> s{_adApplicationARN = a});++-- | Status of the application.+adApplicationStatus :: Lens' ApplicationDetail ApplicationStatus+adApplicationStatus = lens _adApplicationStatus (\ s a -> s{_adApplicationStatus = a});++-- | Provides the current application version.+adApplicationVersionId :: Lens' ApplicationDetail Natural+adApplicationVersionId = lens _adApplicationVersionId (\ s a -> s{_adApplicationVersionId = a}) . _Nat;++instance FromJSON ApplicationDetail where+        parseJSON+          = withObject "ApplicationDetail"+              (\ x ->+                 ApplicationDetail' <$>+                   (x .:? "ApplicationDescription") <*>+                     (x .:? "OutputDescriptions" .!= mempty)+                     <*>+                     (x .:? "ReferenceDataSourceDescriptions" .!= mempty)+                     <*> (x .:? "InputDescriptions" .!= mempty)+                     <*> (x .:? "ApplicationCode")+                     <*> (x .:? "CreateTimestamp")+                     <*> (x .:? "LastUpdateTimestamp")+                     <*> (x .: "ApplicationName")+                     <*> (x .: "ApplicationARN")+                     <*> (x .: "ApplicationStatus")+                     <*> (x .: "ApplicationVersionId"))++instance Hashable ApplicationDetail++instance NFData ApplicationDetail++-- | Provides application summary information, including the application Amazon Resource Name (ARN), name, and status.+--+-- /See:/ 'applicationSummary' smart constructor.+data ApplicationSummary = ApplicationSummary'+    { _asApplicationName   :: !Text+    , _asApplicationARN    :: !Text+    , _asApplicationStatus :: !ApplicationStatus+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ApplicationSummary' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'asApplicationName'+--+-- * 'asApplicationARN'+--+-- * 'asApplicationStatus'+applicationSummary+    :: Text -- ^ 'asApplicationName'+    -> Text -- ^ 'asApplicationARN'+    -> ApplicationStatus -- ^ 'asApplicationStatus'+    -> ApplicationSummary+applicationSummary pApplicationName_ pApplicationARN_ pApplicationStatus_ =+    ApplicationSummary'+    { _asApplicationName = pApplicationName_+    , _asApplicationARN = pApplicationARN_+    , _asApplicationStatus = pApplicationStatus_+    }++-- | Name of the application.+asApplicationName :: Lens' ApplicationSummary Text+asApplicationName = lens _asApplicationName (\ s a -> s{_asApplicationName = a});++-- | ARN of the application.+asApplicationARN :: Lens' ApplicationSummary Text+asApplicationARN = lens _asApplicationARN (\ s a -> s{_asApplicationARN = a});++-- | Status of the application.+asApplicationStatus :: Lens' ApplicationSummary ApplicationStatus+asApplicationStatus = lens _asApplicationStatus (\ s a -> s{_asApplicationStatus = a});++instance FromJSON ApplicationSummary where+        parseJSON+          = withObject "ApplicationSummary"+              (\ x ->+                 ApplicationSummary' <$>+                   (x .: "ApplicationName") <*> (x .: "ApplicationARN")+                     <*> (x .: "ApplicationStatus"))++instance Hashable ApplicationSummary++instance NFData ApplicationSummary++-- | Describes updates to apply to an existing Kinesis Analytics application.+--+-- /See:/ 'applicationUpdate' smart constructor.+data ApplicationUpdate = ApplicationUpdate'+    { _auReferenceDataSourceUpdates :: !(Maybe [ReferenceDataSourceUpdate])+    , _auInputUpdates               :: !(Maybe [InputUpdate])+    , _auOutputUpdates              :: !(Maybe [OutputUpdate])+    , _auApplicationCodeUpdate      :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ApplicationUpdate' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'auReferenceDataSourceUpdates'+--+-- * 'auInputUpdates'+--+-- * 'auOutputUpdates'+--+-- * 'auApplicationCodeUpdate'+applicationUpdate+    :: ApplicationUpdate+applicationUpdate =+    ApplicationUpdate'+    { _auReferenceDataSourceUpdates = Nothing+    , _auInputUpdates = Nothing+    , _auOutputUpdates = Nothing+    , _auApplicationCodeUpdate = Nothing+    }++-- | Describes application reference data source updates.+auReferenceDataSourceUpdates :: Lens' ApplicationUpdate [ReferenceDataSourceUpdate]+auReferenceDataSourceUpdates = lens _auReferenceDataSourceUpdates (\ s a -> s{_auReferenceDataSourceUpdates = a}) . _Default . _Coerce;++-- | Describes application input configuration updates.+auInputUpdates :: Lens' ApplicationUpdate [InputUpdate]+auInputUpdates = lens _auInputUpdates (\ s a -> s{_auInputUpdates = a}) . _Default . _Coerce;++-- | Describes application output configuration updates.+auOutputUpdates :: Lens' ApplicationUpdate [OutputUpdate]+auOutputUpdates = lens _auOutputUpdates (\ s a -> s{_auOutputUpdates = a}) . _Default . _Coerce;++-- | Describes application code updates.+auApplicationCodeUpdate :: Lens' ApplicationUpdate (Maybe Text)+auApplicationCodeUpdate = lens _auApplicationCodeUpdate (\ s a -> s{_auApplicationCodeUpdate = a});++instance Hashable ApplicationUpdate++instance NFData ApplicationUpdate++instance ToJSON ApplicationUpdate where+        toJSON ApplicationUpdate'{..}+          = object+              (catMaybes+                 [("ReferenceDataSourceUpdates" .=) <$>+                    _auReferenceDataSourceUpdates,+                  ("InputUpdates" .=) <$> _auInputUpdates,+                  ("OutputUpdates" .=) <$> _auOutputUpdates,+                  ("ApplicationCodeUpdate" .=) <$>+                    _auApplicationCodeUpdate])++-- | Provides additional mapping information when the record format uses delimiters, such as CSV. For example, the following sample records use CSV format, where the records use the /\'\\n\'/ as the row delimiter and a comma (\",\") as the column delimiter:+--+-- '\"name1\", \"address1\" '+--+-- '\"name2, \"address2\"'+--+-- /See:/ 'csvMappingParameters' smart constructor.+data CSVMappingParameters = CSVMappingParameters'+    { _cmpRecordRowDelimiter    :: !Text+    , _cmpRecordColumnDelimiter :: !Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'CSVMappingParameters' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cmpRecordRowDelimiter'+--+-- * 'cmpRecordColumnDelimiter'+csvMappingParameters+    :: Text -- ^ 'cmpRecordRowDelimiter'+    -> Text -- ^ 'cmpRecordColumnDelimiter'+    -> CSVMappingParameters+csvMappingParameters pRecordRowDelimiter_ pRecordColumnDelimiter_ =+    CSVMappingParameters'+    { _cmpRecordRowDelimiter = pRecordRowDelimiter_+    , _cmpRecordColumnDelimiter = pRecordColumnDelimiter_+    }++-- | Row delimiter. For example, in a CSV format, /\'\\n\'/ is the typical row delimiter.+cmpRecordRowDelimiter :: Lens' CSVMappingParameters Text+cmpRecordRowDelimiter = lens _cmpRecordRowDelimiter (\ s a -> s{_cmpRecordRowDelimiter = a});++-- | Column delimiter. For example, in a CSV format, a comma (\",\") is the typical column delimiter.+cmpRecordColumnDelimiter :: Lens' CSVMappingParameters Text+cmpRecordColumnDelimiter = lens _cmpRecordColumnDelimiter (\ s a -> s{_cmpRecordColumnDelimiter = a});++instance FromJSON CSVMappingParameters where+        parseJSON+          = withObject "CSVMappingParameters"+              (\ x ->+                 CSVMappingParameters' <$>+                   (x .: "RecordRowDelimiter") <*>+                     (x .: "RecordColumnDelimiter"))++instance Hashable CSVMappingParameters++instance NFData CSVMappingParameters++instance ToJSON CSVMappingParameters where+        toJSON CSVMappingParameters'{..}+          = object+              (catMaybes+                 [Just+                    ("RecordRowDelimiter" .= _cmpRecordRowDelimiter),+                  Just+                    ("RecordColumnDelimiter" .=+                       _cmpRecordColumnDelimiter)])++-- | Describes the data format when records are written to the destination. For more information, see <http://docs.aws.amazon.com/kinesisanalytics/latest/dev/how-it-works-output.html Configuring Application Output>.+--+-- /See:/ 'destinationSchema' smart constructor.+newtype DestinationSchema = DestinationSchema'+    { _dsRecordFormatType :: Maybe RecordFormatType+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DestinationSchema' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dsRecordFormatType'+destinationSchema+    :: DestinationSchema+destinationSchema =+    DestinationSchema'+    { _dsRecordFormatType = Nothing+    }++-- | Specifies the format of the records on the output stream.+dsRecordFormatType :: Lens' DestinationSchema (Maybe RecordFormatType)+dsRecordFormatType = lens _dsRecordFormatType (\ s a -> s{_dsRecordFormatType = a});++instance FromJSON DestinationSchema where+        parseJSON+          = withObject "DestinationSchema"+              (\ x ->+                 DestinationSchema' <$> (x .:? "RecordFormatType"))++instance Hashable DestinationSchema++instance NFData DestinationSchema++instance ToJSON DestinationSchema where+        toJSON DestinationSchema'{..}+          = object+              (catMaybes+                 [("RecordFormatType" .=) <$> _dsRecordFormatType])++-- | When you configure the application input, you specify the streaming source, the in-application stream name that is created, and the mapping between the two. For more information, see <http://docs.aws.amazon.com/kinesisanalytics/latest/dev/how-it-works-input.html Configuring Application Input>.+--+-- /See:/ 'input' smart constructor.+data Input = Input'+    { _iInputParallelism     :: !(Maybe InputParallelism)+    , _iKinesisStreamsInput  :: !(Maybe KinesisStreamsInput)+    , _iKinesisFirehoseInput :: !(Maybe KinesisFirehoseInput)+    , _iInputSchema          :: !(Maybe SourceSchema)+    , _iNamePrefix           :: !Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'Input' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'iInputParallelism'+--+-- * 'iKinesisStreamsInput'+--+-- * 'iKinesisFirehoseInput'+--+-- * 'iInputSchema'+--+-- * 'iNamePrefix'+input+    :: Text -- ^ 'iNamePrefix'+    -> Input+input pNamePrefix_ =+    Input'+    { _iInputParallelism = Nothing+    , _iKinesisStreamsInput = Nothing+    , _iKinesisFirehoseInput = Nothing+    , _iInputSchema = Nothing+    , _iNamePrefix = pNamePrefix_+    }++-- | Describes the number of in-application streams to create.+--+-- Data from your source will be routed to these in-application input streams.+--+-- (see <http://docs.aws.amazon.com/kinesisanalytics/latest/dev/how-it-works-input.html Configuring Application Input>.+iInputParallelism :: Lens' Input (Maybe InputParallelism)+iInputParallelism = lens _iInputParallelism (\ s a -> s{_iInputParallelism = a});++-- | If the streaming source is an Amazon Kinesis stream, identifies the stream\'s Amazon Resource Name (ARN) and an IAM role that enables Amazon Kinesis Analytics to access the stream on your behalf.+iKinesisStreamsInput :: Lens' Input (Maybe KinesisStreamsInput)+iKinesisStreamsInput = lens _iKinesisStreamsInput (\ s a -> s{_iKinesisStreamsInput = a});++-- | If the streaming source is an Amazon Kinesis Firehose delivery stream, identifies the Firehose delivery stream\'s ARN and an IAM role that enables Amazon Kinesis Analytics to access the stream on your behalf.+iKinesisFirehoseInput :: Lens' Input (Maybe KinesisFirehoseInput)+iKinesisFirehoseInput = lens _iKinesisFirehoseInput (\ s a -> s{_iKinesisFirehoseInput = a});++-- | Describes the format of the data in the streaming source, and how each data element maps to corresponding columns in the in-application stream that is being created.+--+-- Also used to describe the format of the reference data source.+iInputSchema :: Lens' Input (Maybe SourceSchema)+iInputSchema = lens _iInputSchema (\ s a -> s{_iInputSchema = a});++-- | Name prefix to use when creating in-application stream. Suppose you specify a prefix \"MyInApplicationStream\". Kinesis Analytics will then create one or more (as per the 'InputParallelism' count you specified) in-application streams with names \"MyInApplicationStream_001\", \"MyInApplicationStream_002\" and so on.+iNamePrefix :: Lens' Input Text+iNamePrefix = lens _iNamePrefix (\ s a -> s{_iNamePrefix = a});++instance Hashable Input++instance NFData Input++instance ToJSON Input where+        toJSON Input'{..}+          = object+              (catMaybes+                 [("InputParallelism" .=) <$> _iInputParallelism,+                  ("KinesisStreamsInput" .=) <$> _iKinesisStreamsInput,+                  ("KinesisFirehoseInput" .=) <$>+                    _iKinesisFirehoseInput,+                  ("InputSchema" .=) <$> _iInputSchema,+                  Just ("NamePrefix" .= _iNamePrefix)])++-- | When you start your application, you provide this configuration, which identifies the input source and the point in the input source at which you want the application to start processing records.+--+-- /See:/ 'inputConfiguration' smart constructor.+data InputConfiguration = InputConfiguration'+    { _icId                                 :: !Text+    , _icInputStartingPositionConfiguration :: !InputStartingPositionConfiguration+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'InputConfiguration' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'icId'+--+-- * 'icInputStartingPositionConfiguration'+inputConfiguration+    :: Text -- ^ 'icId'+    -> InputStartingPositionConfiguration -- ^ 'icInputStartingPositionConfiguration'+    -> InputConfiguration+inputConfiguration pId_ pInputStartingPositionConfiguration_ =+    InputConfiguration'+    { _icId = pId_+    , _icInputStartingPositionConfiguration = pInputStartingPositionConfiguration_+    }++-- | Input source ID. You can get this ID by calling the < DescribeApplication> operation.+icId :: Lens' InputConfiguration Text+icId = lens _icId (\ s a -> s{_icId = a});++-- | Point at which you want the application to start processing records from the streaming source.+icInputStartingPositionConfiguration :: Lens' InputConfiguration InputStartingPositionConfiguration+icInputStartingPositionConfiguration = lens _icInputStartingPositionConfiguration (\ s a -> s{_icInputStartingPositionConfiguration = a});++instance Hashable InputConfiguration++instance NFData InputConfiguration++instance ToJSON InputConfiguration where+        toJSON InputConfiguration'{..}+          = object+              (catMaybes+                 [Just ("Id" .= _icId),+                  Just+                    ("InputStartingPositionConfiguration" .=+                       _icInputStartingPositionConfiguration)])++-- | Describes the application input configuration. For more information, see <http://docs.aws.amazon.com/kinesisanalytics/latest/dev/how-it-works-input.html Configuring Application Input>.+--+-- /See:/ 'inputDescription' smart constructor.+data InputDescription = InputDescription'+    { _idInputStartingPositionConfiguration :: !(Maybe InputStartingPositionConfiguration)+    , _idInputParallelism                   :: !(Maybe InputParallelism)+    , _idInputId                            :: !(Maybe Text)+    , _idInAppStreamNames                   :: !(Maybe [Text])+    , _idKinesisFirehoseInputDescription    :: !(Maybe KinesisFirehoseInputDescription)+    , _idInputSchema                        :: !(Maybe SourceSchema)+    , _idKinesisStreamsInputDescription     :: !(Maybe KinesisStreamsInputDescription)+    , _idNamePrefix                         :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'InputDescription' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'idInputStartingPositionConfiguration'+--+-- * 'idInputParallelism'+--+-- * 'idInputId'+--+-- * 'idInAppStreamNames'+--+-- * 'idKinesisFirehoseInputDescription'+--+-- * 'idInputSchema'+--+-- * 'idKinesisStreamsInputDescription'+--+-- * 'idNamePrefix'+inputDescription+    :: InputDescription+inputDescription =+    InputDescription'+    { _idInputStartingPositionConfiguration = Nothing+    , _idInputParallelism = Nothing+    , _idInputId = Nothing+    , _idInAppStreamNames = Nothing+    , _idKinesisFirehoseInputDescription = Nothing+    , _idInputSchema = Nothing+    , _idKinesisStreamsInputDescription = Nothing+    , _idNamePrefix = Nothing+    }++-- | Point at which the application is configured to read from the input stream.+idInputStartingPositionConfiguration :: Lens' InputDescription (Maybe InputStartingPositionConfiguration)+idInputStartingPositionConfiguration = lens _idInputStartingPositionConfiguration (\ s a -> s{_idInputStartingPositionConfiguration = a});++-- | Describes the configured parallelism (number of in-application streams mapped to the streaming source).+idInputParallelism :: Lens' InputDescription (Maybe InputParallelism)+idInputParallelism = lens _idInputParallelism (\ s a -> s{_idInputParallelism = a});++-- | Input ID associated with the application input. This is the ID that Amazon Kinesis Analytics assigns to each input configuration you add to your application.+idInputId :: Lens' InputDescription (Maybe Text)+idInputId = lens _idInputId (\ s a -> s{_idInputId = a});++-- | Returns the in-application stream names that are mapped to the stream source.+idInAppStreamNames :: Lens' InputDescription [Text]+idInAppStreamNames = lens _idInAppStreamNames (\ s a -> s{_idInAppStreamNames = a}) . _Default . _Coerce;++-- | If an Amazon Kinesis Firehose delivery stream is configured as a streaming source, provides the Firehose delivery stream\'s Amazon Resource Name (ARN) and an IAM role that enables Amazon Kinesis Analytics to access the stream on your behalf.+idKinesisFirehoseInputDescription :: Lens' InputDescription (Maybe KinesisFirehoseInputDescription)+idKinesisFirehoseInputDescription = lens _idKinesisFirehoseInputDescription (\ s a -> s{_idKinesisFirehoseInputDescription = a});++-- | Undocumented member.+idInputSchema :: Lens' InputDescription (Maybe SourceSchema)+idInputSchema = lens _idInputSchema (\ s a -> s{_idInputSchema = a});++-- | If an Amazon Kinesis stream is configured as streaming source, provides Amazon Kinesis stream\'s ARN and an IAM role that enables Amazon Kinesis Analytics to access the stream on your behalf.+idKinesisStreamsInputDescription :: Lens' InputDescription (Maybe KinesisStreamsInputDescription)+idKinesisStreamsInputDescription = lens _idKinesisStreamsInputDescription (\ s a -> s{_idKinesisStreamsInputDescription = a});++-- | In-application name prefix.+idNamePrefix :: Lens' InputDescription (Maybe Text)+idNamePrefix = lens _idNamePrefix (\ s a -> s{_idNamePrefix = a});++instance FromJSON InputDescription where+        parseJSON+          = withObject "InputDescription"+              (\ x ->+                 InputDescription' <$>+                   (x .:? "InputStartingPositionConfiguration") <*>+                     (x .:? "InputParallelism")+                     <*> (x .:? "InputId")+                     <*> (x .:? "InAppStreamNames" .!= mempty)+                     <*> (x .:? "KinesisFirehoseInputDescription")+                     <*> (x .:? "InputSchema")+                     <*> (x .:? "KinesisStreamsInputDescription")+                     <*> (x .:? "NamePrefix"))++instance Hashable InputDescription++instance NFData InputDescription++-- | Describes the number of in-application streams to create for a given streaming source. For information about parallellism, see <http://docs.aws.amazon.com/kinesisanalytics/latest/dev/how-it-works-input.html Configuring Application Input>.+--+-- /See:/ 'inputParallelism' smart constructor.+newtype InputParallelism = InputParallelism'+    { _ipCount :: Maybe Nat+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'InputParallelism' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ipCount'+inputParallelism+    :: InputParallelism+inputParallelism =+    InputParallelism'+    { _ipCount = Nothing+    }++-- | Number of in-application streams to create. For more information, see <http://docs.aws.amazon.com/kinesisanalytics/latest/dev/limits.html Limits>.+ipCount :: Lens' InputParallelism (Maybe Natural)+ipCount = lens _ipCount (\ s a -> s{_ipCount = a}) . mapping _Nat;++instance FromJSON InputParallelism where+        parseJSON+          = withObject "InputParallelism"+              (\ x -> InputParallelism' <$> (x .:? "Count"))++instance Hashable InputParallelism++instance NFData InputParallelism++instance ToJSON InputParallelism where+        toJSON InputParallelism'{..}+          = object (catMaybes [("Count" .=) <$> _ipCount])++-- | Provides updates to the parallelism count.+--+-- /See:/ 'inputParallelismUpdate' smart constructor.+newtype InputParallelismUpdate = InputParallelismUpdate'+    { _ipuCountUpdate :: Maybe Nat+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'InputParallelismUpdate' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ipuCountUpdate'+inputParallelismUpdate+    :: InputParallelismUpdate+inputParallelismUpdate =+    InputParallelismUpdate'+    { _ipuCountUpdate = Nothing+    }++-- | Number of in-application streams to create for the specified streaming source.+ipuCountUpdate :: Lens' InputParallelismUpdate (Maybe Natural)+ipuCountUpdate = lens _ipuCountUpdate (\ s a -> s{_ipuCountUpdate = a}) . mapping _Nat;++instance Hashable InputParallelismUpdate++instance NFData InputParallelismUpdate++instance ToJSON InputParallelismUpdate where+        toJSON InputParallelismUpdate'{..}+          = object+              (catMaybes [("CountUpdate" .=) <$> _ipuCountUpdate])++-- | Describes updates for the application\'s input schema.+--+-- /See:/ 'inputSchemaUpdate' smart constructor.+data InputSchemaUpdate = InputSchemaUpdate'+    { _isuRecordFormatUpdate   :: !(Maybe RecordFormat)+    , _isuRecordEncodingUpdate :: !(Maybe Text)+    , _isuRecordColumnUpdates  :: !(Maybe (List1 RecordColumn))+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'InputSchemaUpdate' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'isuRecordFormatUpdate'+--+-- * 'isuRecordEncodingUpdate'+--+-- * 'isuRecordColumnUpdates'+inputSchemaUpdate+    :: InputSchemaUpdate+inputSchemaUpdate =+    InputSchemaUpdate'+    { _isuRecordFormatUpdate = Nothing+    , _isuRecordEncodingUpdate = Nothing+    , _isuRecordColumnUpdates = Nothing+    }++-- | Specifies the format of the records on the streaming source.+isuRecordFormatUpdate :: Lens' InputSchemaUpdate (Maybe RecordFormat)+isuRecordFormatUpdate = lens _isuRecordFormatUpdate (\ s a -> s{_isuRecordFormatUpdate = a});++-- | Specifies the encoding of the records in the streaming source. For example, UTF-8.+isuRecordEncodingUpdate :: Lens' InputSchemaUpdate (Maybe Text)+isuRecordEncodingUpdate = lens _isuRecordEncodingUpdate (\ s a -> s{_isuRecordEncodingUpdate = a});++-- | A list of 'RecordColumn' objects. Each object describes the mapping of the streaming source element to the corresponding column in the in-application stream.+isuRecordColumnUpdates :: Lens' InputSchemaUpdate (Maybe (NonEmpty RecordColumn))+isuRecordColumnUpdates = lens _isuRecordColumnUpdates (\ s a -> s{_isuRecordColumnUpdates = a}) . mapping _List1;++instance Hashable InputSchemaUpdate++instance NFData InputSchemaUpdate++instance ToJSON InputSchemaUpdate where+        toJSON InputSchemaUpdate'{..}+          = object+              (catMaybes+                 [("RecordFormatUpdate" .=) <$>+                    _isuRecordFormatUpdate,+                  ("RecordEncodingUpdate" .=) <$>+                    _isuRecordEncodingUpdate,+                  ("RecordColumnUpdates" .=) <$>+                    _isuRecordColumnUpdates])++-- | Describes the point at which the application reads from the streaming source.+--+-- /See:/ 'inputStartingPositionConfiguration' smart constructor.+newtype InputStartingPositionConfiguration = InputStartingPositionConfiguration'+    { _ispcInputStartingPosition :: Maybe InputStartingPosition+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'InputStartingPositionConfiguration' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ispcInputStartingPosition'+inputStartingPositionConfiguration+    :: InputStartingPositionConfiguration+inputStartingPositionConfiguration =+    InputStartingPositionConfiguration'+    { _ispcInputStartingPosition = Nothing+    }++-- | The starting position on the stream.+--+-- -   'LATEST' - Start reading just after the most recent record in the stream.+--+-- -   'TRIM_HORIZON' - Start reading at the last untrimmed record in the stream, which is the oldest record available in the stream. This option is not available for an Amazon Kinesis Firehose delivery stream.+--+-- -   'LAST_STOPPED_POINT' - Resume reading from where the application last stopped reading.+--+ispcInputStartingPosition :: Lens' InputStartingPositionConfiguration (Maybe InputStartingPosition)+ispcInputStartingPosition = lens _ispcInputStartingPosition (\ s a -> s{_ispcInputStartingPosition = a});++instance FromJSON InputStartingPositionConfiguration+         where+        parseJSON+          = withObject "InputStartingPositionConfiguration"+              (\ x ->+                 InputStartingPositionConfiguration' <$>+                   (x .:? "InputStartingPosition"))++instance Hashable InputStartingPositionConfiguration++instance NFData InputStartingPositionConfiguration++instance ToJSON InputStartingPositionConfiguration+         where+        toJSON InputStartingPositionConfiguration'{..}+          = object+              (catMaybes+                 [("InputStartingPosition" .=) <$>+                    _ispcInputStartingPosition])++-- | Describes updates to a specific input configuration (identified by the 'InputId' of an application).+--+-- /See:/ 'inputUpdate' smart constructor.+data InputUpdate = InputUpdate'+    { _iuKinesisStreamsInputUpdate  :: !(Maybe KinesisStreamsInputUpdate)+    , _iuInputParallelismUpdate     :: !(Maybe InputParallelismUpdate)+    , _iuNamePrefixUpdate           :: !(Maybe Text)+    , _iuInputSchemaUpdate          :: !(Maybe InputSchemaUpdate)+    , _iuKinesisFirehoseInputUpdate :: !(Maybe KinesisFirehoseInputUpdate)+    , _iuInputId                    :: !Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'InputUpdate' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'iuKinesisStreamsInputUpdate'+--+-- * 'iuInputParallelismUpdate'+--+-- * 'iuNamePrefixUpdate'+--+-- * 'iuInputSchemaUpdate'+--+-- * 'iuKinesisFirehoseInputUpdate'+--+-- * 'iuInputId'+inputUpdate+    :: Text -- ^ 'iuInputId'+    -> InputUpdate+inputUpdate pInputId_ =+    InputUpdate'+    { _iuKinesisStreamsInputUpdate = Nothing+    , _iuInputParallelismUpdate = Nothing+    , _iuNamePrefixUpdate = Nothing+    , _iuInputSchemaUpdate = Nothing+    , _iuKinesisFirehoseInputUpdate = Nothing+    , _iuInputId = pInputId_+    }++-- | If a Amazon Kinesis stream is the streaming source to be updated, provides an updated stream ARN and IAM role ARN.+iuKinesisStreamsInputUpdate :: Lens' InputUpdate (Maybe KinesisStreamsInputUpdate)+iuKinesisStreamsInputUpdate = lens _iuKinesisStreamsInputUpdate (\ s a -> s{_iuKinesisStreamsInputUpdate = a});++-- | Describes the parallelism updates (the number in-application streams Kinesis Analytics creates for the specific streaming source).+iuInputParallelismUpdate :: Lens' InputUpdate (Maybe InputParallelismUpdate)+iuInputParallelismUpdate = lens _iuInputParallelismUpdate (\ s a -> s{_iuInputParallelismUpdate = a});++-- | Name prefix for in-application stream(s) that Kinesis Analytics creates for the specific streaming source.+iuNamePrefixUpdate :: Lens' InputUpdate (Maybe Text)+iuNamePrefixUpdate = lens _iuNamePrefixUpdate (\ s a -> s{_iuNamePrefixUpdate = a});++-- | Describes the data format on the streaming source, and how record elements on the streaming source map to columns of the in-application stream that is created.+iuInputSchemaUpdate :: Lens' InputUpdate (Maybe InputSchemaUpdate)+iuInputSchemaUpdate = lens _iuInputSchemaUpdate (\ s a -> s{_iuInputSchemaUpdate = a});++-- | If an Amazon Kinesis Firehose delivery stream is the streaming source to be updated, provides an updated stream Amazon Resource Name (ARN) and IAM role ARN.+iuKinesisFirehoseInputUpdate :: Lens' InputUpdate (Maybe KinesisFirehoseInputUpdate)+iuKinesisFirehoseInputUpdate = lens _iuKinesisFirehoseInputUpdate (\ s a -> s{_iuKinesisFirehoseInputUpdate = a});++-- | Input ID of the application input to be updated.+iuInputId :: Lens' InputUpdate Text+iuInputId = lens _iuInputId (\ s a -> s{_iuInputId = a});++instance Hashable InputUpdate++instance NFData InputUpdate++instance ToJSON InputUpdate where+        toJSON InputUpdate'{..}+          = object+              (catMaybes+                 [("KinesisStreamsInputUpdate" .=) <$>+                    _iuKinesisStreamsInputUpdate,+                  ("InputParallelismUpdate" .=) <$>+                    _iuInputParallelismUpdate,+                  ("NamePrefixUpdate" .=) <$> _iuNamePrefixUpdate,+                  ("InputSchemaUpdate" .=) <$> _iuInputSchemaUpdate,+                  ("KinesisFirehoseInputUpdate" .=) <$>+                    _iuKinesisFirehoseInputUpdate,+                  Just ("InputId" .= _iuInputId)])++-- | Provides additional mapping information when JSON is the record format on the streaming source.+--+-- /See:/ 'jsonMappingParameters' smart constructor.+newtype JSONMappingParameters = JSONMappingParameters'+    { _jmpRecordRowPath :: Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'JSONMappingParameters' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'jmpRecordRowPath'+jsonMappingParameters+    :: Text -- ^ 'jmpRecordRowPath'+    -> JSONMappingParameters+jsonMappingParameters pRecordRowPath_ =+    JSONMappingParameters'+    { _jmpRecordRowPath = pRecordRowPath_+    }++-- | Path to the top-level parent that contains the records.+--+-- For example, consider the following JSON record:+--+-- In the 'RecordRowPath', '\">\"' refers to the root and path '\">.vehicle.Model\"' refers to the specific '\"Model\"' key in the JSON.+jmpRecordRowPath :: Lens' JSONMappingParameters Text+jmpRecordRowPath = lens _jmpRecordRowPath (\ s a -> s{_jmpRecordRowPath = a});++instance FromJSON JSONMappingParameters where+        parseJSON+          = withObject "JSONMappingParameters"+              (\ x ->+                 JSONMappingParameters' <$> (x .: "RecordRowPath"))++instance Hashable JSONMappingParameters++instance NFData JSONMappingParameters++instance ToJSON JSONMappingParameters where+        toJSON JSONMappingParameters'{..}+          = object+              (catMaybes+                 [Just ("RecordRowPath" .= _jmpRecordRowPath)])++-- | Identifies an Amazon Kinesis Firehose delivery stream as the streaming source. You provide the Firehose delivery stream\'s Amazon Resource Name (ARN) and an IAM role ARN that enables Amazon Kinesis Analytics to access the stream on your behalf.+--+-- /See:/ 'kinesisFirehoseInput' smart constructor.+data KinesisFirehoseInput = KinesisFirehoseInput'+    { _kfiResourceARN :: !Text+    , _kfiRoleARN     :: !Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'KinesisFirehoseInput' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'kfiResourceARN'+--+-- * 'kfiRoleARN'+kinesisFirehoseInput+    :: Text -- ^ 'kfiResourceARN'+    -> Text -- ^ 'kfiRoleARN'+    -> KinesisFirehoseInput+kinesisFirehoseInput pResourceARN_ pRoleARN_ =+    KinesisFirehoseInput'+    { _kfiResourceARN = pResourceARN_+    , _kfiRoleARN = pRoleARN_+    }++-- | ARN of the input Firehose delivery stream.+kfiResourceARN :: Lens' KinesisFirehoseInput Text+kfiResourceARN = lens _kfiResourceARN (\ s a -> s{_kfiResourceARN = a});++-- | ARN of the IAM role that Amazon Kinesis Analytics can assume to access the stream on your behalf. You need to make sure the role has necessary permissions to access the stream.+kfiRoleARN :: Lens' KinesisFirehoseInput Text+kfiRoleARN = lens _kfiRoleARN (\ s a -> s{_kfiRoleARN = a});++instance Hashable KinesisFirehoseInput++instance NFData KinesisFirehoseInput++instance ToJSON KinesisFirehoseInput where+        toJSON KinesisFirehoseInput'{..}+          = object+              (catMaybes+                 [Just ("ResourceARN" .= _kfiResourceARN),+                  Just ("RoleARN" .= _kfiRoleARN)])++-- | Describes the Amazon Kinesis Firehose delivery stream that is configured as the streaming source in the application input configuration.+--+-- /See:/ 'kinesisFirehoseInputDescription' smart constructor.+data KinesisFirehoseInputDescription = KinesisFirehoseInputDescription'+    { _kfidResourceARN :: !(Maybe Text)+    , _kfidRoleARN     :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'KinesisFirehoseInputDescription' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'kfidResourceARN'+--+-- * 'kfidRoleARN'+kinesisFirehoseInputDescription+    :: KinesisFirehoseInputDescription+kinesisFirehoseInputDescription =+    KinesisFirehoseInputDescription'+    { _kfidResourceARN = Nothing+    , _kfidRoleARN = Nothing+    }++-- | Amazon Resource Name (ARN) of the Amazon Kinesis Firehose delivery stream.+kfidResourceARN :: Lens' KinesisFirehoseInputDescription (Maybe Text)+kfidResourceARN = lens _kfidResourceARN (\ s a -> s{_kfidResourceARN = a});++-- | ARN of the IAM role that Amazon Kinesis Analytics assumes to access the stream.+kfidRoleARN :: Lens' KinesisFirehoseInputDescription (Maybe Text)+kfidRoleARN = lens _kfidRoleARN (\ s a -> s{_kfidRoleARN = a});++instance FromJSON KinesisFirehoseInputDescription+         where+        parseJSON+          = withObject "KinesisFirehoseInputDescription"+              (\ x ->+                 KinesisFirehoseInputDescription' <$>+                   (x .:? "ResourceARN") <*> (x .:? "RoleARN"))++instance Hashable KinesisFirehoseInputDescription++instance NFData KinesisFirehoseInputDescription++-- | When updating application input configuration, provides information about an Amazon Kinesis Firehose delivery stream as the streaming source.+--+-- /See:/ 'kinesisFirehoseInputUpdate' smart constructor.+data KinesisFirehoseInputUpdate = KinesisFirehoseInputUpdate'+    { _kfiuRoleARNUpdate     :: !(Maybe Text)+    , _kfiuResourceARNUpdate :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'KinesisFirehoseInputUpdate' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'kfiuRoleARNUpdate'+--+-- * 'kfiuResourceARNUpdate'+kinesisFirehoseInputUpdate+    :: KinesisFirehoseInputUpdate+kinesisFirehoseInputUpdate =+    KinesisFirehoseInputUpdate'+    { _kfiuRoleARNUpdate = Nothing+    , _kfiuResourceARNUpdate = Nothing+    }++-- | Amazon Resource Name (ARN) of the IAM role that Amazon Kinesis Analytics can assume to access the stream on your behalf. You need to grant necessary permissions to this role.+kfiuRoleARNUpdate :: Lens' KinesisFirehoseInputUpdate (Maybe Text)+kfiuRoleARNUpdate = lens _kfiuRoleARNUpdate (\ s a -> s{_kfiuRoleARNUpdate = a});++-- | ARN of the input Amazon Kinesis Firehose delivery stream to read.+kfiuResourceARNUpdate :: Lens' KinesisFirehoseInputUpdate (Maybe Text)+kfiuResourceARNUpdate = lens _kfiuResourceARNUpdate (\ s a -> s{_kfiuResourceARNUpdate = a});++instance Hashable KinesisFirehoseInputUpdate++instance NFData KinesisFirehoseInputUpdate++instance ToJSON KinesisFirehoseInputUpdate where+        toJSON KinesisFirehoseInputUpdate'{..}+          = object+              (catMaybes+                 [("RoleARNUpdate" .=) <$> _kfiuRoleARNUpdate,+                  ("ResourceARNUpdate" .=) <$> _kfiuResourceARNUpdate])++-- | When configuring application output, identifies an Amazon Kinesis Firehose delivery stream as the destination. You provide the stream Amazon Resource Name (ARN) and an IAM role that enables Amazon Kinesis Analytics to write to the stream on your behalf.+--+-- /See:/ 'kinesisFirehoseOutput' smart constructor.+data KinesisFirehoseOutput = KinesisFirehoseOutput'+    { _kfoResourceARN :: !Text+    , _kfoRoleARN     :: !Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'KinesisFirehoseOutput' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'kfoResourceARN'+--+-- * 'kfoRoleARN'+kinesisFirehoseOutput+    :: Text -- ^ 'kfoResourceARN'+    -> Text -- ^ 'kfoRoleARN'+    -> KinesisFirehoseOutput+kinesisFirehoseOutput pResourceARN_ pRoleARN_ =+    KinesisFirehoseOutput'+    { _kfoResourceARN = pResourceARN_+    , _kfoRoleARN = pRoleARN_+    }++-- | ARN of the destination Amazon Kinesis Firehose delivery stream to write to.+kfoResourceARN :: Lens' KinesisFirehoseOutput Text+kfoResourceARN = lens _kfoResourceARN (\ s a -> s{_kfoResourceARN = a});++-- | ARN of the IAM role that Amazon Kinesis Analytics can assume to write to the destination stream on your behalf. You need to grant the necessary permissions to this role.+kfoRoleARN :: Lens' KinesisFirehoseOutput Text+kfoRoleARN = lens _kfoRoleARN (\ s a -> s{_kfoRoleARN = a});++instance Hashable KinesisFirehoseOutput++instance NFData KinesisFirehoseOutput++instance ToJSON KinesisFirehoseOutput where+        toJSON KinesisFirehoseOutput'{..}+          = object+              (catMaybes+                 [Just ("ResourceARN" .= _kfoResourceARN),+                  Just ("RoleARN" .= _kfoRoleARN)])++-- | For an application output, describes the Amazon Kinesis Firehose delivery stream configured as its destination.+--+-- /See:/ 'kinesisFirehoseOutputDescription' smart constructor.+data KinesisFirehoseOutputDescription = KinesisFirehoseOutputDescription'+    { _kfodResourceARN :: !(Maybe Text)+    , _kfodRoleARN     :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'KinesisFirehoseOutputDescription' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'kfodResourceARN'+--+-- * 'kfodRoleARN'+kinesisFirehoseOutputDescription+    :: KinesisFirehoseOutputDescription+kinesisFirehoseOutputDescription =+    KinesisFirehoseOutputDescription'+    { _kfodResourceARN = Nothing+    , _kfodRoleARN = Nothing+    }++-- | Amazon Resource Name (ARN) of the Amazon Kinesis Firehose delivery stream.+kfodResourceARN :: Lens' KinesisFirehoseOutputDescription (Maybe Text)+kfodResourceARN = lens _kfodResourceARN (\ s a -> s{_kfodResourceARN = a});++-- | ARN of the IAM role that Amazon Kinesis Analytics can assume to access the stream.+kfodRoleARN :: Lens' KinesisFirehoseOutputDescription (Maybe Text)+kfodRoleARN = lens _kfodRoleARN (\ s a -> s{_kfodRoleARN = a});++instance FromJSON KinesisFirehoseOutputDescription+         where+        parseJSON+          = withObject "KinesisFirehoseOutputDescription"+              (\ x ->+                 KinesisFirehoseOutputDescription' <$>+                   (x .:? "ResourceARN") <*> (x .:? "RoleARN"))++instance Hashable KinesisFirehoseOutputDescription++instance NFData KinesisFirehoseOutputDescription++-- | When updating an output configuration using the < UpdateApplication> operation, provides information about an Amazon Kinesis Firehose delivery stream configured as the destination.+--+-- /See:/ 'kinesisFirehoseOutputUpdate' smart constructor.+data KinesisFirehoseOutputUpdate = KinesisFirehoseOutputUpdate'+    { _kfouRoleARNUpdate     :: !(Maybe Text)+    , _kfouResourceARNUpdate :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'KinesisFirehoseOutputUpdate' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'kfouRoleARNUpdate'+--+-- * 'kfouResourceARNUpdate'+kinesisFirehoseOutputUpdate+    :: KinesisFirehoseOutputUpdate+kinesisFirehoseOutputUpdate =+    KinesisFirehoseOutputUpdate'+    { _kfouRoleARNUpdate = Nothing+    , _kfouResourceARNUpdate = Nothing+    }++-- | ARN of the IAM role that Amazon Kinesis Analytics can assume to access the stream on your behalf. You need to grant necessary permissions to this role.+kfouRoleARNUpdate :: Lens' KinesisFirehoseOutputUpdate (Maybe Text)+kfouRoleARNUpdate = lens _kfouRoleARNUpdate (\ s a -> s{_kfouRoleARNUpdate = a});++-- | Amazon Resource Name (ARN) of the Amazon Kinesis Firehose delivery stream to write to.+kfouResourceARNUpdate :: Lens' KinesisFirehoseOutputUpdate (Maybe Text)+kfouResourceARNUpdate = lens _kfouResourceARNUpdate (\ s a -> s{_kfouResourceARNUpdate = a});++instance Hashable KinesisFirehoseOutputUpdate++instance NFData KinesisFirehoseOutputUpdate++instance ToJSON KinesisFirehoseOutputUpdate where+        toJSON KinesisFirehoseOutputUpdate'{..}+          = object+              (catMaybes+                 [("RoleARNUpdate" .=) <$> _kfouRoleARNUpdate,+                  ("ResourceARNUpdate" .=) <$> _kfouResourceARNUpdate])++-- | Identifies an Amazon Kinesis stream as the streaming source. You provide the stream\'s ARN and an IAM role ARN that enables Amazon Kinesis Analytics to access the stream on your behalf.+--+-- /See:/ 'kinesisStreamsInput' smart constructor.+data KinesisStreamsInput = KinesisStreamsInput'+    { _ksiResourceARN :: !Text+    , _ksiRoleARN     :: !Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'KinesisStreamsInput' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ksiResourceARN'+--+-- * 'ksiRoleARN'+kinesisStreamsInput+    :: Text -- ^ 'ksiResourceARN'+    -> Text -- ^ 'ksiRoleARN'+    -> KinesisStreamsInput+kinesisStreamsInput pResourceARN_ pRoleARN_ =+    KinesisStreamsInput'+    { _ksiResourceARN = pResourceARN_+    , _ksiRoleARN = pRoleARN_+    }++-- | ARN of the input Amazon Kinesis stream to read.+ksiResourceARN :: Lens' KinesisStreamsInput Text+ksiResourceARN = lens _ksiResourceARN (\ s a -> s{_ksiResourceARN = a});++-- | ARN of the IAM role that Amazon Kinesis Analytics can assume to access the stream on your behalf. You need to grant the necessary permissions to this role.+ksiRoleARN :: Lens' KinesisStreamsInput Text+ksiRoleARN = lens _ksiRoleARN (\ s a -> s{_ksiRoleARN = a});++instance Hashable KinesisStreamsInput++instance NFData KinesisStreamsInput++instance ToJSON KinesisStreamsInput where+        toJSON KinesisStreamsInput'{..}+          = object+              (catMaybes+                 [Just ("ResourceARN" .= _ksiResourceARN),+                  Just ("RoleARN" .= _ksiRoleARN)])++-- | Describes the Amazon Kinesis stream that is configured as the streaming source in the application input configuration.+--+-- /See:/ 'kinesisStreamsInputDescription' smart constructor.+data KinesisStreamsInputDescription = KinesisStreamsInputDescription'+    { _ksidResourceARN :: !(Maybe Text)+    , _ksidRoleARN     :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'KinesisStreamsInputDescription' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ksidResourceARN'+--+-- * 'ksidRoleARN'+kinesisStreamsInputDescription+    :: KinesisStreamsInputDescription+kinesisStreamsInputDescription =+    KinesisStreamsInputDescription'+    { _ksidResourceARN = Nothing+    , _ksidRoleARN = Nothing+    }++-- | Amazon Resource Name (ARN) of the Amazon Kinesis stream.+ksidResourceARN :: Lens' KinesisStreamsInputDescription (Maybe Text)+ksidResourceARN = lens _ksidResourceARN (\ s a -> s{_ksidResourceARN = a});++-- | ARN of the IAM role that Amazon Kinesis Analytics can assume to access the stream.+ksidRoleARN :: Lens' KinesisStreamsInputDescription (Maybe Text)+ksidRoleARN = lens _ksidRoleARN (\ s a -> s{_ksidRoleARN = a});++instance FromJSON KinesisStreamsInputDescription+         where+        parseJSON+          = withObject "KinesisStreamsInputDescription"+              (\ x ->+                 KinesisStreamsInputDescription' <$>+                   (x .:? "ResourceARN") <*> (x .:? "RoleARN"))++instance Hashable KinesisStreamsInputDescription++instance NFData KinesisStreamsInputDescription++-- | When updating application input configuration, provides information about an Amazon Kinesis stream as the streaming source.+--+-- /See:/ 'kinesisStreamsInputUpdate' smart constructor.+data KinesisStreamsInputUpdate = KinesisStreamsInputUpdate'+    { _ksiuRoleARNUpdate     :: !(Maybe Text)+    , _ksiuResourceARNUpdate :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'KinesisStreamsInputUpdate' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ksiuRoleARNUpdate'+--+-- * 'ksiuResourceARNUpdate'+kinesisStreamsInputUpdate+    :: KinesisStreamsInputUpdate+kinesisStreamsInputUpdate =+    KinesisStreamsInputUpdate'+    { _ksiuRoleARNUpdate = Nothing+    , _ksiuResourceARNUpdate = Nothing+    }++-- | ARN of the IAM role that Amazon Kinesis Analytics can assume to access the stream on your behalf. You need to grant the necessary permissions to this role.+ksiuRoleARNUpdate :: Lens' KinesisStreamsInputUpdate (Maybe Text)+ksiuRoleARNUpdate = lens _ksiuRoleARNUpdate (\ s a -> s{_ksiuRoleARNUpdate = a});++-- | Amazon Resource Name (ARN) of the input Amazon Kinesis stream to read.+ksiuResourceARNUpdate :: Lens' KinesisStreamsInputUpdate (Maybe Text)+ksiuResourceARNUpdate = lens _ksiuResourceARNUpdate (\ s a -> s{_ksiuResourceARNUpdate = a});++instance Hashable KinesisStreamsInputUpdate++instance NFData KinesisStreamsInputUpdate++instance ToJSON KinesisStreamsInputUpdate where+        toJSON KinesisStreamsInputUpdate'{..}+          = object+              (catMaybes+                 [("RoleARNUpdate" .=) <$> _ksiuRoleARNUpdate,+                  ("ResourceARNUpdate" .=) <$> _ksiuResourceARNUpdate])++-- | When configuring application output, identifies a Amazon Kinesis stream as the destination. You provide the stream Amazon Resource Name (ARN) and also an IAM role ARN that Amazon Kinesis Analytics can use to write to the stream on your behalf.+--+-- /See:/ 'kinesisStreamsOutput' smart constructor.+data KinesisStreamsOutput = KinesisStreamsOutput'+    { _ksoResourceARN :: !Text+    , _ksoRoleARN     :: !Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'KinesisStreamsOutput' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ksoResourceARN'+--+-- * 'ksoRoleARN'+kinesisStreamsOutput+    :: Text -- ^ 'ksoResourceARN'+    -> Text -- ^ 'ksoRoleARN'+    -> KinesisStreamsOutput+kinesisStreamsOutput pResourceARN_ pRoleARN_ =+    KinesisStreamsOutput'+    { _ksoResourceARN = pResourceARN_+    , _ksoRoleARN = pRoleARN_+    }++-- | ARN of the destination Amazon Kinesis stream to write to.+ksoResourceARN :: Lens' KinesisStreamsOutput Text+ksoResourceARN = lens _ksoResourceARN (\ s a -> s{_ksoResourceARN = a});++-- | ARN of the IAM role that Amazon Kinesis Analytics can assume to write to the destination stream on your behalf. You need to grant the necessary permissions to this role.+ksoRoleARN :: Lens' KinesisStreamsOutput Text+ksoRoleARN = lens _ksoRoleARN (\ s a -> s{_ksoRoleARN = a});++instance Hashable KinesisStreamsOutput++instance NFData KinesisStreamsOutput++instance ToJSON KinesisStreamsOutput where+        toJSON KinesisStreamsOutput'{..}+          = object+              (catMaybes+                 [Just ("ResourceARN" .= _ksoResourceARN),+                  Just ("RoleARN" .= _ksoRoleARN)])++-- | For an application output, describes the Amazon Kinesis stream configured as its destination.+--+-- /See:/ 'kinesisStreamsOutputDescription' smart constructor.+data KinesisStreamsOutputDescription = KinesisStreamsOutputDescription'+    { _ksodResourceARN :: !(Maybe Text)+    , _ksodRoleARN     :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'KinesisStreamsOutputDescription' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ksodResourceARN'+--+-- * 'ksodRoleARN'+kinesisStreamsOutputDescription+    :: KinesisStreamsOutputDescription+kinesisStreamsOutputDescription =+    KinesisStreamsOutputDescription'+    { _ksodResourceARN = Nothing+    , _ksodRoleARN = Nothing+    }++-- | Amazon Resource Name (ARN) of the Amazon Kinesis stream.+ksodResourceARN :: Lens' KinesisStreamsOutputDescription (Maybe Text)+ksodResourceARN = lens _ksodResourceARN (\ s a -> s{_ksodResourceARN = a});++-- | ARN of the IAM role that Amazon Kinesis Analytics can assume to access the stream.+ksodRoleARN :: Lens' KinesisStreamsOutputDescription (Maybe Text)+ksodRoleARN = lens _ksodRoleARN (\ s a -> s{_ksodRoleARN = a});++instance FromJSON KinesisStreamsOutputDescription+         where+        parseJSON+          = withObject "KinesisStreamsOutputDescription"+              (\ x ->+                 KinesisStreamsOutputDescription' <$>+                   (x .:? "ResourceARN") <*> (x .:? "RoleARN"))++instance Hashable KinesisStreamsOutputDescription++instance NFData KinesisStreamsOutputDescription++-- | When updating an output configuration using the < UpdateApplication> operation, provides information about an Amazon Kinesis stream configured as the destination.+--+-- /See:/ 'kinesisStreamsOutputUpdate' smart constructor.+data KinesisStreamsOutputUpdate = KinesisStreamsOutputUpdate'+    { _ksouRoleARNUpdate     :: !(Maybe Text)+    , _ksouResourceARNUpdate :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'KinesisStreamsOutputUpdate' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ksouRoleARNUpdate'+--+-- * 'ksouResourceARNUpdate'+kinesisStreamsOutputUpdate+    :: KinesisStreamsOutputUpdate+kinesisStreamsOutputUpdate =+    KinesisStreamsOutputUpdate'+    { _ksouRoleARNUpdate = Nothing+    , _ksouResourceARNUpdate = Nothing+    }++-- | ARN of the IAM role that Amazon Kinesis Analytics can assume to access the stream on your behalf. You need to grant the necessary permissions to this role.+ksouRoleARNUpdate :: Lens' KinesisStreamsOutputUpdate (Maybe Text)+ksouRoleARNUpdate = lens _ksouRoleARNUpdate (\ s a -> s{_ksouRoleARNUpdate = a});++-- | Amazon Resource Name (ARN) of the Amazon Kinesis stream where you want to write the output.+ksouResourceARNUpdate :: Lens' KinesisStreamsOutputUpdate (Maybe Text)+ksouResourceARNUpdate = lens _ksouResourceARNUpdate (\ s a -> s{_ksouResourceARNUpdate = a});++instance Hashable KinesisStreamsOutputUpdate++instance NFData KinesisStreamsOutputUpdate++instance ToJSON KinesisStreamsOutputUpdate where+        toJSON KinesisStreamsOutputUpdate'{..}+          = object+              (catMaybes+                 [("RoleARNUpdate" .=) <$> _ksouRoleARNUpdate,+                  ("ResourceARNUpdate" .=) <$> _ksouResourceARNUpdate])++-- | When configuring application input at the time of creating or updating an application, provides additional mapping information specific to the record format (such as JSON, CSV, or record fields delimited by some delimiter) on the streaming source.+--+-- /See:/ 'mappingParameters' smart constructor.+data MappingParameters = MappingParameters'+    { _mpCSVMappingParameters  :: !(Maybe CSVMappingParameters)+    , _mpJSONMappingParameters :: !(Maybe JSONMappingParameters)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'MappingParameters' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mpCSVMappingParameters'+--+-- * 'mpJSONMappingParameters'+mappingParameters+    :: MappingParameters+mappingParameters =+    MappingParameters'+    { _mpCSVMappingParameters = Nothing+    , _mpJSONMappingParameters = Nothing+    }++-- | Provides additional mapping information when the record format uses delimiters (for example, CSV).+mpCSVMappingParameters :: Lens' MappingParameters (Maybe CSVMappingParameters)+mpCSVMappingParameters = lens _mpCSVMappingParameters (\ s a -> s{_mpCSVMappingParameters = a});++-- | Provides additional mapping information when JSON is the record format on the streaming source.+mpJSONMappingParameters :: Lens' MappingParameters (Maybe JSONMappingParameters)+mpJSONMappingParameters = lens _mpJSONMappingParameters (\ s a -> s{_mpJSONMappingParameters = a});++instance FromJSON MappingParameters where+        parseJSON+          = withObject "MappingParameters"+              (\ x ->+                 MappingParameters' <$>+                   (x .:? "CSVMappingParameters") <*>+                     (x .:? "JSONMappingParameters"))++instance Hashable MappingParameters++instance NFData MappingParameters++instance ToJSON MappingParameters where+        toJSON MappingParameters'{..}+          = object+              (catMaybes+                 [("CSVMappingParameters" .=) <$>+                    _mpCSVMappingParameters,+                  ("JSONMappingParameters" .=) <$>+                    _mpJSONMappingParameters])++-- | Describes application output configuration in which you identify an in-application stream and a destination where you want the in-application stream data to be written. The destination can be an Amazon Kinesis stream or an Amazon Kinesis Firehose delivery stream.+--+-- You can configure your application to write output to up to five destinations.+--+-- /See:/ 'output' smart constructor.+data Output = Output'+    { _oKinesisStreamsOutput  :: !(Maybe KinesisStreamsOutput)+    , _oKinesisFirehoseOutput :: !(Maybe KinesisFirehoseOutput)+    , _oName                  :: !Text+    , _oDestinationSchema     :: !DestinationSchema+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'Output' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'oKinesisStreamsOutput'+--+-- * 'oKinesisFirehoseOutput'+--+-- * 'oName'+--+-- * 'oDestinationSchema'+output+    :: Text -- ^ 'oName'+    -> DestinationSchema -- ^ 'oDestinationSchema'+    -> Output+output pName_ pDestinationSchema_ =+    Output'+    { _oKinesisStreamsOutput = Nothing+    , _oKinesisFirehoseOutput = Nothing+    , _oName = pName_+    , _oDestinationSchema = pDestinationSchema_+    }++-- | Identifies an Amazon Kinesis stream as the destination.+oKinesisStreamsOutput :: Lens' Output (Maybe KinesisStreamsOutput)+oKinesisStreamsOutput = lens _oKinesisStreamsOutput (\ s a -> s{_oKinesisStreamsOutput = a});++-- | Identifies an Amazon Kinesis Firehose delivery stream as the destination.+oKinesisFirehoseOutput :: Lens' Output (Maybe KinesisFirehoseOutput)+oKinesisFirehoseOutput = lens _oKinesisFirehoseOutput (\ s a -> s{_oKinesisFirehoseOutput = a});++-- | Name of the in-application stream.+oName :: Lens' Output Text+oName = lens _oName (\ s a -> s{_oName = a});++-- | Undocumented member.+oDestinationSchema :: Lens' Output DestinationSchema+oDestinationSchema = lens _oDestinationSchema (\ s a -> s{_oDestinationSchema = a});++instance Hashable Output++instance NFData Output++instance ToJSON Output where+        toJSON Output'{..}+          = object+              (catMaybes+                 [("KinesisStreamsOutput" .=) <$>+                    _oKinesisStreamsOutput,+                  ("KinesisFirehoseOutput" .=) <$>+                    _oKinesisFirehoseOutput,+                  Just ("Name" .= _oName),+                  Just ("DestinationSchema" .= _oDestinationSchema)])++-- | Describes the application output configuration, which includes the in-application stream name and the destination where the stream data is written. The destination can be an Amazon Kinesis stream or an Amazon Kinesis Firehose delivery stream.+--+-- /See:/ 'outputDescription' smart constructor.+data OutputDescription = OutputDescription'+    { _odOutputId                         :: !(Maybe Text)+    , _odDestinationSchema                :: !(Maybe DestinationSchema)+    , _odKinesisFirehoseOutputDescription :: !(Maybe KinesisFirehoseOutputDescription)+    , _odKinesisStreamsOutputDescription  :: !(Maybe KinesisStreamsOutputDescription)+    , _odName                             :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'OutputDescription' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'odOutputId'+--+-- * 'odDestinationSchema'+--+-- * 'odKinesisFirehoseOutputDescription'+--+-- * 'odKinesisStreamsOutputDescription'+--+-- * 'odName'+outputDescription+    :: OutputDescription+outputDescription =+    OutputDescription'+    { _odOutputId = Nothing+    , _odDestinationSchema = Nothing+    , _odKinesisFirehoseOutputDescription = Nothing+    , _odKinesisStreamsOutputDescription = Nothing+    , _odName = Nothing+    }++-- | A unique identifier for the output configuration.+odOutputId :: Lens' OutputDescription (Maybe Text)+odOutputId = lens _odOutputId (\ s a -> s{_odOutputId = a});++-- | Data format used for writing data to the destination.+odDestinationSchema :: Lens' OutputDescription (Maybe DestinationSchema)+odDestinationSchema = lens _odDestinationSchema (\ s a -> s{_odDestinationSchema = a});++-- | Describes the Amazon Kinesis Firehose delivery stream configured as the destination where output is written.+odKinesisFirehoseOutputDescription :: Lens' OutputDescription (Maybe KinesisFirehoseOutputDescription)+odKinesisFirehoseOutputDescription = lens _odKinesisFirehoseOutputDescription (\ s a -> s{_odKinesisFirehoseOutputDescription = a});++-- | Describes Amazon Kinesis stream configured as the destination where output is written.+odKinesisStreamsOutputDescription :: Lens' OutputDescription (Maybe KinesisStreamsOutputDescription)+odKinesisStreamsOutputDescription = lens _odKinesisStreamsOutputDescription (\ s a -> s{_odKinesisStreamsOutputDescription = a});++-- | Name of the in-application stream configured as output.+odName :: Lens' OutputDescription (Maybe Text)+odName = lens _odName (\ s a -> s{_odName = a});++instance FromJSON OutputDescription where+        parseJSON+          = withObject "OutputDescription"+              (\ x ->+                 OutputDescription' <$>+                   (x .:? "OutputId") <*> (x .:? "DestinationSchema")+                     <*> (x .:? "KinesisFirehoseOutputDescription")+                     <*> (x .:? "KinesisStreamsOutputDescription")+                     <*> (x .:? "Name"))++instance Hashable OutputDescription++instance NFData OutputDescription++-- | Describes updates to the output configuration identified by the 'OutputId'.+--+-- /See:/ 'outputUpdate' smart constructor.+data OutputUpdate = OutputUpdate'+    { _ouKinesisStreamsOutputUpdate  :: !(Maybe KinesisStreamsOutputUpdate)+    , _ouDestinationSchemaUpdate     :: !(Maybe DestinationSchema)+    , _ouKinesisFirehoseOutputUpdate :: !(Maybe KinesisFirehoseOutputUpdate)+    , _ouNameUpdate                  :: !(Maybe Text)+    , _ouOutputId                    :: !Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'OutputUpdate' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ouKinesisStreamsOutputUpdate'+--+-- * 'ouDestinationSchemaUpdate'+--+-- * 'ouKinesisFirehoseOutputUpdate'+--+-- * 'ouNameUpdate'+--+-- * 'ouOutputId'+outputUpdate+    :: Text -- ^ 'ouOutputId'+    -> OutputUpdate+outputUpdate pOutputId_ =+    OutputUpdate'+    { _ouKinesisStreamsOutputUpdate = Nothing+    , _ouDestinationSchemaUpdate = Nothing+    , _ouKinesisFirehoseOutputUpdate = Nothing+    , _ouNameUpdate = Nothing+    , _ouOutputId = pOutputId_+    }++-- | Describes an Amazon Kinesis stream as the destination for the output.+ouKinesisStreamsOutputUpdate :: Lens' OutputUpdate (Maybe KinesisStreamsOutputUpdate)+ouKinesisStreamsOutputUpdate = lens _ouKinesisStreamsOutputUpdate (\ s a -> s{_ouKinesisStreamsOutputUpdate = a});++-- | Undocumented member.+ouDestinationSchemaUpdate :: Lens' OutputUpdate (Maybe DestinationSchema)+ouDestinationSchemaUpdate = lens _ouDestinationSchemaUpdate (\ s a -> s{_ouDestinationSchemaUpdate = a});++-- | Describes a Amazon Kinesis Firehose delivery stream as the destination for the output.+ouKinesisFirehoseOutputUpdate :: Lens' OutputUpdate (Maybe KinesisFirehoseOutputUpdate)+ouKinesisFirehoseOutputUpdate = lens _ouKinesisFirehoseOutputUpdate (\ s a -> s{_ouKinesisFirehoseOutputUpdate = a});++-- | If you want to specify a different in-application stream for this output configuration, use this field to specify the new in-application stream name.+ouNameUpdate :: Lens' OutputUpdate (Maybe Text)+ouNameUpdate = lens _ouNameUpdate (\ s a -> s{_ouNameUpdate = a});++-- | Identifies the specific output configuration that you want to update.+ouOutputId :: Lens' OutputUpdate Text+ouOutputId = lens _ouOutputId (\ s a -> s{_ouOutputId = a});++instance Hashable OutputUpdate++instance NFData OutputUpdate++instance ToJSON OutputUpdate where+        toJSON OutputUpdate'{..}+          = object+              (catMaybes+                 [("KinesisStreamsOutputUpdate" .=) <$>+                    _ouKinesisStreamsOutputUpdate,+                  ("DestinationSchemaUpdate" .=) <$>+                    _ouDestinationSchemaUpdate,+                  ("KinesisFirehoseOutputUpdate" .=) <$>+                    _ouKinesisFirehoseOutputUpdate,+                  ("NameUpdate" .=) <$> _ouNameUpdate,+                  Just ("OutputId" .= _ouOutputId)])++-- | Describes the mapping of each data element in the streaming source to the corresponding column in the in-application stream.+--+-- Also used to describe the format of the reference data source.+--+-- /See:/ 'recordColumn' smart constructor.+data RecordColumn = RecordColumn'+    { _rcMapping :: !(Maybe Text)+    , _rcName    :: !Text+    , _rcSqlType :: !Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'RecordColumn' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rcMapping'+--+-- * 'rcName'+--+-- * 'rcSqlType'+recordColumn+    :: Text -- ^ 'rcName'+    -> Text -- ^ 'rcSqlType'+    -> RecordColumn+recordColumn pName_ pSqlType_ =+    RecordColumn'+    { _rcMapping = Nothing+    , _rcName = pName_+    , _rcSqlType = pSqlType_+    }++-- | Reference to the data element in the streaming input of the reference data source.+rcMapping :: Lens' RecordColumn (Maybe Text)+rcMapping = lens _rcMapping (\ s a -> s{_rcMapping = a});++-- | Name of the column created in the in-application input stream or reference table.+rcName :: Lens' RecordColumn Text+rcName = lens _rcName (\ s a -> s{_rcName = a});++-- | Type of column created in the in-application input stream or reference table.+rcSqlType :: Lens' RecordColumn Text+rcSqlType = lens _rcSqlType (\ s a -> s{_rcSqlType = a});++instance FromJSON RecordColumn where+        parseJSON+          = withObject "RecordColumn"+              (\ x ->+                 RecordColumn' <$>+                   (x .:? "Mapping") <*> (x .: "Name") <*>+                     (x .: "SqlType"))++instance Hashable RecordColumn++instance NFData RecordColumn++instance ToJSON RecordColumn where+        toJSON RecordColumn'{..}+          = object+              (catMaybes+                 [("Mapping" .=) <$> _rcMapping,+                  Just ("Name" .= _rcName),+                  Just ("SqlType" .= _rcSqlType)])++-- | Describes the record format and relevant mapping information that should be applied to schematize the records on the stream.+--+-- /See:/ 'recordFormat' smart constructor.+data RecordFormat = RecordFormat'+    { _rfMappingParameters :: !(Maybe MappingParameters)+    , _rfRecordFormatType  :: !RecordFormatType+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'RecordFormat' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rfMappingParameters'+--+-- * 'rfRecordFormatType'+recordFormat+    :: RecordFormatType -- ^ 'rfRecordFormatType'+    -> RecordFormat+recordFormat pRecordFormatType_ =+    RecordFormat'+    { _rfMappingParameters = Nothing+    , _rfRecordFormatType = pRecordFormatType_+    }++-- | Undocumented member.+rfMappingParameters :: Lens' RecordFormat (Maybe MappingParameters)+rfMappingParameters = lens _rfMappingParameters (\ s a -> s{_rfMappingParameters = a});++-- | The type of record format.+rfRecordFormatType :: Lens' RecordFormat RecordFormatType+rfRecordFormatType = lens _rfRecordFormatType (\ s a -> s{_rfRecordFormatType = a});++instance FromJSON RecordFormat where+        parseJSON+          = withObject "RecordFormat"+              (\ x ->+                 RecordFormat' <$>+                   (x .:? "MappingParameters") <*>+                     (x .: "RecordFormatType"))++instance Hashable RecordFormat++instance NFData RecordFormat++instance ToJSON RecordFormat where+        toJSON RecordFormat'{..}+          = object+              (catMaybes+                 [("MappingParameters" .=) <$> _rfMappingParameters,+                  Just ("RecordFormatType" .= _rfRecordFormatType)])++-- | Describes the reference data source by providing the source information (S3 bucket name and object key name), the resulting in-application table name that is created, and the necessary schema to map the data elements in the Amazon S3 object to the in-application table.+--+-- /See:/ 'referenceDataSource' smart constructor.+data ReferenceDataSource = ReferenceDataSource'+    { _rdsS3ReferenceDataSource :: !(Maybe S3ReferenceDataSource)+    , _rdsTableName             :: !Text+    , _rdsReferenceSchema       :: !SourceSchema+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ReferenceDataSource' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rdsS3ReferenceDataSource'+--+-- * 'rdsTableName'+--+-- * 'rdsReferenceSchema'+referenceDataSource+    :: Text -- ^ 'rdsTableName'+    -> SourceSchema -- ^ 'rdsReferenceSchema'+    -> ReferenceDataSource+referenceDataSource pTableName_ pReferenceSchema_ =+    ReferenceDataSource'+    { _rdsS3ReferenceDataSource = Nothing+    , _rdsTableName = pTableName_+    , _rdsReferenceSchema = pReferenceSchema_+    }++-- | Undocumented member.+rdsS3ReferenceDataSource :: Lens' ReferenceDataSource (Maybe S3ReferenceDataSource)+rdsS3ReferenceDataSource = lens _rdsS3ReferenceDataSource (\ s a -> s{_rdsS3ReferenceDataSource = a});++-- | Name of the in-application table to create.+rdsTableName :: Lens' ReferenceDataSource Text+rdsTableName = lens _rdsTableName (\ s a -> s{_rdsTableName = a});++-- | Undocumented member.+rdsReferenceSchema :: Lens' ReferenceDataSource SourceSchema+rdsReferenceSchema = lens _rdsReferenceSchema (\ s a -> s{_rdsReferenceSchema = a});++instance Hashable ReferenceDataSource++instance NFData ReferenceDataSource++instance ToJSON ReferenceDataSource where+        toJSON ReferenceDataSource'{..}+          = object+              (catMaybes+                 [("S3ReferenceDataSource" .=) <$>+                    _rdsS3ReferenceDataSource,+                  Just ("TableName" .= _rdsTableName),+                  Just ("ReferenceSchema" .= _rdsReferenceSchema)])++-- | Describes the reference data source configured for an application.+--+-- /See:/ 'referenceDataSourceDescription' smart constructor.+data ReferenceDataSourceDescription = ReferenceDataSourceDescription'+    { _rdsdReferenceSchema                  :: !(Maybe SourceSchema)+    , _rdsdReferenceId                      :: !Text+    , _rdsdTableName                        :: !Text+    , _rdsdS3ReferenceDataSourceDescription :: !S3ReferenceDataSourceDescription+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ReferenceDataSourceDescription' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rdsdReferenceSchema'+--+-- * 'rdsdReferenceId'+--+-- * 'rdsdTableName'+--+-- * 'rdsdS3ReferenceDataSourceDescription'+referenceDataSourceDescription+    :: Text -- ^ 'rdsdReferenceId'+    -> Text -- ^ 'rdsdTableName'+    -> S3ReferenceDataSourceDescription -- ^ 'rdsdS3ReferenceDataSourceDescription'+    -> ReferenceDataSourceDescription+referenceDataSourceDescription pReferenceId_ pTableName_ pS3ReferenceDataSourceDescription_ =+    ReferenceDataSourceDescription'+    { _rdsdReferenceSchema = Nothing+    , _rdsdReferenceId = pReferenceId_+    , _rdsdTableName = pTableName_+    , _rdsdS3ReferenceDataSourceDescription = pS3ReferenceDataSourceDescription_+    }++-- | Undocumented member.+rdsdReferenceSchema :: Lens' ReferenceDataSourceDescription (Maybe SourceSchema)+rdsdReferenceSchema = lens _rdsdReferenceSchema (\ s a -> s{_rdsdReferenceSchema = a});++-- | ID of the reference data source. This is the ID that Amazon Kinesis Analytics assigns when you add the reference data source to your application using the < AddApplicationReferenceDataSource> operation.+rdsdReferenceId :: Lens' ReferenceDataSourceDescription Text+rdsdReferenceId = lens _rdsdReferenceId (\ s a -> s{_rdsdReferenceId = a});++-- | The in-application table name created by the specific reference data source configuration.+rdsdTableName :: Lens' ReferenceDataSourceDescription Text+rdsdTableName = lens _rdsdTableName (\ s a -> s{_rdsdTableName = a});++-- | Provides the S3 bucket name, the object key name that contains the reference data. It also provides the Amazon Resource Name (ARN) of the IAM role that Amazon Kinesis Analytics can assume to read the Amazon S3 object and populate the in-application reference table.+rdsdS3ReferenceDataSourceDescription :: Lens' ReferenceDataSourceDescription S3ReferenceDataSourceDescription+rdsdS3ReferenceDataSourceDescription = lens _rdsdS3ReferenceDataSourceDescription (\ s a -> s{_rdsdS3ReferenceDataSourceDescription = a});++instance FromJSON ReferenceDataSourceDescription+         where+        parseJSON+          = withObject "ReferenceDataSourceDescription"+              (\ x ->+                 ReferenceDataSourceDescription' <$>+                   (x .:? "ReferenceSchema") <*> (x .: "ReferenceId")+                     <*> (x .: "TableName")+                     <*> (x .: "S3ReferenceDataSourceDescription"))++instance Hashable ReferenceDataSourceDescription++instance NFData ReferenceDataSourceDescription++-- | When you update a reference data source configuration for an application, this object provides all the updated values (such as the source bucket name and object key name), the in-application table name that is created, and updated mapping information that maps the data in the Amazon S3 object to the in-application reference table that is created.+--+-- /See:/ 'referenceDataSourceUpdate' smart constructor.+data ReferenceDataSourceUpdate = ReferenceDataSourceUpdate'+    { _rdsuTableNameUpdate             :: !(Maybe Text)+    , _rdsuS3ReferenceDataSourceUpdate :: !(Maybe S3ReferenceDataSourceUpdate)+    , _rdsuReferenceSchemaUpdate       :: !(Maybe SourceSchema)+    , _rdsuReferenceId                 :: !Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ReferenceDataSourceUpdate' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rdsuTableNameUpdate'+--+-- * 'rdsuS3ReferenceDataSourceUpdate'+--+-- * 'rdsuReferenceSchemaUpdate'+--+-- * 'rdsuReferenceId'+referenceDataSourceUpdate+    :: Text -- ^ 'rdsuReferenceId'+    -> ReferenceDataSourceUpdate+referenceDataSourceUpdate pReferenceId_ =+    ReferenceDataSourceUpdate'+    { _rdsuTableNameUpdate = Nothing+    , _rdsuS3ReferenceDataSourceUpdate = Nothing+    , _rdsuReferenceSchemaUpdate = Nothing+    , _rdsuReferenceId = pReferenceId_+    }++-- | In-application table name that is created by this update.+rdsuTableNameUpdate :: Lens' ReferenceDataSourceUpdate (Maybe Text)+rdsuTableNameUpdate = lens _rdsuTableNameUpdate (\ s a -> s{_rdsuTableNameUpdate = a});++-- | Describes the S3 bucket name, object key name, and IAM role that Amazon Kinesis Analytics can assume to read the Amazon S3 object on your behalf and populate the in-application reference table.+rdsuS3ReferenceDataSourceUpdate :: Lens' ReferenceDataSourceUpdate (Maybe S3ReferenceDataSourceUpdate)+rdsuS3ReferenceDataSourceUpdate = lens _rdsuS3ReferenceDataSourceUpdate (\ s a -> s{_rdsuS3ReferenceDataSourceUpdate = a});++-- | Undocumented member.+rdsuReferenceSchemaUpdate :: Lens' ReferenceDataSourceUpdate (Maybe SourceSchema)+rdsuReferenceSchemaUpdate = lens _rdsuReferenceSchemaUpdate (\ s a -> s{_rdsuReferenceSchemaUpdate = a});++-- | ID of the reference data source being updated. You can use the < DescribeApplication> operation to get this value.+rdsuReferenceId :: Lens' ReferenceDataSourceUpdate Text+rdsuReferenceId = lens _rdsuReferenceId (\ s a -> s{_rdsuReferenceId = a});++instance Hashable ReferenceDataSourceUpdate++instance NFData ReferenceDataSourceUpdate++instance ToJSON ReferenceDataSourceUpdate where+        toJSON ReferenceDataSourceUpdate'{..}+          = object+              (catMaybes+                 [("TableNameUpdate" .=) <$> _rdsuTableNameUpdate,+                  ("S3ReferenceDataSourceUpdate" .=) <$>+                    _rdsuS3ReferenceDataSourceUpdate,+                  ("ReferenceSchemaUpdate" .=) <$>+                    _rdsuReferenceSchemaUpdate,+                  Just ("ReferenceId" .= _rdsuReferenceId)])++-- | Identifies the S3 bucket and object that contains the reference data. Also identifies the IAM role Amazon Kinesis Analytics can assume to read this object on your behalf.+--+-- An Amazon Kinesis Analytics application loads reference data only once. If the data changes, you call the < UpdateApplication> operation to trigger reloading of data into your application.+--+-- /See:/ 's3ReferenceDataSource' smart constructor.+data S3ReferenceDataSource = S3ReferenceDataSource'+    { _srdsBucketARN        :: !Text+    , _srdsFileKey          :: !Text+    , _srdsReferenceRoleARN :: !Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'S3ReferenceDataSource' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'srdsBucketARN'+--+-- * 'srdsFileKey'+--+-- * 'srdsReferenceRoleARN'+s3ReferenceDataSource+    :: Text -- ^ 'srdsBucketARN'+    -> Text -- ^ 'srdsFileKey'+    -> Text -- ^ 'srdsReferenceRoleARN'+    -> S3ReferenceDataSource+s3ReferenceDataSource pBucketARN_ pFileKey_ pReferenceRoleARN_ =+    S3ReferenceDataSource'+    { _srdsBucketARN = pBucketARN_+    , _srdsFileKey = pFileKey_+    , _srdsReferenceRoleARN = pReferenceRoleARN_+    }++-- | Amazon Resource Name (ARN) of the S3 bucket.+srdsBucketARN :: Lens' S3ReferenceDataSource Text+srdsBucketARN = lens _srdsBucketARN (\ s a -> s{_srdsBucketARN = a});++-- | Object key name containing reference data.+srdsFileKey :: Lens' S3ReferenceDataSource Text+srdsFileKey = lens _srdsFileKey (\ s a -> s{_srdsFileKey = a});++-- | ARN of the IAM role that the service can assume to read data on your behalf. This role must have permission for the 's3:GetObject' action on the object and trust policy that allows Amazon Kinesis Analytics service principal to assume this role.+srdsReferenceRoleARN :: Lens' S3ReferenceDataSource Text+srdsReferenceRoleARN = lens _srdsReferenceRoleARN (\ s a -> s{_srdsReferenceRoleARN = a});++instance Hashable S3ReferenceDataSource++instance NFData S3ReferenceDataSource++instance ToJSON S3ReferenceDataSource where+        toJSON S3ReferenceDataSource'{..}+          = object+              (catMaybes+                 [Just ("BucketARN" .= _srdsBucketARN),+                  Just ("FileKey" .= _srdsFileKey),+                  Just ("ReferenceRoleARN" .= _srdsReferenceRoleARN)])++-- | Provides the bucket name and object key name that stores the reference data.+--+-- /See:/ 's3ReferenceDataSourceDescription' smart constructor.+data S3ReferenceDataSourceDescription = S3ReferenceDataSourceDescription'+    { _srdsdBucketARN        :: !Text+    , _srdsdFileKey          :: !Text+    , _srdsdReferenceRoleARN :: !Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'S3ReferenceDataSourceDescription' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'srdsdBucketARN'+--+-- * 'srdsdFileKey'+--+-- * 'srdsdReferenceRoleARN'+s3ReferenceDataSourceDescription+    :: Text -- ^ 'srdsdBucketARN'+    -> Text -- ^ 'srdsdFileKey'+    -> Text -- ^ 'srdsdReferenceRoleARN'+    -> S3ReferenceDataSourceDescription+s3ReferenceDataSourceDescription pBucketARN_ pFileKey_ pReferenceRoleARN_ =+    S3ReferenceDataSourceDescription'+    { _srdsdBucketARN = pBucketARN_+    , _srdsdFileKey = pFileKey_+    , _srdsdReferenceRoleARN = pReferenceRoleARN_+    }++-- | Amazon Resource Name (ARN) of the S3 bucket.+srdsdBucketARN :: Lens' S3ReferenceDataSourceDescription Text+srdsdBucketARN = lens _srdsdBucketARN (\ s a -> s{_srdsdBucketARN = a});++-- | Amazon S3 object key name.+srdsdFileKey :: Lens' S3ReferenceDataSourceDescription Text+srdsdFileKey = lens _srdsdFileKey (\ s a -> s{_srdsdFileKey = a});++-- | ARN of the IAM role that Amazon Kinesis Analytics can assume to read the Amazon S3 object on your behalf to populate the in-application reference table.+srdsdReferenceRoleARN :: Lens' S3ReferenceDataSourceDescription Text+srdsdReferenceRoleARN = lens _srdsdReferenceRoleARN (\ s a -> s{_srdsdReferenceRoleARN = a});++instance FromJSON S3ReferenceDataSourceDescription+         where+        parseJSON+          = withObject "S3ReferenceDataSourceDescription"+              (\ x ->+                 S3ReferenceDataSourceDescription' <$>+                   (x .: "BucketARN") <*> (x .: "FileKey") <*>+                     (x .: "ReferenceRoleARN"))++instance Hashable S3ReferenceDataSourceDescription++instance NFData S3ReferenceDataSourceDescription++-- | Describes the S3 bucket name, object key name, and IAM role that Amazon Kinesis Analytics can assume to read the Amazon S3 object on your behalf and populate the in-application reference table.+--+-- /See:/ 's3ReferenceDataSourceUpdate' smart constructor.+data S3ReferenceDataSourceUpdate = S3ReferenceDataSourceUpdate'+    { _srdsuBucketARNUpdate        :: !(Maybe Text)+    , _srdsuFileKeyUpdate          :: !(Maybe Text)+    , _srdsuReferenceRoleARNUpdate :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'S3ReferenceDataSourceUpdate' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'srdsuBucketARNUpdate'+--+-- * 'srdsuFileKeyUpdate'+--+-- * 'srdsuReferenceRoleARNUpdate'+s3ReferenceDataSourceUpdate+    :: S3ReferenceDataSourceUpdate+s3ReferenceDataSourceUpdate =+    S3ReferenceDataSourceUpdate'+    { _srdsuBucketARNUpdate = Nothing+    , _srdsuFileKeyUpdate = Nothing+    , _srdsuReferenceRoleARNUpdate = Nothing+    }++-- | Amazon Resource Name (ARN) of the S3 bucket.+srdsuBucketARNUpdate :: Lens' S3ReferenceDataSourceUpdate (Maybe Text)+srdsuBucketARNUpdate = lens _srdsuBucketARNUpdate (\ s a -> s{_srdsuBucketARNUpdate = a});++-- | Object key name.+srdsuFileKeyUpdate :: Lens' S3ReferenceDataSourceUpdate (Maybe Text)+srdsuFileKeyUpdate = lens _srdsuFileKeyUpdate (\ s a -> s{_srdsuFileKeyUpdate = a});++-- | ARN of the IAM role that Amazon Kinesis Analytics can assume to read the Amazon S3 object and populate the in-application.+srdsuReferenceRoleARNUpdate :: Lens' S3ReferenceDataSourceUpdate (Maybe Text)+srdsuReferenceRoleARNUpdate = lens _srdsuReferenceRoleARNUpdate (\ s a -> s{_srdsuReferenceRoleARNUpdate = a});++instance Hashable S3ReferenceDataSourceUpdate++instance NFData S3ReferenceDataSourceUpdate++instance ToJSON S3ReferenceDataSourceUpdate where+        toJSON S3ReferenceDataSourceUpdate'{..}+          = object+              (catMaybes+                 [("BucketARNUpdate" .=) <$> _srdsuBucketARNUpdate,+                  ("FileKeyUpdate" .=) <$> _srdsuFileKeyUpdate,+                  ("ReferenceRoleARNUpdate" .=) <$>+                    _srdsuReferenceRoleARNUpdate])++-- | Describes the format of the data in the streaming source, and how each data element maps to corresponding columns created in the in-application stream.+--+-- /See:/ 'sourceSchema' smart constructor.+data SourceSchema = SourceSchema'+    { _ssRecordEncoding :: !(Maybe Text)+    , _ssRecordFormat   :: !RecordFormat+    , _ssRecordColumns  :: !(List1 RecordColumn)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'SourceSchema' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ssRecordEncoding'+--+-- * 'ssRecordFormat'+--+-- * 'ssRecordColumns'+sourceSchema+    :: RecordFormat -- ^ 'ssRecordFormat'+    -> NonEmpty RecordColumn -- ^ 'ssRecordColumns'+    -> SourceSchema+sourceSchema pRecordFormat_ pRecordColumns_ =+    SourceSchema'+    { _ssRecordEncoding = Nothing+    , _ssRecordFormat = pRecordFormat_+    , _ssRecordColumns = _List1 # pRecordColumns_+    }++-- | Specifies the encoding of the records in the streaming source. For example, UTF-8.+ssRecordEncoding :: Lens' SourceSchema (Maybe Text)+ssRecordEncoding = lens _ssRecordEncoding (\ s a -> s{_ssRecordEncoding = a});++-- | Specifies the format of the records on the streaming source.+ssRecordFormat :: Lens' SourceSchema RecordFormat+ssRecordFormat = lens _ssRecordFormat (\ s a -> s{_ssRecordFormat = a});++-- | A list of 'RecordColumn' objects.+ssRecordColumns :: Lens' SourceSchema (NonEmpty RecordColumn)+ssRecordColumns = lens _ssRecordColumns (\ s a -> s{_ssRecordColumns = a}) . _List1;++instance FromJSON SourceSchema where+        parseJSON+          = withObject "SourceSchema"+              (\ x ->+                 SourceSchema' <$>+                   (x .:? "RecordEncoding") <*> (x .: "RecordFormat")+                     <*> (x .: "RecordColumns"))++instance Hashable SourceSchema++instance NFData SourceSchema++instance ToJSON SourceSchema where+        toJSON SourceSchema'{..}+          = object+              (catMaybes+                 [("RecordEncoding" .=) <$> _ssRecordEncoding,+                  Just ("RecordFormat" .= _ssRecordFormat),+                  Just ("RecordColumns" .= _ssRecordColumns)])
+ gen/Network/AWS/KinesisAnalytics/Types/Sum.hs view
@@ -0,0 +1,119 @@+{-# 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.KinesisAnalytics.Types.Sum+-- Copyright   : (c) 2013-2016 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.KinesisAnalytics.Types.Sum where++import           Network.AWS.Prelude++data ApplicationStatus+    = Deleting+    | Ready+    | Running+    | Starting+    | Stopping+    | Updating+    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)++instance FromText ApplicationStatus where+    parser = takeLowerText >>= \case+        "deleting" -> pure Deleting+        "ready" -> pure Ready+        "running" -> pure Running+        "starting" -> pure Starting+        "stopping" -> pure Stopping+        "updating" -> pure Updating+        e -> fromTextError $ "Failure parsing ApplicationStatus from value: '" <> e+           <> "'. Accepted values: deleting, ready, running, starting, stopping, updating"++instance ToText ApplicationStatus where+    toText = \case+        Deleting -> "DELETING"+        Ready -> "READY"+        Running -> "RUNNING"+        Starting -> "STARTING"+        Stopping -> "STOPPING"+        Updating -> "UPDATING"++instance Hashable     ApplicationStatus+instance NFData       ApplicationStatus+instance ToByteString ApplicationStatus+instance ToQuery      ApplicationStatus+instance ToHeader     ApplicationStatus++instance FromJSON ApplicationStatus where+    parseJSON = parseJSONText "ApplicationStatus"++data InputStartingPosition+    = LastStoppedPoint+    | Now+    | TrimHorizon+    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)++instance FromText InputStartingPosition where+    parser = takeLowerText >>= \case+        "last_stopped_point" -> pure LastStoppedPoint+        "now" -> pure Now+        "trim_horizon" -> pure TrimHorizon+        e -> fromTextError $ "Failure parsing InputStartingPosition from value: '" <> e+           <> "'. Accepted values: last_stopped_point, now, trim_horizon"++instance ToText InputStartingPosition where+    toText = \case+        LastStoppedPoint -> "LAST_STOPPED_POINT"+        Now -> "NOW"+        TrimHorizon -> "TRIM_HORIZON"++instance Hashable     InputStartingPosition+instance NFData       InputStartingPosition+instance ToByteString InputStartingPosition+instance ToQuery      InputStartingPosition+instance ToHeader     InputStartingPosition++instance ToJSON InputStartingPosition where+    toJSON = toJSONText++instance FromJSON InputStartingPosition where+    parseJSON = parseJSONText "InputStartingPosition"++data RecordFormatType+    = CSV+    | JSON+    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)++instance FromText RecordFormatType where+    parser = takeLowerText >>= \case+        "csv" -> pure CSV+        "json" -> pure JSON+        e -> fromTextError $ "Failure parsing RecordFormatType from value: '" <> e+           <> "'. Accepted values: csv, json"++instance ToText RecordFormatType where+    toText = \case+        CSV -> "CSV"+        JSON -> "JSON"++instance Hashable     RecordFormatType+instance NFData       RecordFormatType+instance ToByteString RecordFormatType+instance ToQuery      RecordFormatType+instance ToHeader     RecordFormatType++instance ToJSON RecordFormatType where+    toJSON = toJSONText++instance FromJSON RecordFormatType where+    parseJSON = parseJSONText "RecordFormatType"
+ gen/Network/AWS/KinesisAnalytics/UpdateApplication.hs view
@@ -0,0 +1,150 @@+{-# 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.KinesisAnalytics.UpdateApplication+-- Copyright   : (c) 2013-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates an existing Kinesis Analytics application. Using this API, you can update application code, input configuration, and output configuration.+--+-- Note that Kinesis Analytics updates the 'CurrentApplicationVersionId' each time you update your application.+--+-- This opeation requires permission for the 'kinesisanalytics:UpdateApplication' action.+module Network.AWS.KinesisAnalytics.UpdateApplication+    (+    -- * Creating a Request+      updateApplication+    , UpdateApplication+    -- * Request Lenses+    , uaApplicationName+    , uaCurrentApplicationVersionId+    , uaApplicationUpdate++    -- * Destructuring the Response+    , updateApplicationResponse+    , UpdateApplicationResponse+    -- * Response Lenses+    , uarsResponseStatus+    ) where++import           Network.AWS.KinesisAnalytics.Types+import           Network.AWS.KinesisAnalytics.Types.Product+import           Network.AWS.Lens+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- | /See:/ 'updateApplication' smart constructor.+data UpdateApplication = UpdateApplication'+    { _uaApplicationName             :: !Text+    , _uaCurrentApplicationVersionId :: !Nat+    , _uaApplicationUpdate           :: !ApplicationUpdate+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'UpdateApplication' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'uaApplicationName'+--+-- * 'uaCurrentApplicationVersionId'+--+-- * 'uaApplicationUpdate'+updateApplication+    :: Text -- ^ 'uaApplicationName'+    -> Natural -- ^ 'uaCurrentApplicationVersionId'+    -> ApplicationUpdate -- ^ 'uaApplicationUpdate'+    -> UpdateApplication+updateApplication pApplicationName_ pCurrentApplicationVersionId_ pApplicationUpdate_ =+    UpdateApplication'+    { _uaApplicationName = pApplicationName_+    , _uaCurrentApplicationVersionId = _Nat # pCurrentApplicationVersionId_+    , _uaApplicationUpdate = pApplicationUpdate_+    }++-- | Name of the Kinesis Analytics application to update.+uaApplicationName :: Lens' UpdateApplication Text+uaApplicationName = lens _uaApplicationName (\ s a -> s{_uaApplicationName = a});++-- | The current application version ID. You can use the < DescribeApplication> operation to get this value.+uaCurrentApplicationVersionId :: Lens' UpdateApplication Natural+uaCurrentApplicationVersionId = lens _uaCurrentApplicationVersionId (\ s a -> s{_uaCurrentApplicationVersionId = a}) . _Nat;++-- | Describes application updates.+uaApplicationUpdate :: Lens' UpdateApplication ApplicationUpdate+uaApplicationUpdate = lens _uaApplicationUpdate (\ s a -> s{_uaApplicationUpdate = a});++instance AWSRequest UpdateApplication where+        type Rs UpdateApplication = UpdateApplicationResponse+        request = postJSON kinesisAnalytics+        response+          = receiveEmpty+              (\ s h x ->+                 UpdateApplicationResponse' <$> (pure (fromEnum s)))++instance Hashable UpdateApplication++instance NFData UpdateApplication++instance ToHeaders UpdateApplication where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("KinesisAnalytics_20150814.UpdateApplication" ::+                       ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON UpdateApplication where+        toJSON UpdateApplication'{..}+          = object+              (catMaybes+                 [Just ("ApplicationName" .= _uaApplicationName),+                  Just+                    ("CurrentApplicationVersionId" .=+                       _uaCurrentApplicationVersionId),+                  Just ("ApplicationUpdate" .= _uaApplicationUpdate)])++instance ToPath UpdateApplication where+        toPath = const "/"++instance ToQuery UpdateApplication where+        toQuery = const mempty++-- | /See:/ 'updateApplicationResponse' smart constructor.+newtype UpdateApplicationResponse = UpdateApplicationResponse'+    { _uarsResponseStatus :: Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'UpdateApplicationResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'uarsResponseStatus'+updateApplicationResponse+    :: Int -- ^ 'uarsResponseStatus'+    -> UpdateApplicationResponse+updateApplicationResponse pResponseStatus_ =+    UpdateApplicationResponse'+    { _uarsResponseStatus = pResponseStatus_+    }++-- | The response status code.+uarsResponseStatus :: Lens' UpdateApplicationResponse Int+uarsResponseStatus = lens _uarsResponseStatus (\ s a -> s{_uarsResponseStatus = a});++instance NFData UpdateApplicationResponse
+ gen/Network/AWS/KinesisAnalytics/Waiters.hs view
@@ -0,0 +1,21 @@+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE TypeFamilies      #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.KinesisAnalytics.Waiters+-- Copyright   : (c) 2013-2016 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.KinesisAnalytics.Waiters where++import           Network.AWS.KinesisAnalytics.Types+import           Network.AWS.Lens+import           Network.AWS.Prelude+import           Network.AWS.Waiter
+ src/.gitkeep view
+ test/Main.hs view
@@ -0,0 +1,21 @@+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module      : Main+-- Copyright   : (c) 2013-2016 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.KinesisAnalytics+import Test.AWS.KinesisAnalytics.Internal++main :: IO ()+main = defaultMain $ testGroup "KinesisAnalytics"+    [ testGroup "tests"    tests+    , testGroup "fixtures" fixtures+    ]
+ test/Test/AWS/Gen/KinesisAnalytics.hs view
@@ -0,0 +1,273 @@+{-# 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.KinesisAnalytics+-- Copyright   : (c) 2013-2016 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.KinesisAnalytics where++import Data.Proxy+import Test.AWS.Fixture+import Test.AWS.Prelude+import Test.Tasty+import Network.AWS.KinesisAnalytics+import Test.AWS.KinesisAnalytics.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"+--         [ requestAddApplicationOutput $+--             addApplicationOutput+--+--         , requestDiscoverInputSchema $+--             discoverInputSchema+--+--         , requestDescribeApplication $+--             describeApplication+--+--         , requestStartApplication $+--             startApplication+--+--         , requestDeleteApplicationReferenceDataSource $+--             deleteApplicationReferenceDataSource+--+--         , requestDeleteApplication $+--             deleteApplication+--+--         , requestUpdateApplication $+--             updateApplication+--+--         , requestCreateApplication $+--             createApplication+--+--         , requestDeleteApplicationOutput $+--             deleteApplicationOutput+--+--         , requestStopApplication $+--             stopApplication+--+--         , requestAddApplicationReferenceDataSource $+--             addApplicationReferenceDataSource+--+--         , requestAddApplicationInput $+--             addApplicationInput+--+--         , requestListApplications $+--             listApplications+--+--           ]++--     , testGroup "response"+--         [ responseAddApplicationOutput $+--             addApplicationOutputResponse+--+--         , responseDiscoverInputSchema $+--             discoverInputSchemaResponse+--+--         , responseDescribeApplication $+--             describeApplicationResponse+--+--         , responseStartApplication $+--             startApplicationResponse+--+--         , responseDeleteApplicationReferenceDataSource $+--             deleteApplicationReferenceDataSourceResponse+--+--         , responseDeleteApplication $+--             deleteApplicationResponse+--+--         , responseUpdateApplication $+--             updateApplicationResponse+--+--         , responseCreateApplication $+--             createApplicationResponse+--+--         , responseDeleteApplicationOutput $+--             deleteApplicationOutputResponse+--+--         , responseStopApplication $+--             stopApplicationResponse+--+--         , responseAddApplicationReferenceDataSource $+--             addApplicationReferenceDataSourceResponse+--+--         , responseAddApplicationInput $+--             addApplicationInputResponse+--+--         , responseListApplications $+--             listApplicationsResponse+--+--           ]+--     ]++-- Requests++requestAddApplicationOutput :: AddApplicationOutput -> TestTree+requestAddApplicationOutput = req+    "AddApplicationOutput"+    "fixture/AddApplicationOutput.yaml"++requestDiscoverInputSchema :: DiscoverInputSchema -> TestTree+requestDiscoverInputSchema = req+    "DiscoverInputSchema"+    "fixture/DiscoverInputSchema.yaml"++requestDescribeApplication :: DescribeApplication -> TestTree+requestDescribeApplication = req+    "DescribeApplication"+    "fixture/DescribeApplication.yaml"++requestStartApplication :: StartApplication -> TestTree+requestStartApplication = req+    "StartApplication"+    "fixture/StartApplication.yaml"++requestDeleteApplicationReferenceDataSource :: DeleteApplicationReferenceDataSource -> TestTree+requestDeleteApplicationReferenceDataSource = req+    "DeleteApplicationReferenceDataSource"+    "fixture/DeleteApplicationReferenceDataSource.yaml"++requestDeleteApplication :: DeleteApplication -> TestTree+requestDeleteApplication = req+    "DeleteApplication"+    "fixture/DeleteApplication.yaml"++requestUpdateApplication :: UpdateApplication -> TestTree+requestUpdateApplication = req+    "UpdateApplication"+    "fixture/UpdateApplication.yaml"++requestCreateApplication :: CreateApplication -> TestTree+requestCreateApplication = req+    "CreateApplication"+    "fixture/CreateApplication.yaml"++requestDeleteApplicationOutput :: DeleteApplicationOutput -> TestTree+requestDeleteApplicationOutput = req+    "DeleteApplicationOutput"+    "fixture/DeleteApplicationOutput.yaml"++requestStopApplication :: StopApplication -> TestTree+requestStopApplication = req+    "StopApplication"+    "fixture/StopApplication.yaml"++requestAddApplicationReferenceDataSource :: AddApplicationReferenceDataSource -> TestTree+requestAddApplicationReferenceDataSource = req+    "AddApplicationReferenceDataSource"+    "fixture/AddApplicationReferenceDataSource.yaml"++requestAddApplicationInput :: AddApplicationInput -> TestTree+requestAddApplicationInput = req+    "AddApplicationInput"+    "fixture/AddApplicationInput.yaml"++requestListApplications :: ListApplications -> TestTree+requestListApplications = req+    "ListApplications"+    "fixture/ListApplications.yaml"++-- Responses++responseAddApplicationOutput :: AddApplicationOutputResponse -> TestTree+responseAddApplicationOutput = res+    "AddApplicationOutputResponse"+    "fixture/AddApplicationOutputResponse.proto"+    kinesisAnalytics+    (Proxy :: Proxy AddApplicationOutput)++responseDiscoverInputSchema :: DiscoverInputSchemaResponse -> TestTree+responseDiscoverInputSchema = res+    "DiscoverInputSchemaResponse"+    "fixture/DiscoverInputSchemaResponse.proto"+    kinesisAnalytics+    (Proxy :: Proxy DiscoverInputSchema)++responseDescribeApplication :: DescribeApplicationResponse -> TestTree+responseDescribeApplication = res+    "DescribeApplicationResponse"+    "fixture/DescribeApplicationResponse.proto"+    kinesisAnalytics+    (Proxy :: Proxy DescribeApplication)++responseStartApplication :: StartApplicationResponse -> TestTree+responseStartApplication = res+    "StartApplicationResponse"+    "fixture/StartApplicationResponse.proto"+    kinesisAnalytics+    (Proxy :: Proxy StartApplication)++responseDeleteApplicationReferenceDataSource :: DeleteApplicationReferenceDataSourceResponse -> TestTree+responseDeleteApplicationReferenceDataSource = res+    "DeleteApplicationReferenceDataSourceResponse"+    "fixture/DeleteApplicationReferenceDataSourceResponse.proto"+    kinesisAnalytics+    (Proxy :: Proxy DeleteApplicationReferenceDataSource)++responseDeleteApplication :: DeleteApplicationResponse -> TestTree+responseDeleteApplication = res+    "DeleteApplicationResponse"+    "fixture/DeleteApplicationResponse.proto"+    kinesisAnalytics+    (Proxy :: Proxy DeleteApplication)++responseUpdateApplication :: UpdateApplicationResponse -> TestTree+responseUpdateApplication = res+    "UpdateApplicationResponse"+    "fixture/UpdateApplicationResponse.proto"+    kinesisAnalytics+    (Proxy :: Proxy UpdateApplication)++responseCreateApplication :: CreateApplicationResponse -> TestTree+responseCreateApplication = res+    "CreateApplicationResponse"+    "fixture/CreateApplicationResponse.proto"+    kinesisAnalytics+    (Proxy :: Proxy CreateApplication)++responseDeleteApplicationOutput :: DeleteApplicationOutputResponse -> TestTree+responseDeleteApplicationOutput = res+    "DeleteApplicationOutputResponse"+    "fixture/DeleteApplicationOutputResponse.proto"+    kinesisAnalytics+    (Proxy :: Proxy DeleteApplicationOutput)++responseStopApplication :: StopApplicationResponse -> TestTree+responseStopApplication = res+    "StopApplicationResponse"+    "fixture/StopApplicationResponse.proto"+    kinesisAnalytics+    (Proxy :: Proxy StopApplication)++responseAddApplicationReferenceDataSource :: AddApplicationReferenceDataSourceResponse -> TestTree+responseAddApplicationReferenceDataSource = res+    "AddApplicationReferenceDataSourceResponse"+    "fixture/AddApplicationReferenceDataSourceResponse.proto"+    kinesisAnalytics+    (Proxy :: Proxy AddApplicationReferenceDataSource)++responseAddApplicationInput :: AddApplicationInputResponse -> TestTree+responseAddApplicationInput = res+    "AddApplicationInputResponse"+    "fixture/AddApplicationInputResponse.proto"+    kinesisAnalytics+    (Proxy :: Proxy AddApplicationInput)++responseListApplications :: ListApplicationsResponse -> TestTree+responseListApplications = res+    "ListApplicationsResponse"+    "fixture/ListApplicationsResponse.proto"+    kinesisAnalytics+    (Proxy :: Proxy ListApplications)
+ test/Test/AWS/KinesisAnalytics.hs view
@@ -0,0 +1,23 @@+{-# LANGUAGE OverloadedStrings #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module      : Test.AWS.KinesisAnalytics+-- Copyright   : (c) 2013-2016 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.KinesisAnalytics where++import Test.AWS.Prelude++tests :: [TestTree]+tests = []++fixtures :: [TestTree]+fixtures = []
+ test/Test/AWS/KinesisAnalytics/Internal.hs view
@@ -0,0 +1,17 @@+{-# LANGUAGE OverloadedStrings #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module      : Test.AWS.KinesisAnalytics.Internal+-- Copyright   : (c) 2013-2016 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.KinesisAnalytics.Internal where++import Test.AWS.Prelude