packages feed

amazonka-guardduty (empty) → 1.6.0

raw patch · 140 files changed

+11453/−0 lines, 140 filesdep +amazonka-coredep +amazonka-guarddutydep +amazonka-testsetup-changed

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

Files

+ LICENSE view
@@ -0,0 +1,367 @@+Mozilla Public License Version 2.0+==================================++1. Definitions+--------------++1.1. "Contributor"+    means each individual or legal entity that creates, contributes to+    the creation of, or owns Covered Software.++1.2. "Contributor Version"+    means the combination of the Contributions of others (if any) used+    by a Contributor and that particular Contributor's Contribution.++1.3. "Contribution"+    means Covered Software of a particular Contributor.++1.4. "Covered Software"+    means Source Code Form to which the initial Contributor has attached+    the notice in Exhibit A, the Executable Form of such Source Code+    Form, and Modifications of such Source Code Form, in each case+    including portions thereof.++1.5. "Incompatible With Secondary Licenses"+    means++    (a) that the initial Contributor has attached the notice described+        in Exhibit B to the Covered Software; or++    (b) that the Covered Software was made available under the terms of+        version 1.1 or earlier of the License, but not also under the+        terms of a Secondary License.++1.6. "Executable Form"+    means any form of the work other than Source Code Form.++1.7. "Larger Work"+    means a work that combines Covered Software with other material, in+    a separate file or files, that is not Covered Software.++1.8. "License"+    means this document.++1.9. "Licensable"+    means having the right to grant, to the maximum extent possible,+    whether at the time of the initial grant or subsequently, any and+    all of the rights conveyed by this License.++1.10. "Modifications"+    means any of the following:++    (a) any file in Source Code Form that results from an addition to,+        deletion from, or modification of the contents of Covered+        Software; or++    (b) any new file in Source Code Form that contains any Covered+        Software.++1.11. "Patent Claims" of a Contributor+    means any patent claim(s), including without limitation, method,+    process, and apparatus claims, in any patent Licensable by such+    Contributor that would be infringed, but for the grant of the+    License, by the making, using, selling, offering for sale, having+    made, import, or transfer of either its Contributions or its+    Contributor Version.++1.12. "Secondary License"+    means either the GNU General Public License, Version 2.0, the GNU+    Lesser General Public License, Version 2.1, the GNU Affero General+    Public License, Version 3.0, or any later versions of those+    licenses.++1.13. "Source Code Form"+    means the form of the work preferred for making modifications.++1.14. "You" (or "Your")+    means an individual or a legal entity exercising rights under this+    License. For legal entities, "You" includes any entity that+    controls, is controlled by, or is under common control with You. For+    purposes of this definition, "control" means (a) the power, direct+    or indirect, to cause the direction or management of such entity,+    whether by contract or otherwise, or (b) ownership of more than+    fifty percent (50%) of the outstanding shares or beneficial+    ownership of such entity.++2. License Grants and Conditions+--------------------------------++2.1. Grants++Each Contributor hereby grants You a world-wide, royalty-free,+non-exclusive license:++(a) under intellectual property rights (other than patent or trademark)+    Licensable by such Contributor to use, reproduce, make available,+    modify, display, perform, distribute, and otherwise exploit its+    Contributions, either on an unmodified basis, with Modifications, or+    as part of a Larger Work; and++(b) under Patent Claims of such Contributor to make, use, sell, offer+    for sale, have made, import, and otherwise transfer either its+    Contributions or its Contributor Version.++2.2. Effective Date++The licenses granted in Section 2.1 with respect to any Contribution+become effective for each Contribution on the date the Contributor first+distributes such Contribution.++2.3. Limitations on Grant Scope++The licenses granted in this Section 2 are the only rights granted under+this License. No additional rights or licenses will be implied from the+distribution or licensing of Covered Software under this License.+Notwithstanding Section 2.1(b) above, no patent license is granted by a+Contributor:++(a) for any code that a Contributor has removed from Covered Software;+    or++(b) for infringements caused by: (i) Your and any other third party's+    modifications of Covered Software, or (ii) the combination of its+    Contributions with other software (except as part of its Contributor+    Version); or++(c) under Patent Claims infringed by Covered Software in the absence of+    its Contributions.++This License does not grant any rights in the trademarks, service marks,+or logos of any Contributor (except as may be necessary to comply with+the notice requirements in Section 3.4).++2.4. Subsequent Licenses++No Contributor makes additional grants as a result of Your choice to+distribute the Covered Software under a subsequent version of this+License (see Section 10.2) or under the terms of a Secondary License (if+permitted under the terms of Section 3.3).++2.5. Representation++Each Contributor represents that the Contributor believes its+Contributions are its original creation(s) or it has sufficient rights+to grant the rights to its Contributions conveyed by this License.++2.6. Fair Use++This License is not intended to limit any rights You have under+applicable copyright doctrines of fair use, fair dealing, or other+equivalents.++2.7. Conditions++Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted+in Section 2.1.++3. Responsibilities+-------------------++3.1. Distribution of Source Form++All distribution of Covered Software in Source Code Form, including any+Modifications that You create or to which You contribute, must be under+the terms of this License. You must inform recipients that the Source+Code Form of the Covered Software is governed by the terms of this+License, and how they can obtain a copy of this License. You may not+attempt to alter or restrict the recipients' rights in the Source Code+Form.++3.2. Distribution of Executable Form++If You distribute Covered Software in Executable Form then:++(a) such Covered Software must also be made available in Source Code+    Form, as described in Section 3.1, and You must inform recipients of+    the Executable Form how they can obtain a copy of such Source Code+    Form by reasonable means in a timely manner, at a charge no more+    than the cost of distribution to the recipient; and++(b) You may distribute such Executable Form under the terms of this+    License, or sublicense it under different terms, provided that the+    license for the Executable Form does not attempt to limit or alter+    the recipients' rights in the Source Code Form under this License.++3.3. Distribution of a Larger Work++You may create and distribute a Larger Work under terms of Your choice,+provided that You also comply with the requirements of this License for+the Covered Software. If the Larger Work is a combination of Covered+Software with a work governed by one or more Secondary Licenses, and the+Covered Software is not Incompatible With Secondary Licenses, this+License permits You to additionally distribute such Covered Software+under the terms of such Secondary License(s), so that the recipient of+the Larger Work may, at their option, further distribute the Covered+Software under the terms of either this License or such Secondary+License(s).++3.4. Notices++You may not remove or alter the substance of any license notices+(including copyright notices, patent notices, disclaimers of warranty,+or limitations of liability) contained within the Source Code Form of+the Covered Software, except that You may alter any license notices to+the extent required to remedy known factual inaccuracies.++3.5. Application of Additional Terms++You may choose to offer, and to charge a fee for, warranty, support,+indemnity or liability obligations to one or more recipients of Covered+Software. However, You may do so only on Your own behalf, and not on+behalf of any Contributor. You must make it absolutely clear that any+such warranty, support, indemnity, or liability obligation is offered by+You alone, and You hereby agree to indemnify every Contributor for any+liability incurred by such Contributor as a result of warranty, support,+indemnity or liability terms You offer. You may include additional+disclaimers of warranty and limitations of liability specific to any+jurisdiction.++4. Inability to Comply Due to Statute or Regulation+---------------------------------------------------++If it is impossible for You to comply with any of the terms of this+License with respect to some or all of the Covered Software due to+statute, judicial order, or regulation then You must: (a) comply with+the terms of this License to the maximum extent possible; and (b)+describe the limitations and the code they affect. Such description must+be placed in a text file included with all distributions of the Covered+Software under this License. Except to the extent prohibited by statute+or regulation, such description must be sufficiently detailed for a+recipient of ordinary skill to be able to understand it.++5. Termination+--------------++5.1. The rights granted under this License will terminate automatically+if You fail to comply with any of its terms. However, if You become+compliant, then the rights granted under this License from a particular+Contributor are reinstated (a) provisionally, unless and until such+Contributor explicitly and finally terminates Your grants, and (b) on an+ongoing basis, if such Contributor fails to notify You of the+non-compliance by some reasonable means prior to 60 days after You have+come back into compliance. Moreover, Your grants from a particular+Contributor are reinstated on an ongoing basis if such Contributor+notifies You of the non-compliance by some reasonable means, this is the+first time You have received notice of non-compliance with this License+from such Contributor, and You become compliant prior to 30 days after+Your receipt of the notice.++5.2. If You initiate litigation against any entity by asserting a patent+infringement claim (excluding declaratory judgment actions,+counter-claims, and cross-claims) alleging that a Contributor Version+directly or indirectly infringes any patent, then the rights granted to+You by any and all Contributors for the Covered Software under Section+2.1 of this License shall terminate.++5.3. In the event of termination under Sections 5.1 or 5.2 above, all+end user license agreements (excluding distributors and resellers) which+have been validly granted by You or Your distributors under this License+prior to termination shall survive termination.++************************************************************************+*                                                                      *+*  6. Disclaimer of Warranty                                           *+*  -------------------------                                           *+*                                                                      *+*  Covered Software is provided under this License on an "as is"       *+*  basis, without warranty of any kind, either expressed, implied, or  *+*  statutory, including, without limitation, warranties that the       *+*  Covered Software is free of defects, merchantable, fit for a        *+*  particular purpose or non-infringing. The entire risk as to the     *+*  quality and performance of the Covered Software is with You.        *+*  Should any Covered Software prove defective in any respect, You     *+*  (not any Contributor) assume the cost of any necessary servicing,   *+*  repair, or correction. This disclaimer of warranty constitutes an   *+*  essential part of this License. No use of any Covered Software is   *+*  authorized under this License except under this disclaimer.         *+*                                                                      *+************************************************************************++************************************************************************+*                                                                      *+*  7. Limitation of Liability                                          *+*  --------------------------                                          *+*                                                                      *+*  Under no circumstances and under no legal theory, whether tort      *+*  (including negligence), contract, or otherwise, shall any           *+*  Contributor, or anyone who distributes Covered Software as          *+*  permitted above, be liable to You for any direct, indirect,         *+*  special, incidental, or consequential damages of any character      *+*  including, without limitation, damages for lost profits, loss of    *+*  goodwill, work stoppage, computer failure or malfunction, or any    *+*  and all other commercial damages or losses, even if such party      *+*  shall have been informed of the possibility of such damages. This   *+*  limitation of liability shall not apply to liability for death or   *+*  personal injury resulting from such party's negligence to the       *+*  extent applicable law prohibits such limitation. Some               *+*  jurisdictions do not allow the exclusion or limitation of           *+*  incidental or consequential damages, so this exclusion and          *+*  limitation may not apply to You.                                    *+*                                                                      *+************************************************************************++8. Litigation+-------------++Any litigation relating to this License may be brought only in the+courts of a jurisdiction where the defendant maintains its principal+place of business and such litigation shall be governed by laws of that+jurisdiction, without reference to its conflict-of-law provisions.+Nothing in this Section shall prevent a party's ability to bring+cross-claims or counter-claims.++9. Miscellaneous+----------------++This License represents the complete agreement concerning the subject+matter hereof. If any provision of this License is held to be+unenforceable, such provision shall be reformed only to the extent+necessary to make it enforceable. Any law or regulation which provides+that the language of a contract shall be construed against the drafter+shall not be used to construe this License against a Contributor.++10. Versions of the License+---------------------------++10.1. New Versions++Mozilla Foundation is the license steward. Except as provided in Section+10.3, no one other than the license steward has the right to modify or+publish new versions of this License. Each version will be given a+distinguishing version number.++10.2. Effect of New Versions++You may distribute the Covered Software under the terms of the version+of the License under which You originally received the Covered Software,+or under the terms of any subsequent version published by the license+steward.++10.3. Modified Versions++If you create software not governed by this License, and you want to+create a new license for such software, you may create and use a+modified version of this License if you rename the license and remove+any references to the name of the license steward (except to note that+such modified license differs from this License).++10.4. Distributing Source Code Form that is Incompatible With Secondary+Licenses++If You choose to distribute Source Code Form that is Incompatible With+Secondary Licenses under the terms of this version of the License, the+notice described in Exhibit B of this License must be attached.++Exhibit A - Source Code Form License Notice+-------------------------------------------++  This Source Code Form is subject to the terms of the Mozilla Public+  License, v. 2.0. If a copy of the MPL was not distributed with this+  file, You can obtain one at http://mozilla.org/MPL/2.0/.++If it is not possible or desirable to put the notice in a particular+file, then You may include the notice in a location (such as a LICENSE+file in a relevant directory) where a recipient would be likely to look+for such a notice.++You may add additional accurate notices of copyright ownership.
+ README.md view
@@ -0,0 +1,45 @@+# Amazon GuardDuty SDK++* [Version](#version)+* [Description](#description)+* [Contribute](#contribute)+* [Licence](#licence)+++## Version++`1.6.0`+++## Description++Documentation is available via [Hackage](http://hackage.haskell.org/package/amazonka-guardduty)+and the [AWS API Reference](https://aws.amazon.com/documentation/).++The types from this library are intended to be used with [amazonka](http://hackage.haskell.org/package/amazonka),+which provides mechanisms for specifying AuthN/AuthZ information, sending requests,+and receiving responses.++Lenses are used for constructing and manipulating types,+due to the depth of nesting of AWS types and transparency regarding+de/serialisation into more palatable Haskell values.+The provided lenses should be compatible with any of the major lens libraries+[lens](http://hackage.haskell.org/package/lens) or [lens-family-core](http://hackage.haskell.org/package/lens-family-core).++See [Network.AWS.GuardDuty](http://hackage.haskell.org/package/amazonka-guardduty/docs/Network-AWS-GuardDuty.html)+or [the AWS documentation](https://aws.amazon.com/documentation/) to get started.+++## Contribute++For any problems, comments, or feedback please create an issue [here on GitHub](https://github.com/brendanhay/amazonka/issues).++> _Note:_ this library is an auto-generated Haskell package. Please see `amazonka-gen` for more information.+++## Licence++`amazonka-guardduty` 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-guardduty.cabal view
@@ -0,0 +1,127 @@+name:                  amazonka-guardduty+version:               1.6.0+synopsis:              Amazon GuardDuty SDK.+homepage:              https://github.com/brendanhay/amazonka+bug-reports:           https://github.com/brendanhay/amazonka/issues+license:               MPL-2.0+license-file:          LICENSE+author:                Brendan Hay+maintainer:            Brendan Hay <brendan.g.hay+amazonka@gmail.com>+copyright:             Copyright (c) 2013-2018 Brendan Hay+category:              Network, AWS, Cloud, Distributed Computing+build-type:            Simple+cabal-version:         >= 1.10+extra-source-files:    README.md fixture/*.yaml fixture/*.proto src/.gitkeep+description:+    The types from this library are intended to be used with+    <http://hackage.haskell.org/package/amazonka amazonka>, which provides+    mechanisms for specifying AuthN/AuthZ information, sending requests,+    and receiving responses.+    .+    Lenses are used for constructing and manipulating types,+    due to the depth of nesting of AWS types and transparency regarding+    de/serialisation into more palatable Haskell values.+    The provided lenses should be compatible with any of the major lens libraries+    such as <http://hackage.haskell.org/package/lens lens> or+    <http://hackage.haskell.org/package/lens-family-core lens-family-core>.+    .+    See "Network.AWS.GuardDuty" or <https://aws.amazon.com/documentation/ the AWS documentation>+    to get started.++source-repository head+    type:              git+    location:          git://github.com/brendanhay/amazonka.git+    subdir:            amazonka-guardduty++library+    default-language:  Haskell2010+    hs-source-dirs:    src gen++    ghc-options:+        -Wall+        -fwarn-incomplete-uni-patterns+        -fwarn-incomplete-record-updates+        -funbox-strict-fields++    exposed-modules:+          Network.AWS.GuardDuty+        , Network.AWS.GuardDuty.AcceptInvitation+        , Network.AWS.GuardDuty.ArchiveFindings+        , Network.AWS.GuardDuty.CreateDetector+        , Network.AWS.GuardDuty.CreateFilter+        , Network.AWS.GuardDuty.CreateIPSet+        , Network.AWS.GuardDuty.CreateMembers+        , Network.AWS.GuardDuty.CreateSampleFindings+        , Network.AWS.GuardDuty.CreateThreatIntelSet+        , Network.AWS.GuardDuty.DeclineInvitations+        , Network.AWS.GuardDuty.DeleteDetector+        , Network.AWS.GuardDuty.DeleteFilter+        , Network.AWS.GuardDuty.DeleteIPSet+        , Network.AWS.GuardDuty.DeleteInvitations+        , Network.AWS.GuardDuty.DeleteMembers+        , Network.AWS.GuardDuty.DeleteThreatIntelSet+        , Network.AWS.GuardDuty.DisassociateFromMasterAccount+        , Network.AWS.GuardDuty.DisassociateMembers+        , Network.AWS.GuardDuty.GetDetector+        , Network.AWS.GuardDuty.GetFilter+        , Network.AWS.GuardDuty.GetFindings+        , Network.AWS.GuardDuty.GetFindingsStatistics+        , Network.AWS.GuardDuty.GetIPSet+        , Network.AWS.GuardDuty.GetInvitationsCount+        , Network.AWS.GuardDuty.GetMasterAccount+        , Network.AWS.GuardDuty.GetMembers+        , Network.AWS.GuardDuty.GetThreatIntelSet+        , Network.AWS.GuardDuty.InviteMembers+        , Network.AWS.GuardDuty.ListDetectors+        , Network.AWS.GuardDuty.ListFilters+        , Network.AWS.GuardDuty.ListFindings+        , Network.AWS.GuardDuty.ListIPSets+        , Network.AWS.GuardDuty.ListInvitations+        , Network.AWS.GuardDuty.ListMembers+        , Network.AWS.GuardDuty.ListThreatIntelSets+        , Network.AWS.GuardDuty.StartMonitoringMembers+        , Network.AWS.GuardDuty.StopMonitoringMembers+        , Network.AWS.GuardDuty.Types+        , Network.AWS.GuardDuty.UnarchiveFindings+        , Network.AWS.GuardDuty.UpdateDetector+        , Network.AWS.GuardDuty.UpdateFilter+        , Network.AWS.GuardDuty.UpdateFindingsFeedback+        , Network.AWS.GuardDuty.UpdateIPSet+        , Network.AWS.GuardDuty.UpdateThreatIntelSet+        , Network.AWS.GuardDuty.Waiters++    other-modules:+          Network.AWS.GuardDuty.Types.Product+        , Network.AWS.GuardDuty.Types.Sum++    build-depends:+          amazonka-core == 1.6.0.*+        , base          >= 4.7     && < 5++test-suite amazonka-guardduty-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.GuardDuty+        , Test.AWS.Gen.GuardDuty+        , Test.AWS.GuardDuty.Internal++    build-depends:+          amazonka-core == 1.6.0.*+        , amazonka-test == 1.6.0.*+        , amazonka-guardduty+        , base+        , bytestring+        , tasty+        , tasty-hunit+        , text+        , time+        , unordered-containers
+ fixture/AcceptInvitation.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/guardduty/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  guardduty.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/AcceptInvitationResponse.proto view
+ fixture/ArchiveFindings.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/guardduty/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  guardduty.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/ArchiveFindingsResponse.proto view
+ fixture/CreateDetector.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/guardduty/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  guardduty.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/CreateDetectorResponse.proto view
+ fixture/CreateFilter.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/guardduty/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  guardduty.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/CreateFilterResponse.proto view
+ fixture/CreateIPSet.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/guardduty/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  guardduty.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/CreateIPSetResponse.proto view
+ fixture/CreateMembers.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/guardduty/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  guardduty.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/CreateMembersResponse.proto view
+ fixture/CreateSampleFindings.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/guardduty/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  guardduty.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/CreateSampleFindingsResponse.proto view
+ fixture/CreateThreatIntelSet.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/guardduty/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  guardduty.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/CreateThreatIntelSetResponse.proto view
+ fixture/DeclineInvitations.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/guardduty/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  guardduty.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DeclineInvitationsResponse.proto view
+ fixture/DeleteDetector.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/guardduty/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  guardduty.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DeleteDetectorResponse.proto view
+ fixture/DeleteFilter.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/guardduty/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  guardduty.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DeleteFilterResponse.proto view
+ fixture/DeleteIPSet.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/guardduty/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  guardduty.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DeleteIPSetResponse.proto view
+ fixture/DeleteInvitations.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/guardduty/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  guardduty.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DeleteInvitationsResponse.proto view
+ fixture/DeleteMembers.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/guardduty/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  guardduty.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DeleteMembersResponse.proto view
+ fixture/DeleteThreatIntelSet.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/guardduty/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  guardduty.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DeleteThreatIntelSetResponse.proto view
+ fixture/DisassociateFromMasterAccount.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/guardduty/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  guardduty.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DisassociateFromMasterAccountResponse.proto view
+ fixture/DisassociateMembers.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/guardduty/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  guardduty.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DisassociateMembersResponse.proto view
+ fixture/GetDetector.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/guardduty/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  guardduty.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/GetDetectorResponse.proto view
+ fixture/GetFilter.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/guardduty/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  guardduty.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/GetFilterResponse.proto view
+ fixture/GetFindings.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/guardduty/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  guardduty.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/GetFindingsResponse.proto view
+ fixture/GetFindingsStatistics.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/guardduty/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  guardduty.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/GetFindingsStatisticsResponse.proto view
+ fixture/GetIPSet.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/guardduty/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  guardduty.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/GetIPSetResponse.proto view
+ fixture/GetInvitationsCount.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/guardduty/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  guardduty.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/GetInvitationsCountResponse.proto view
+ fixture/GetMasterAccount.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/guardduty/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  guardduty.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/GetMasterAccountResponse.proto view
+ fixture/GetMembers.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/guardduty/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  guardduty.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/GetMembersResponse.proto view
+ fixture/GetThreatIntelSet.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/guardduty/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  guardduty.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/GetThreatIntelSetResponse.proto view
+ fixture/InviteMembers.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/guardduty/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  guardduty.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/InviteMembersResponse.proto view
+ fixture/ListDetectors.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/guardduty/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  guardduty.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/ListDetectorsResponse.proto view
+ fixture/ListFilters.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/guardduty/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  guardduty.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/ListFiltersResponse.proto view
+ fixture/ListFindings.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/guardduty/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  guardduty.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/ListFindingsResponse.proto view
+ fixture/ListIPSets.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/guardduty/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  guardduty.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/ListIPSetsResponse.proto view
+ fixture/ListInvitations.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/guardduty/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  guardduty.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/ListInvitationsResponse.proto view
+ fixture/ListMembers.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/guardduty/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  guardduty.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/ListMembersResponse.proto view
+ fixture/ListThreatIntelSets.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/guardduty/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  guardduty.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/ListThreatIntelSetsResponse.proto view
+ fixture/StartMonitoringMembers.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/guardduty/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  guardduty.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/StartMonitoringMembersResponse.proto view
+ fixture/StopMonitoringMembers.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/guardduty/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  guardduty.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/StopMonitoringMembersResponse.proto view
+ fixture/UnarchiveFindings.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/guardduty/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  guardduty.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/UnarchiveFindingsResponse.proto view
+ fixture/UpdateDetector.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/guardduty/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  guardduty.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/UpdateDetectorResponse.proto view
+ fixture/UpdateFilter.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/guardduty/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  guardduty.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/UpdateFilterResponse.proto view
+ fixture/UpdateFindingsFeedback.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/guardduty/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  guardduty.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/UpdateFindingsFeedbackResponse.proto view
+ fixture/UpdateIPSet.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/guardduty/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  guardduty.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/UpdateIPSetResponse.proto view
+ fixture/UpdateThreatIntelSet.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/guardduty/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  guardduty.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/UpdateThreatIntelSetResponse.proto view
+ gen/Network/AWS/GuardDuty.hs view
@@ -0,0 +1,531 @@+{-# 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.GuardDuty+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Assess, monitor, manage, and remediate security issues across your AWS infrastructure, applications, and data.+module Network.AWS.GuardDuty+    (+    -- * Service Configuration+      guardDuty++    -- * Errors+    -- $errors++    -- ** InternalServerErrorException+    , _InternalServerErrorException++    -- ** BadRequestException+    , _BadRequestException++    -- * Waiters+    -- $waiters++    -- * Operations+    -- $operations++    -- ** CreateFilter+    , module Network.AWS.GuardDuty.CreateFilter++    -- ** ListFindings (Paginated)+    , module Network.AWS.GuardDuty.ListFindings++    -- ** CreateIPSet+    , module Network.AWS.GuardDuty.CreateIPSet++    -- ** DeleteThreatIntelSet+    , module Network.AWS.GuardDuty.DeleteThreatIntelSet++    -- ** UpdateThreatIntelSet+    , module Network.AWS.GuardDuty.UpdateThreatIntelSet++    -- ** StopMonitoringMembers+    , module Network.AWS.GuardDuty.StopMonitoringMembers++    -- ** ListThreatIntelSets (Paginated)+    , module Network.AWS.GuardDuty.ListThreatIntelSets++    -- ** CreateThreatIntelSet+    , module Network.AWS.GuardDuty.CreateThreatIntelSet++    -- ** DeleteMembers+    , module Network.AWS.GuardDuty.DeleteMembers++    -- ** GetFindingsStatistics+    , module Network.AWS.GuardDuty.GetFindingsStatistics++    -- ** GetIPSet+    , module Network.AWS.GuardDuty.GetIPSet++    -- ** ListInvitations (Paginated)+    , module Network.AWS.GuardDuty.ListInvitations++    -- ** GetThreatIntelSet+    , module Network.AWS.GuardDuty.GetThreatIntelSet++    -- ** DeleteInvitations+    , module Network.AWS.GuardDuty.DeleteInvitations++    -- ** GetMasterAccount+    , module Network.AWS.GuardDuty.GetMasterAccount++    -- ** CreateDetector+    , module Network.AWS.GuardDuty.CreateDetector++    -- ** DeclineInvitations+    , module Network.AWS.GuardDuty.DeclineInvitations++    -- ** UpdateFilter+    , module Network.AWS.GuardDuty.UpdateFilter++    -- ** DeleteFilter+    , module Network.AWS.GuardDuty.DeleteFilter++    -- ** DisassociateMembers+    , module Network.AWS.GuardDuty.DisassociateMembers++    -- ** DisassociateFromMasterAccount+    , module Network.AWS.GuardDuty.DisassociateFromMasterAccount++    -- ** AcceptInvitation+    , module Network.AWS.GuardDuty.AcceptInvitation++    -- ** ListFilters (Paginated)+    , module Network.AWS.GuardDuty.ListFilters++    -- ** ListMembers (Paginated)+    , module Network.AWS.GuardDuty.ListMembers++    -- ** GetDetector+    , module Network.AWS.GuardDuty.GetDetector++    -- ** CreateSampleFindings+    , module Network.AWS.GuardDuty.CreateSampleFindings++    -- ** ArchiveFindings+    , module Network.AWS.GuardDuty.ArchiveFindings++    -- ** CreateMembers+    , module Network.AWS.GuardDuty.CreateMembers++    -- ** UnarchiveFindings+    , module Network.AWS.GuardDuty.UnarchiveFindings++    -- ** GetInvitationsCount+    , module Network.AWS.GuardDuty.GetInvitationsCount++    -- ** StartMonitoringMembers+    , module Network.AWS.GuardDuty.StartMonitoringMembers++    -- ** InviteMembers+    , module Network.AWS.GuardDuty.InviteMembers++    -- ** DeleteIPSet+    , module Network.AWS.GuardDuty.DeleteIPSet++    -- ** UpdateIPSet+    , module Network.AWS.GuardDuty.UpdateIPSet++    -- ** ListIPSets (Paginated)+    , module Network.AWS.GuardDuty.ListIPSets++    -- ** GetMembers+    , module Network.AWS.GuardDuty.GetMembers++    -- ** GetFindings+    , module Network.AWS.GuardDuty.GetFindings++    -- ** ListDetectors (Paginated)+    , module Network.AWS.GuardDuty.ListDetectors++    -- ** UpdateDetector+    , module Network.AWS.GuardDuty.UpdateDetector++    -- ** DeleteDetector+    , module Network.AWS.GuardDuty.DeleteDetector++    -- ** UpdateFindingsFeedback+    , module Network.AWS.GuardDuty.UpdateFindingsFeedback++    -- ** GetFilter+    , module Network.AWS.GuardDuty.GetFilter++    -- * Types++    -- ** DetectorStatus+    , DetectorStatus (..)++    -- ** Feedback+    , Feedback (..)++    -- ** FilterAction+    , FilterAction (..)++    -- ** FindingStatisticType+    , FindingStatisticType (..)++    -- ** IPSetFormat+    , IPSetFormat (..)++    -- ** IPSetStatus+    , IPSetStatus (..)++    -- ** OrderBy+    , OrderBy (..)++    -- ** ThreatIntelSetFormat+    , ThreatIntelSetFormat (..)++    -- ** ThreatIntelSetStatus+    , ThreatIntelSetStatus (..)++    -- ** AWSAPICallAction+    , AWSAPICallAction+    , awsAPICallAction+    , aacaRemoteIPDetails+    , aacaCallerType+    , aacaDomainDetails+    , aacaServiceName+    , aacaAPI++    -- ** AccessKeyDetails+    , AccessKeyDetails+    , accessKeyDetails+    , akdPrincipalId+    , akdUserName+    , akdAccessKeyId+    , akdUserType++    -- ** AccountDetail+    , AccountDetail+    , accountDetail+    , adEmail+    , adAccountId++    -- ** Action+    , Action+    , action+    , aNetworkConnectionAction+    , aPortProbeAction+    , aActionType+    , aDNSRequestAction+    , aAWSAPICallAction++    -- ** City+    , City+    , city+    , cCityName++    -- ** Condition+    , Condition+    , condition+    , cEQ+    , cLte+    , cGT+    , cNeq+    , cLT+    , cGte++    -- ** Country+    , Country+    , country+    , cCountryName+    , cCountryCode++    -- ** DNSRequestAction+    , DNSRequestAction+    , dnsRequestAction+    , draDomain++    -- ** DomainDetails+    , DomainDetails+    , domainDetails++    -- ** Finding+    , Finding+    , finding+    , fService+    , fConfidence+    , fPartition+    , fTitle+    , fDescription+    , fAccountId+    , fSchemaVersion+    , fCreatedAt+    , fResource+    , fSeverity+    , fUpdatedAt+    , fType+    , fRegion+    , fId+    , fARN++    -- ** FindingCriteria+    , FindingCriteria+    , findingCriteria+    , fcCriterion++    -- ** FindingStatistics+    , FindingStatistics+    , findingStatistics+    , fsCountBySeverity++    -- ** GeoLocation+    , GeoLocation+    , geoLocation+    , glLat+    , glLon++    -- ** IAMInstanceProfile+    , IAMInstanceProfile+    , iamInstanceProfile+    , iapARN+    , iapId++    -- ** InstanceDetails+    , InstanceDetails+    , instanceDetails+    , idInstanceId+    , idPlatform+    , idLaunchTime+    , idNetworkInterfaces+    , idInstanceType+    , idAvailabilityZone+    , idIAMInstanceProfile+    , idImageId+    , idProductCodes+    , idInstanceState+    , idTags+    , idImageDescription++    -- ** Invitation+    , Invitation+    , invitation+    , iInvitedAt+    , iRelationshipStatus+    , iInvitationId+    , iAccountId++    -- ** LocalPortDetails+    , LocalPortDetails+    , localPortDetails+    , lpdPortName+    , lpdPort++    -- ** Master+    , Master+    , master+    , masInvitedAt+    , masRelationshipStatus+    , masInvitationId+    , masAccountId++    -- ** Member+    , Member+    , member+    , mInvitedAt+    , mDetectorId+    , mEmail+    , mAccountId+    , mMasterId+    , mUpdatedAt+    , mRelationshipStatus++    -- ** NetworkConnectionAction+    , NetworkConnectionAction+    , networkConnectionAction+    , ncaRemoteIPDetails+    , ncaProtocol+    , ncaRemotePortDetails+    , ncaBlocked+    , ncaConnectionDirection+    , ncaLocalPortDetails++    -- ** NetworkInterface+    , NetworkInterface+    , networkInterface+    , niPrivateIPAddresses+    , niPublicDNSName+    , niSecurityGroups+    , niVPCId+    , niNetworkInterfaceId+    , niSubnetId+    , niPrivateIPAddress+    , niPublicIP+    , niPrivateDNSName+    , niIPv6Addresses++    -- ** Organization+    , Organization+    , organization+    , oOrg+    , oASNOrg+    , oASN+    , oIsp++    -- ** PortProbeAction+    , PortProbeAction+    , portProbeAction+    , ppaPortProbeDetails+    , ppaBlocked++    -- ** PortProbeDetail+    , PortProbeDetail+    , portProbeDetail+    , ppdRemoteIPDetails+    , ppdLocalPortDetails++    -- ** PrivateIPAddressDetails+    , PrivateIPAddressDetails+    , privateIPAddressDetails+    , piadPrivateIPAddress+    , piadPrivateDNSName++    -- ** ProductCode+    , ProductCode+    , productCode+    , pcProductType+    , pcCode++    -- ** RemoteIPDetails+    , RemoteIPDetails+    , remoteIPDetails+    , ridCountry+    , ridCity+    , ridIPAddressV4+    , ridGeoLocation+    , ridOrganization++    -- ** RemotePortDetails+    , RemotePortDetails+    , remotePortDetails+    , rpdPortName+    , rpdPort++    -- ** Resource+    , Resource+    , resource+    , rResourceType+    , rInstanceDetails+    , rAccessKeyDetails++    -- ** SecurityGroup+    , SecurityGroup+    , securityGroup+    , sgGroupId+    , sgGroupName++    -- ** ServiceInfo+    , ServiceInfo+    , serviceInfo+    , siCount+    , siEventFirstSeen+    , siAction+    , siDetectorId+    , siServiceName+    , siUserFeedback+    , siEventLastSeen+    , siResourceRole+    , siArchived++    -- ** SortCriteria+    , SortCriteria+    , sortCriteria+    , scOrderBy+    , scAttributeName++    -- ** Tag+    , Tag+    , tag+    , tagValue+    , tagKey++    -- ** UnprocessedAccount+    , UnprocessedAccount+    , unprocessedAccount+    , uaAccountId+    , uaResult+    ) where++import Network.AWS.GuardDuty.AcceptInvitation+import Network.AWS.GuardDuty.ArchiveFindings+import Network.AWS.GuardDuty.CreateDetector+import Network.AWS.GuardDuty.CreateFilter+import Network.AWS.GuardDuty.CreateIPSet+import Network.AWS.GuardDuty.CreateMembers+import Network.AWS.GuardDuty.CreateSampleFindings+import Network.AWS.GuardDuty.CreateThreatIntelSet+import Network.AWS.GuardDuty.DeclineInvitations+import Network.AWS.GuardDuty.DeleteDetector+import Network.AWS.GuardDuty.DeleteFilter+import Network.AWS.GuardDuty.DeleteInvitations+import Network.AWS.GuardDuty.DeleteIPSet+import Network.AWS.GuardDuty.DeleteMembers+import Network.AWS.GuardDuty.DeleteThreatIntelSet+import Network.AWS.GuardDuty.DisassociateFromMasterAccount+import Network.AWS.GuardDuty.DisassociateMembers+import Network.AWS.GuardDuty.GetDetector+import Network.AWS.GuardDuty.GetFilter+import Network.AWS.GuardDuty.GetFindings+import Network.AWS.GuardDuty.GetFindingsStatistics+import Network.AWS.GuardDuty.GetInvitationsCount+import Network.AWS.GuardDuty.GetIPSet+import Network.AWS.GuardDuty.GetMasterAccount+import Network.AWS.GuardDuty.GetMembers+import Network.AWS.GuardDuty.GetThreatIntelSet+import Network.AWS.GuardDuty.InviteMembers+import Network.AWS.GuardDuty.ListDetectors+import Network.AWS.GuardDuty.ListFilters+import Network.AWS.GuardDuty.ListFindings+import Network.AWS.GuardDuty.ListInvitations+import Network.AWS.GuardDuty.ListIPSets+import Network.AWS.GuardDuty.ListMembers+import Network.AWS.GuardDuty.ListThreatIntelSets+import Network.AWS.GuardDuty.StartMonitoringMembers+import Network.AWS.GuardDuty.StopMonitoringMembers+import Network.AWS.GuardDuty.Types+import Network.AWS.GuardDuty.UnarchiveFindings+import Network.AWS.GuardDuty.UpdateDetector+import Network.AWS.GuardDuty.UpdateFilter+import Network.AWS.GuardDuty.UpdateFindingsFeedback+import Network.AWS.GuardDuty.UpdateIPSet+import Network.AWS.GuardDuty.UpdateThreatIntelSet+import Network.AWS.GuardDuty.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 'GuardDuty'.+-}++{- $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/GuardDuty/AcceptInvitation.hs view
@@ -0,0 +1,144 @@+{-# 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.GuardDuty.AcceptInvitation+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Accepts the invitation to be monitored by a master GuardDuty account.+module Network.AWS.GuardDuty.AcceptInvitation+    (+    -- * Creating a Request+      acceptInvitation+    , AcceptInvitation+    -- * Request Lenses+    , aiMasterId+    , aiInvitationId+    , aiDetectorId++    -- * Destructuring the Response+    , acceptInvitationResponse+    , AcceptInvitationResponse+    -- * Response Lenses+    , airsResponseStatus+    ) where++import Network.AWS.GuardDuty.Types+import Network.AWS.GuardDuty.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | AcceptInvitation request body.+--+-- /See:/ 'acceptInvitation' smart constructor.+data AcceptInvitation = AcceptInvitation'+  { _aiMasterId     :: !(Maybe Text)+  , _aiInvitationId :: !(Maybe Text)+  , _aiDetectorId   :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'AcceptInvitation' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'aiMasterId' - The account ID of the master GuardDuty account whose invitation you're accepting.+--+-- * 'aiInvitationId' - This value is used to validate the master account to the member account.+--+-- * 'aiDetectorId' - The unique ID of the detector of the GuardDuty member account.+acceptInvitation+    :: Text -- ^ 'aiDetectorId'+    -> AcceptInvitation+acceptInvitation pDetectorId_ =+  AcceptInvitation'+    { _aiMasterId = Nothing+    , _aiInvitationId = Nothing+    , _aiDetectorId = pDetectorId_+    }+++-- | The account ID of the master GuardDuty account whose invitation you're accepting.+aiMasterId :: Lens' AcceptInvitation (Maybe Text)+aiMasterId = lens _aiMasterId (\ s a -> s{_aiMasterId = a})++-- | This value is used to validate the master account to the member account.+aiInvitationId :: Lens' AcceptInvitation (Maybe Text)+aiInvitationId = lens _aiInvitationId (\ s a -> s{_aiInvitationId = a})++-- | The unique ID of the detector of the GuardDuty member account.+aiDetectorId :: Lens' AcceptInvitation Text+aiDetectorId = lens _aiDetectorId (\ s a -> s{_aiDetectorId = a})++instance AWSRequest AcceptInvitation where+        type Rs AcceptInvitation = AcceptInvitationResponse+        request = postJSON guardDuty+        response+          = receiveEmpty+              (\ s h x ->+                 AcceptInvitationResponse' <$> (pure (fromEnum s)))++instance Hashable AcceptInvitation where++instance NFData AcceptInvitation where++instance ToHeaders AcceptInvitation where+        toHeaders+          = const+              (mconcat+                 ["Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON AcceptInvitation where+        toJSON AcceptInvitation'{..}+          = object+              (catMaybes+                 [("masterId" .=) <$> _aiMasterId,+                  ("invitationId" .=) <$> _aiInvitationId])++instance ToPath AcceptInvitation where+        toPath AcceptInvitation'{..}+          = mconcat+              ["/detector/", toBS _aiDetectorId, "/master"]++instance ToQuery AcceptInvitation where+        toQuery = const mempty++-- | /See:/ 'acceptInvitationResponse' smart constructor.+newtype AcceptInvitationResponse = AcceptInvitationResponse'+  { _airsResponseStatus :: Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'AcceptInvitationResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'airsResponseStatus' - -- | The response status code.+acceptInvitationResponse+    :: Int -- ^ 'airsResponseStatus'+    -> AcceptInvitationResponse+acceptInvitationResponse pResponseStatus_ =+  AcceptInvitationResponse' {_airsResponseStatus = pResponseStatus_}+++-- | -- | The response status code.+airsResponseStatus :: Lens' AcceptInvitationResponse Int+airsResponseStatus = lens _airsResponseStatus (\ s a -> s{_airsResponseStatus = a})++instance NFData AcceptInvitationResponse where
+ gen/Network/AWS/GuardDuty/ArchiveFindings.hs view
@@ -0,0 +1,131 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.GuardDuty.ArchiveFindings+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Archives Amazon GuardDuty findings specified by the list of finding IDs.+module Network.AWS.GuardDuty.ArchiveFindings+    (+    -- * Creating a Request+      archiveFindings+    , ArchiveFindings+    -- * Request Lenses+    , afFindingIds+    , afDetectorId++    -- * Destructuring the Response+    , archiveFindingsResponse+    , ArchiveFindingsResponse+    -- * Response Lenses+    , afrsResponseStatus+    ) where++import Network.AWS.GuardDuty.Types+import Network.AWS.GuardDuty.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | ArchiveFindings request body.+--+-- /See:/ 'archiveFindings' smart constructor.+data ArchiveFindings = ArchiveFindings'+  { _afFindingIds :: !(Maybe [Text])+  , _afDetectorId :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ArchiveFindings' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'afFindingIds' - IDs of the findings that you want to archive.+--+-- * 'afDetectorId' - The ID of the detector that specifies the GuardDuty service whose findings you want to archive.+archiveFindings+    :: Text -- ^ 'afDetectorId'+    -> ArchiveFindings+archiveFindings pDetectorId_ =+  ArchiveFindings' {_afFindingIds = Nothing, _afDetectorId = pDetectorId_}+++-- | IDs of the findings that you want to archive.+afFindingIds :: Lens' ArchiveFindings [Text]+afFindingIds = lens _afFindingIds (\ s a -> s{_afFindingIds = a}) . _Default . _Coerce++-- | The ID of the detector that specifies the GuardDuty service whose findings you want to archive.+afDetectorId :: Lens' ArchiveFindings Text+afDetectorId = lens _afDetectorId (\ s a -> s{_afDetectorId = a})++instance AWSRequest ArchiveFindings where+        type Rs ArchiveFindings = ArchiveFindingsResponse+        request = postJSON guardDuty+        response+          = receiveEmpty+              (\ s h x ->+                 ArchiveFindingsResponse' <$> (pure (fromEnum s)))++instance Hashable ArchiveFindings where++instance NFData ArchiveFindings where++instance ToHeaders ArchiveFindings where+        toHeaders+          = const+              (mconcat+                 ["Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON ArchiveFindings where+        toJSON ArchiveFindings'{..}+          = object+              (catMaybes [("findingIds" .=) <$> _afFindingIds])++instance ToPath ArchiveFindings where+        toPath ArchiveFindings'{..}+          = mconcat+              ["/detector/", toBS _afDetectorId,+               "/findings/archive"]++instance ToQuery ArchiveFindings where+        toQuery = const mempty++-- | /See:/ 'archiveFindingsResponse' smart constructor.+newtype ArchiveFindingsResponse = ArchiveFindingsResponse'+  { _afrsResponseStatus :: Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ArchiveFindingsResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'afrsResponseStatus' - -- | The response status code.+archiveFindingsResponse+    :: Int -- ^ 'afrsResponseStatus'+    -> ArchiveFindingsResponse+archiveFindingsResponse pResponseStatus_ =+  ArchiveFindingsResponse' {_afrsResponseStatus = pResponseStatus_}+++-- | -- | The response status code.+afrsResponseStatus :: Lens' ArchiveFindingsResponse Int+afrsResponseStatus = lens _afrsResponseStatus (\ s a -> s{_afrsResponseStatus = a})++instance NFData ArchiveFindingsResponse where
+ gen/Network/AWS/GuardDuty/CreateDetector.hs view
@@ -0,0 +1,127 @@+{-# 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.GuardDuty.CreateDetector+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a single Amazon GuardDuty detector. A detector is an object that represents the GuardDuty service. A detector must be created in order for GuardDuty to become operational.+module Network.AWS.GuardDuty.CreateDetector+    (+    -- * Creating a Request+      createDetector+    , CreateDetector+    -- * Request Lenses+    , cdEnable++    -- * Destructuring the Response+    , createDetectorResponse+    , CreateDetectorResponse+    -- * Response Lenses+    , cdrsDetectorId+    , cdrsResponseStatus+    ) where++import Network.AWS.GuardDuty.Types+import Network.AWS.GuardDuty.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | CreateDetector request body.+--+-- /See:/ 'createDetector' smart constructor.+newtype CreateDetector = CreateDetector'+  { _cdEnable :: Maybe Bool+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'CreateDetector' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cdEnable' - A boolean value that specifies whether the detector is to be enabled.+createDetector+    :: CreateDetector+createDetector = CreateDetector' {_cdEnable = Nothing}+++-- | A boolean value that specifies whether the detector is to be enabled.+cdEnable :: Lens' CreateDetector (Maybe Bool)+cdEnable = lens _cdEnable (\ s a -> s{_cdEnable = a})++instance AWSRequest CreateDetector where+        type Rs CreateDetector = CreateDetectorResponse+        request = postJSON guardDuty+        response+          = receiveJSON+              (\ s h x ->+                 CreateDetectorResponse' <$>+                   (x .?> "detectorId") <*> (pure (fromEnum s)))++instance Hashable CreateDetector where++instance NFData CreateDetector where++instance ToHeaders CreateDetector where+        toHeaders+          = const+              (mconcat+                 ["Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON CreateDetector where+        toJSON CreateDetector'{..}+          = object (catMaybes [("enable" .=) <$> _cdEnable])++instance ToPath CreateDetector where+        toPath = const "/detector"++instance ToQuery CreateDetector where+        toQuery = const mempty++-- | /See:/ 'createDetectorResponse' smart constructor.+data CreateDetectorResponse = CreateDetectorResponse'+  { _cdrsDetectorId     :: !(Maybe Text)+  , _cdrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'CreateDetectorResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cdrsDetectorId' - The unique ID of the created detector.+--+-- * 'cdrsResponseStatus' - -- | The response status code.+createDetectorResponse+    :: Int -- ^ 'cdrsResponseStatus'+    -> CreateDetectorResponse+createDetectorResponse pResponseStatus_ =+  CreateDetectorResponse'+    {_cdrsDetectorId = Nothing, _cdrsResponseStatus = pResponseStatus_}+++-- | The unique ID of the created detector.+cdrsDetectorId :: Lens' CreateDetectorResponse (Maybe Text)+cdrsDetectorId = lens _cdrsDetectorId (\ s a -> s{_cdrsDetectorId = a})++-- | -- | The response status code.+cdrsResponseStatus :: Lens' CreateDetectorResponse Int+cdrsResponseStatus = lens _cdrsResponseStatus (\ s a -> s{_cdrsResponseStatus = a})++instance NFData CreateDetectorResponse where
+ gen/Network/AWS/GuardDuty/CreateFilter.hs view
@@ -0,0 +1,193 @@+{-# 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.GuardDuty.CreateFilter+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a filter using the specified finding criteria.+module Network.AWS.GuardDuty.CreateFilter+    (+    -- * Creating a Request+      createFilter+    , CreateFilter+    -- * Request Lenses+    , cfClientToken+    , cfFindingCriteria+    , cfAction+    , cfName+    , cfDescription+    , cfRank+    , cfDetectorId++    -- * Destructuring the Response+    , createFilterResponse+    , CreateFilterResponse+    -- * Response Lenses+    , cfrsName+    , cfrsResponseStatus+    ) where++import Network.AWS.GuardDuty.Types+import Network.AWS.GuardDuty.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | CreateFilterRequest request body.+--+-- /See:/ 'createFilter' smart constructor.+data CreateFilter = CreateFilter'+  { _cfClientToken     :: !(Maybe Text)+  , _cfFindingCriteria :: !(Maybe FindingCriteria)+  , _cfAction          :: !(Maybe FilterAction)+  , _cfName            :: !(Maybe Text)+  , _cfDescription     :: !(Maybe Text)+  , _cfRank            :: !(Maybe Int)+  , _cfDetectorId      :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'CreateFilter' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cfClientToken' - The idempotency token for the create request.+--+-- * 'cfFindingCriteria' - Represents the criteria to be used in the filter for querying findings.+--+-- * 'cfAction' - Specifies the action that is to be applied to the findings that match the filter.+--+-- * 'cfName' - The name of the filter.+--+-- * 'cfDescription' - The description of the filter.+--+-- * 'cfRank' - Specifies the position of the filter in the list of current filters. Also specifies the order in which this filter is applied to the findings.+--+-- * 'cfDetectorId' - The unique ID of the detector that you want to update.+createFilter+    :: Text -- ^ 'cfDetectorId'+    -> CreateFilter+createFilter pDetectorId_ =+  CreateFilter'+    { _cfClientToken = Nothing+    , _cfFindingCriteria = Nothing+    , _cfAction = Nothing+    , _cfName = Nothing+    , _cfDescription = Nothing+    , _cfRank = Nothing+    , _cfDetectorId = pDetectorId_+    }+++-- | The idempotency token for the create request.+cfClientToken :: Lens' CreateFilter (Maybe Text)+cfClientToken = lens _cfClientToken (\ s a -> s{_cfClientToken = a})++-- | Represents the criteria to be used in the filter for querying findings.+cfFindingCriteria :: Lens' CreateFilter (Maybe FindingCriteria)+cfFindingCriteria = lens _cfFindingCriteria (\ s a -> s{_cfFindingCriteria = a})++-- | Specifies the action that is to be applied to the findings that match the filter.+cfAction :: Lens' CreateFilter (Maybe FilterAction)+cfAction = lens _cfAction (\ s a -> s{_cfAction = a})++-- | The name of the filter.+cfName :: Lens' CreateFilter (Maybe Text)+cfName = lens _cfName (\ s a -> s{_cfName = a})++-- | The description of the filter.+cfDescription :: Lens' CreateFilter (Maybe Text)+cfDescription = lens _cfDescription (\ s a -> s{_cfDescription = a})++-- | Specifies the position of the filter in the list of current filters. Also specifies the order in which this filter is applied to the findings.+cfRank :: Lens' CreateFilter (Maybe Int)+cfRank = lens _cfRank (\ s a -> s{_cfRank = a})++-- | The unique ID of the detector that you want to update.+cfDetectorId :: Lens' CreateFilter Text+cfDetectorId = lens _cfDetectorId (\ s a -> s{_cfDetectorId = a})++instance AWSRequest CreateFilter where+        type Rs CreateFilter = CreateFilterResponse+        request = postJSON guardDuty+        response+          = receiveJSON+              (\ s h x ->+                 CreateFilterResponse' <$>+                   (x .?> "name") <*> (pure (fromEnum s)))++instance Hashable CreateFilter where++instance NFData CreateFilter where++instance ToHeaders CreateFilter where+        toHeaders+          = const+              (mconcat+                 ["Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON CreateFilter where+        toJSON CreateFilter'{..}+          = object+              (catMaybes+                 [("clientToken" .=) <$> _cfClientToken,+                  ("findingCriteria" .=) <$> _cfFindingCriteria,+                  ("action" .=) <$> _cfAction, ("name" .=) <$> _cfName,+                  ("description" .=) <$> _cfDescription,+                  ("rank" .=) <$> _cfRank])++instance ToPath CreateFilter where+        toPath CreateFilter'{..}+          = mconcat+              ["/detector/", toBS _cfDetectorId, "/filter"]++instance ToQuery CreateFilter where+        toQuery = const mempty++-- | /See:/ 'createFilterResponse' smart constructor.+data CreateFilterResponse = CreateFilterResponse'+  { _cfrsName           :: !(Maybe Text)+  , _cfrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'CreateFilterResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cfrsName' - The name of the successfully created filter.+--+-- * 'cfrsResponseStatus' - -- | The response status code.+createFilterResponse+    :: Int -- ^ 'cfrsResponseStatus'+    -> CreateFilterResponse+createFilterResponse pResponseStatus_ =+  CreateFilterResponse'+    {_cfrsName = Nothing, _cfrsResponseStatus = pResponseStatus_}+++-- | The name of the successfully created filter.+cfrsName :: Lens' CreateFilterResponse (Maybe Text)+cfrsName = lens _cfrsName (\ s a -> s{_cfrsName = a})++-- | -- | The response status code.+cfrsResponseStatus :: Lens' CreateFilterResponse Int+cfrsResponseStatus = lens _cfrsResponseStatus (\ s a -> s{_cfrsResponseStatus = a})++instance NFData CreateFilterResponse where
+ gen/Network/AWS/GuardDuty/CreateIPSet.hs view
@@ -0,0 +1,174 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.GuardDuty.CreateIPSet+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a new IPSet - a list of trusted IP addresses that have been whitelisted for secure communication with AWS infrastructure and applications.+module Network.AWS.GuardDuty.CreateIPSet+    (+    -- * Creating a Request+      createIPSet+    , CreateIPSet+    -- * Request Lenses+    , cisLocation+    , cisFormat+    , cisActivate+    , cisName+    , cisDetectorId++    -- * Destructuring the Response+    , createIPSetResponse+    , CreateIPSetResponse+    -- * Response Lenses+    , cisrsIPSetId+    , cisrsResponseStatus+    ) where++import Network.AWS.GuardDuty.Types+import Network.AWS.GuardDuty.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | CreateIPSet request body.+--+-- /See:/ 'createIPSet' smart constructor.+data CreateIPSet = CreateIPSet'+  { _cisLocation   :: !(Maybe Text)+  , _cisFormat     :: !(Maybe IPSetFormat)+  , _cisActivate   :: !(Maybe Bool)+  , _cisName       :: !(Maybe Text)+  , _cisDetectorId :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'CreateIPSet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cisLocation' - The URI of the file that contains the IPSet. For example (https://s3.us-west-2.amazonaws.com/my-bucket/my-object-key)+--+-- * 'cisFormat' - The format of the file that contains the IPSet.+--+-- * 'cisActivate' - A boolean value that indicates whether GuardDuty is to start using the uploaded IPSet.+--+-- * 'cisName' - The user friendly name to identify the IPSet. This name is displayed in all findings that are triggered by activity that involves IP addresses included in this IPSet.+--+-- * 'cisDetectorId' - The unique ID of the detector that you want to update.+createIPSet+    :: Text -- ^ 'cisDetectorId'+    -> CreateIPSet+createIPSet pDetectorId_ =+  CreateIPSet'+    { _cisLocation = Nothing+    , _cisFormat = Nothing+    , _cisActivate = Nothing+    , _cisName = Nothing+    , _cisDetectorId = pDetectorId_+    }+++-- | The URI of the file that contains the IPSet. For example (https://s3.us-west-2.amazonaws.com/my-bucket/my-object-key)+cisLocation :: Lens' CreateIPSet (Maybe Text)+cisLocation = lens _cisLocation (\ s a -> s{_cisLocation = a})++-- | The format of the file that contains the IPSet.+cisFormat :: Lens' CreateIPSet (Maybe IPSetFormat)+cisFormat = lens _cisFormat (\ s a -> s{_cisFormat = a})++-- | A boolean value that indicates whether GuardDuty is to start using the uploaded IPSet.+cisActivate :: Lens' CreateIPSet (Maybe Bool)+cisActivate = lens _cisActivate (\ s a -> s{_cisActivate = a})++-- | The user friendly name to identify the IPSet. This name is displayed in all findings that are triggered by activity that involves IP addresses included in this IPSet.+cisName :: Lens' CreateIPSet (Maybe Text)+cisName = lens _cisName (\ s a -> s{_cisName = a})++-- | The unique ID of the detector that you want to update.+cisDetectorId :: Lens' CreateIPSet Text+cisDetectorId = lens _cisDetectorId (\ s a -> s{_cisDetectorId = a})++instance AWSRequest CreateIPSet where+        type Rs CreateIPSet = CreateIPSetResponse+        request = postJSON guardDuty+        response+          = receiveJSON+              (\ s h x ->+                 CreateIPSetResponse' <$>+                   (x .?> "ipSetId") <*> (pure (fromEnum s)))++instance Hashable CreateIPSet where++instance NFData CreateIPSet where++instance ToHeaders CreateIPSet where+        toHeaders+          = const+              (mconcat+                 ["Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON CreateIPSet where+        toJSON CreateIPSet'{..}+          = object+              (catMaybes+                 [("location" .=) <$> _cisLocation,+                  ("format" .=) <$> _cisFormat,+                  ("activate" .=) <$> _cisActivate,+                  ("name" .=) <$> _cisName])++instance ToPath CreateIPSet where+        toPath CreateIPSet'{..}+          = mconcat+              ["/detector/", toBS _cisDetectorId, "/ipset"]++instance ToQuery CreateIPSet where+        toQuery = const mempty++-- | /See:/ 'createIPSetResponse' smart constructor.+data CreateIPSetResponse = CreateIPSetResponse'+  { _cisrsIPSetId        :: !(Maybe Text)+  , _cisrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'CreateIPSetResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cisrsIPSetId' - Undocumented member.+--+-- * 'cisrsResponseStatus' - -- | The response status code.+createIPSetResponse+    :: Int -- ^ 'cisrsResponseStatus'+    -> CreateIPSetResponse+createIPSetResponse pResponseStatus_ =+  CreateIPSetResponse'+    {_cisrsIPSetId = Nothing, _cisrsResponseStatus = pResponseStatus_}+++-- | Undocumented member.+cisrsIPSetId :: Lens' CreateIPSetResponse (Maybe Text)+cisrsIPSetId = lens _cisrsIPSetId (\ s a -> s{_cisrsIPSetId = a})++-- | -- | The response status code.+cisrsResponseStatus :: Lens' CreateIPSetResponse Int+cisrsResponseStatus = lens _cisrsResponseStatus (\ s a -> s{_cisrsResponseStatus = a})++instance NFData CreateIPSetResponse where
+ gen/Network/AWS/GuardDuty/CreateMembers.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.GuardDuty.CreateMembers+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates member accounts of the current AWS account by specifying a list of AWS account IDs. The current AWS account can then invite these members to manage GuardDuty in their accounts.+module Network.AWS.GuardDuty.CreateMembers+    (+    -- * Creating a Request+      createMembers+    , CreateMembers+    -- * Request Lenses+    , cmAccountDetails+    , cmDetectorId++    -- * Destructuring the Response+    , createMembersResponse+    , CreateMembersResponse+    -- * Response Lenses+    , cmrsUnprocessedAccounts+    , cmrsResponseStatus+    ) where++import Network.AWS.GuardDuty.Types+import Network.AWS.GuardDuty.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | CreateMembers request body.+--+-- /See:/ 'createMembers' smart constructor.+data CreateMembers = CreateMembers'+  { _cmAccountDetails :: !(Maybe [AccountDetail])+  , _cmDetectorId     :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'CreateMembers' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cmAccountDetails' - A list of account ID and email address pairs of the accounts that you want to associate with the master GuardDuty account.+--+-- * 'cmDetectorId' - The unique ID of the detector of the GuardDuty account with which you want to associate member accounts.+createMembers+    :: Text -- ^ 'cmDetectorId'+    -> CreateMembers+createMembers pDetectorId_ =+  CreateMembers' {_cmAccountDetails = Nothing, _cmDetectorId = pDetectorId_}+++-- | A list of account ID and email address pairs of the accounts that you want to associate with the master GuardDuty account.+cmAccountDetails :: Lens' CreateMembers [AccountDetail]+cmAccountDetails = lens _cmAccountDetails (\ s a -> s{_cmAccountDetails = a}) . _Default . _Coerce++-- | The unique ID of the detector of the GuardDuty account with which you want to associate member accounts.+cmDetectorId :: Lens' CreateMembers Text+cmDetectorId = lens _cmDetectorId (\ s a -> s{_cmDetectorId = a})++instance AWSRequest CreateMembers where+        type Rs CreateMembers = CreateMembersResponse+        request = postJSON guardDuty+        response+          = receiveJSON+              (\ s h x ->+                 CreateMembersResponse' <$>+                   (x .?> "unprocessedAccounts" .!@ mempty) <*>+                     (pure (fromEnum s)))++instance Hashable CreateMembers where++instance NFData CreateMembers where++instance ToHeaders CreateMembers where+        toHeaders+          = const+              (mconcat+                 ["Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON CreateMembers where+        toJSON CreateMembers'{..}+          = object+              (catMaybes+                 [("accountDetails" .=) <$> _cmAccountDetails])++instance ToPath CreateMembers where+        toPath CreateMembers'{..}+          = mconcat+              ["/detector/", toBS _cmDetectorId, "/member"]++instance ToQuery CreateMembers where+        toQuery = const mempty++-- | /See:/ 'createMembersResponse' smart constructor.+data CreateMembersResponse = CreateMembersResponse'+  { _cmrsUnprocessedAccounts :: !(Maybe [UnprocessedAccount])+  , _cmrsResponseStatus      :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'CreateMembersResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cmrsUnprocessedAccounts' - A list of objects containing the unprocessed account and a result string explaining why it was unprocessed.+--+-- * 'cmrsResponseStatus' - -- | The response status code.+createMembersResponse+    :: Int -- ^ 'cmrsResponseStatus'+    -> CreateMembersResponse+createMembersResponse pResponseStatus_ =+  CreateMembersResponse'+    {_cmrsUnprocessedAccounts = Nothing, _cmrsResponseStatus = pResponseStatus_}+++-- | A list of objects containing the unprocessed account and a result string explaining why it was unprocessed.+cmrsUnprocessedAccounts :: Lens' CreateMembersResponse [UnprocessedAccount]+cmrsUnprocessedAccounts = lens _cmrsUnprocessedAccounts (\ s a -> s{_cmrsUnprocessedAccounts = a}) . _Default . _Coerce++-- | -- | The response status code.+cmrsResponseStatus :: Lens' CreateMembersResponse Int+cmrsResponseStatus = lens _cmrsResponseStatus (\ s a -> s{_cmrsResponseStatus = a})++instance NFData CreateMembersResponse where
+ gen/Network/AWS/GuardDuty/CreateSampleFindings.hs view
@@ -0,0 +1,135 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.GuardDuty.CreateSampleFindings+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Generates example findings of types specified by the list of finding types. If 'NULL' is specified for findingTypes, the API generates example findings of all supported finding types.+module Network.AWS.GuardDuty.CreateSampleFindings+    (+    -- * Creating a Request+      createSampleFindings+    , CreateSampleFindings+    -- * Request Lenses+    , csfFindingTypes+    , csfDetectorId++    -- * Destructuring the Response+    , createSampleFindingsResponse+    , CreateSampleFindingsResponse+    -- * Response Lenses+    , csfrsResponseStatus+    ) where++import Network.AWS.GuardDuty.Types+import Network.AWS.GuardDuty.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | CreateSampleFindings request body.+--+-- /See:/ 'createSampleFindings' smart constructor.+data CreateSampleFindings = CreateSampleFindings'+  { _csfFindingTypes :: !(Maybe [Text])+  , _csfDetectorId   :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'CreateSampleFindings' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'csfFindingTypes' - Types of sample findings that you want to generate.+--+-- * 'csfDetectorId' - The ID of the detector to create sample findings for.+createSampleFindings+    :: Text -- ^ 'csfDetectorId'+    -> CreateSampleFindings+createSampleFindings pDetectorId_ =+  CreateSampleFindings'+    {_csfFindingTypes = Nothing, _csfDetectorId = pDetectorId_}+++-- | Types of sample findings that you want to generate.+csfFindingTypes :: Lens' CreateSampleFindings [Text]+csfFindingTypes = lens _csfFindingTypes (\ s a -> s{_csfFindingTypes = a}) . _Default . _Coerce++-- | The ID of the detector to create sample findings for.+csfDetectorId :: Lens' CreateSampleFindings Text+csfDetectorId = lens _csfDetectorId (\ s a -> s{_csfDetectorId = a})++instance AWSRequest CreateSampleFindings where+        type Rs CreateSampleFindings =+             CreateSampleFindingsResponse+        request = postJSON guardDuty+        response+          = receiveEmpty+              (\ s h x ->+                 CreateSampleFindingsResponse' <$>+                   (pure (fromEnum s)))++instance Hashable CreateSampleFindings where++instance NFData CreateSampleFindings where++instance ToHeaders CreateSampleFindings where+        toHeaders+          = const+              (mconcat+                 ["Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON CreateSampleFindings where+        toJSON CreateSampleFindings'{..}+          = object+              (catMaybes+                 [("findingTypes" .=) <$> _csfFindingTypes])++instance ToPath CreateSampleFindings where+        toPath CreateSampleFindings'{..}+          = mconcat+              ["/detector/", toBS _csfDetectorId,+               "/findings/create"]++instance ToQuery CreateSampleFindings where+        toQuery = const mempty++-- | /See:/ 'createSampleFindingsResponse' smart constructor.+newtype CreateSampleFindingsResponse = CreateSampleFindingsResponse'+  { _csfrsResponseStatus :: Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'CreateSampleFindingsResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'csfrsResponseStatus' - -- | The response status code.+createSampleFindingsResponse+    :: Int -- ^ 'csfrsResponseStatus'+    -> CreateSampleFindingsResponse+createSampleFindingsResponse pResponseStatus_ =+  CreateSampleFindingsResponse' {_csfrsResponseStatus = pResponseStatus_}+++-- | -- | The response status code.+csfrsResponseStatus :: Lens' CreateSampleFindingsResponse Int+csfrsResponseStatus = lens _csfrsResponseStatus (\ s a -> s{_csfrsResponseStatus = a})++instance NFData CreateSampleFindingsResponse where
+ gen/Network/AWS/GuardDuty/CreateThreatIntelSet.hs view
@@ -0,0 +1,178 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.GuardDuty.CreateThreatIntelSet+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Create a new ThreatIntelSet. ThreatIntelSets consist of known malicious IP addresses. GuardDuty generates findings based on ThreatIntelSets.+module Network.AWS.GuardDuty.CreateThreatIntelSet+    (+    -- * Creating a Request+      createThreatIntelSet+    , CreateThreatIntelSet+    -- * Request Lenses+    , ctisLocation+    , ctisFormat+    , ctisActivate+    , ctisName+    , ctisDetectorId++    -- * Destructuring the Response+    , createThreatIntelSetResponse+    , CreateThreatIntelSetResponse+    -- * Response Lenses+    , ctisrsThreatIntelSetId+    , ctisrsResponseStatus+    ) where++import Network.AWS.GuardDuty.Types+import Network.AWS.GuardDuty.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | CreateThreatIntelSet request body.+--+-- /See:/ 'createThreatIntelSet' smart constructor.+data CreateThreatIntelSet = CreateThreatIntelSet'+  { _ctisLocation   :: !(Maybe Text)+  , _ctisFormat     :: !(Maybe ThreatIntelSetFormat)+  , _ctisActivate   :: !(Maybe Bool)+  , _ctisName       :: !(Maybe Text)+  , _ctisDetectorId :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'CreateThreatIntelSet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ctisLocation' - The URI of the file that contains the ThreatIntelSet. For example (https://s3.us-west-2.amazonaws.com/my-bucket/my-object-key).+--+-- * 'ctisFormat' - The format of the file that contains the ThreatIntelSet.+--+-- * 'ctisActivate' - A boolean value that indicates whether GuardDuty is to start using the uploaded ThreatIntelSet.+--+-- * 'ctisName' - A user-friendly ThreatIntelSet name that is displayed in all finding generated by activity that involves IP addresses included in this ThreatIntelSet.+--+-- * 'ctisDetectorId' - The unique ID of the detector that you want to update.+createThreatIntelSet+    :: Text -- ^ 'ctisDetectorId'+    -> CreateThreatIntelSet+createThreatIntelSet pDetectorId_ =+  CreateThreatIntelSet'+    { _ctisLocation = Nothing+    , _ctisFormat = Nothing+    , _ctisActivate = Nothing+    , _ctisName = Nothing+    , _ctisDetectorId = pDetectorId_+    }+++-- | The URI of the file that contains the ThreatIntelSet. For example (https://s3.us-west-2.amazonaws.com/my-bucket/my-object-key).+ctisLocation :: Lens' CreateThreatIntelSet (Maybe Text)+ctisLocation = lens _ctisLocation (\ s a -> s{_ctisLocation = a})++-- | The format of the file that contains the ThreatIntelSet.+ctisFormat :: Lens' CreateThreatIntelSet (Maybe ThreatIntelSetFormat)+ctisFormat = lens _ctisFormat (\ s a -> s{_ctisFormat = a})++-- | A boolean value that indicates whether GuardDuty is to start using the uploaded ThreatIntelSet.+ctisActivate :: Lens' CreateThreatIntelSet (Maybe Bool)+ctisActivate = lens _ctisActivate (\ s a -> s{_ctisActivate = a})++-- | A user-friendly ThreatIntelSet name that is displayed in all finding generated by activity that involves IP addresses included in this ThreatIntelSet.+ctisName :: Lens' CreateThreatIntelSet (Maybe Text)+ctisName = lens _ctisName (\ s a -> s{_ctisName = a})++-- | The unique ID of the detector that you want to update.+ctisDetectorId :: Lens' CreateThreatIntelSet Text+ctisDetectorId = lens _ctisDetectorId (\ s a -> s{_ctisDetectorId = a})++instance AWSRequest CreateThreatIntelSet where+        type Rs CreateThreatIntelSet =+             CreateThreatIntelSetResponse+        request = postJSON guardDuty+        response+          = receiveJSON+              (\ s h x ->+                 CreateThreatIntelSetResponse' <$>+                   (x .?> "threatIntelSetId") <*> (pure (fromEnum s)))++instance Hashable CreateThreatIntelSet where++instance NFData CreateThreatIntelSet where++instance ToHeaders CreateThreatIntelSet where+        toHeaders+          = const+              (mconcat+                 ["Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON CreateThreatIntelSet where+        toJSON CreateThreatIntelSet'{..}+          = object+              (catMaybes+                 [("location" .=) <$> _ctisLocation,+                  ("format" .=) <$> _ctisFormat,+                  ("activate" .=) <$> _ctisActivate,+                  ("name" .=) <$> _ctisName])++instance ToPath CreateThreatIntelSet where+        toPath CreateThreatIntelSet'{..}+          = mconcat+              ["/detector/", toBS _ctisDetectorId,+               "/threatintelset"]++instance ToQuery CreateThreatIntelSet where+        toQuery = const mempty++-- | /See:/ 'createThreatIntelSetResponse' smart constructor.+data CreateThreatIntelSetResponse = CreateThreatIntelSetResponse'+  { _ctisrsThreatIntelSetId :: !(Maybe Text)+  , _ctisrsResponseStatus   :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'CreateThreatIntelSetResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ctisrsThreatIntelSetId' - Undocumented member.+--+-- * 'ctisrsResponseStatus' - -- | The response status code.+createThreatIntelSetResponse+    :: Int -- ^ 'ctisrsResponseStatus'+    -> CreateThreatIntelSetResponse+createThreatIntelSetResponse pResponseStatus_ =+  CreateThreatIntelSetResponse'+    { _ctisrsThreatIntelSetId = Nothing+    , _ctisrsResponseStatus = pResponseStatus_+    }+++-- | Undocumented member.+ctisrsThreatIntelSetId :: Lens' CreateThreatIntelSetResponse (Maybe Text)+ctisrsThreatIntelSetId = lens _ctisrsThreatIntelSetId (\ s a -> s{_ctisrsThreatIntelSetId = a})++-- | -- | The response status code.+ctisrsResponseStatus :: Lens' CreateThreatIntelSetResponse Int+ctisrsResponseStatus = lens _ctisrsResponseStatus (\ s a -> s{_ctisrsResponseStatus = a})++instance NFData CreateThreatIntelSetResponse where
+ gen/Network/AWS/GuardDuty/DeclineInvitations.hs view
@@ -0,0 +1,132 @@+{-# 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.GuardDuty.DeclineInvitations+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Declines invitations sent to the current member account by AWS account specified by their account IDs.+module Network.AWS.GuardDuty.DeclineInvitations+    (+    -- * Creating a Request+      declineInvitations+    , DeclineInvitations+    -- * Request Lenses+    , dAccountIds++    -- * Destructuring the Response+    , declineInvitationsResponse+    , DeclineInvitationsResponse+    -- * Response Lenses+    , disrsUnprocessedAccounts+    , disrsResponseStatus+    ) where++import Network.AWS.GuardDuty.Types+import Network.AWS.GuardDuty.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | DeclineInvitations request body.+--+-- /See:/ 'declineInvitations' smart constructor.+newtype DeclineInvitations = DeclineInvitations'+  { _dAccountIds :: Maybe [Text]+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DeclineInvitations' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dAccountIds' - A list of account IDs of the AWS accounts that sent invitations to the current member account that you want to decline invitations from.+declineInvitations+    :: DeclineInvitations+declineInvitations = DeclineInvitations' {_dAccountIds = Nothing}+++-- | A list of account IDs of the AWS accounts that sent invitations to the current member account that you want to decline invitations from.+dAccountIds :: Lens' DeclineInvitations [Text]+dAccountIds = lens _dAccountIds (\ s a -> s{_dAccountIds = a}) . _Default . _Coerce++instance AWSRequest DeclineInvitations where+        type Rs DeclineInvitations =+             DeclineInvitationsResponse+        request = postJSON guardDuty+        response+          = receiveJSON+              (\ s h x ->+                 DeclineInvitationsResponse' <$>+                   (x .?> "unprocessedAccounts" .!@ mempty) <*>+                     (pure (fromEnum s)))++instance Hashable DeclineInvitations where++instance NFData DeclineInvitations where++instance ToHeaders DeclineInvitations where+        toHeaders+          = const+              (mconcat+                 ["Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON DeclineInvitations where+        toJSON DeclineInvitations'{..}+          = object+              (catMaybes [("accountIds" .=) <$> _dAccountIds])++instance ToPath DeclineInvitations where+        toPath = const "/invitation/decline"++instance ToQuery DeclineInvitations where+        toQuery = const mempty++-- | /See:/ 'declineInvitationsResponse' smart constructor.+data DeclineInvitationsResponse = DeclineInvitationsResponse'+  { _disrsUnprocessedAccounts :: !(Maybe [UnprocessedAccount])+  , _disrsResponseStatus      :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DeclineInvitationsResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'disrsUnprocessedAccounts' - A list of objects containing the unprocessed account and a result string explaining why it was unprocessed.+--+-- * 'disrsResponseStatus' - -- | The response status code.+declineInvitationsResponse+    :: Int -- ^ 'disrsResponseStatus'+    -> DeclineInvitationsResponse+declineInvitationsResponse pResponseStatus_ =+  DeclineInvitationsResponse'+    { _disrsUnprocessedAccounts = Nothing+    , _disrsResponseStatus = pResponseStatus_+    }+++-- | A list of objects containing the unprocessed account and a result string explaining why it was unprocessed.+disrsUnprocessedAccounts :: Lens' DeclineInvitationsResponse [UnprocessedAccount]+disrsUnprocessedAccounts = lens _disrsUnprocessedAccounts (\ s a -> s{_disrsUnprocessedAccounts = a}) . _Default . _Coerce++-- | -- | The response status code.+disrsResponseStatus :: Lens' DeclineInvitationsResponse Int+disrsResponseStatus = lens _disrsResponseStatus (\ s a -> s{_disrsResponseStatus = a})++instance NFData DeclineInvitationsResponse where
+ gen/Network/AWS/GuardDuty/DeleteDetector.hs view
@@ -0,0 +1,113 @@+{-# 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.GuardDuty.DeleteDetector+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes a Amazon GuardDuty detector specified by the detector ID.+module Network.AWS.GuardDuty.DeleteDetector+    (+    -- * Creating a Request+      deleteDetector+    , DeleteDetector+    -- * Request Lenses+    , ddDetectorId++    -- * Destructuring the Response+    , deleteDetectorResponse+    , DeleteDetectorResponse+    -- * Response Lenses+    , ddrsResponseStatus+    ) where++import Network.AWS.GuardDuty.Types+import Network.AWS.GuardDuty.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | /See:/ 'deleteDetector' smart constructor.+newtype DeleteDetector = DeleteDetector'+  { _ddDetectorId :: Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DeleteDetector' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ddDetectorId' - The unique ID that specifies the detector that you want to delete.+deleteDetector+    :: Text -- ^ 'ddDetectorId'+    -> DeleteDetector+deleteDetector pDetectorId_ = DeleteDetector' {_ddDetectorId = pDetectorId_}+++-- | The unique ID that specifies the detector that you want to delete.+ddDetectorId :: Lens' DeleteDetector Text+ddDetectorId = lens _ddDetectorId (\ s a -> s{_ddDetectorId = a})++instance AWSRequest DeleteDetector where+        type Rs DeleteDetector = DeleteDetectorResponse+        request = delete guardDuty+        response+          = receiveEmpty+              (\ s h x ->+                 DeleteDetectorResponse' <$> (pure (fromEnum s)))++instance Hashable DeleteDetector where++instance NFData DeleteDetector where++instance ToHeaders DeleteDetector where+        toHeaders+          = const+              (mconcat+                 ["Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToPath DeleteDetector where+        toPath DeleteDetector'{..}+          = mconcat ["/detector/", toBS _ddDetectorId]++instance ToQuery DeleteDetector where+        toQuery = const mempty++-- | /See:/ 'deleteDetectorResponse' smart constructor.+newtype DeleteDetectorResponse = DeleteDetectorResponse'+  { _ddrsResponseStatus :: Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DeleteDetectorResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ddrsResponseStatus' - -- | The response status code.+deleteDetectorResponse+    :: Int -- ^ 'ddrsResponseStatus'+    -> DeleteDetectorResponse+deleteDetectorResponse pResponseStatus_ =+  DeleteDetectorResponse' {_ddrsResponseStatus = pResponseStatus_}+++-- | -- | The response status code.+ddrsResponseStatus :: Lens' DeleteDetectorResponse Int+ddrsResponseStatus = lens _ddrsResponseStatus (\ s a -> s{_ddrsResponseStatus = a})++instance NFData DeleteDetectorResponse where
+ gen/Network/AWS/GuardDuty/DeleteFilter.hs view
@@ -0,0 +1,125 @@+{-# 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.GuardDuty.DeleteFilter+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes the filter specified by the filter name.+module Network.AWS.GuardDuty.DeleteFilter+    (+    -- * Creating a Request+      deleteFilter+    , DeleteFilter+    -- * Request Lenses+    , dfDetectorId+    , dfFilterName++    -- * Destructuring the Response+    , deleteFilterResponse+    , DeleteFilterResponse+    -- * Response Lenses+    , dfrsResponseStatus+    ) where++import Network.AWS.GuardDuty.Types+import Network.AWS.GuardDuty.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | /See:/ 'deleteFilter' smart constructor.+data DeleteFilter = DeleteFilter'+  { _dfDetectorId :: !Text+  , _dfFilterName :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DeleteFilter' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dfDetectorId' - The unique ID that specifies the detector where you want to delete a filter.+--+-- * 'dfFilterName' - The name of the filter.+deleteFilter+    :: Text -- ^ 'dfDetectorId'+    -> Text -- ^ 'dfFilterName'+    -> DeleteFilter+deleteFilter pDetectorId_ pFilterName_ =+  DeleteFilter' {_dfDetectorId = pDetectorId_, _dfFilterName = pFilterName_}+++-- | The unique ID that specifies the detector where you want to delete a filter.+dfDetectorId :: Lens' DeleteFilter Text+dfDetectorId = lens _dfDetectorId (\ s a -> s{_dfDetectorId = a})++-- | The name of the filter.+dfFilterName :: Lens' DeleteFilter Text+dfFilterName = lens _dfFilterName (\ s a -> s{_dfFilterName = a})++instance AWSRequest DeleteFilter where+        type Rs DeleteFilter = DeleteFilterResponse+        request = delete guardDuty+        response+          = receiveEmpty+              (\ s h x ->+                 DeleteFilterResponse' <$> (pure (fromEnum s)))++instance Hashable DeleteFilter where++instance NFData DeleteFilter where++instance ToHeaders DeleteFilter where+        toHeaders+          = const+              (mconcat+                 ["Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToPath DeleteFilter where+        toPath DeleteFilter'{..}+          = mconcat+              ["/detector/", toBS _dfDetectorId, "/filter/",+               toBS _dfFilterName]++instance ToQuery DeleteFilter where+        toQuery = const mempty++-- | /See:/ 'deleteFilterResponse' smart constructor.+newtype DeleteFilterResponse = DeleteFilterResponse'+  { _dfrsResponseStatus :: Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DeleteFilterResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dfrsResponseStatus' - -- | The response status code.+deleteFilterResponse+    :: Int -- ^ 'dfrsResponseStatus'+    -> DeleteFilterResponse+deleteFilterResponse pResponseStatus_ =+  DeleteFilterResponse' {_dfrsResponseStatus = pResponseStatus_}+++-- | -- | The response status code.+dfrsResponseStatus :: Lens' DeleteFilterResponse Int+dfrsResponseStatus = lens _dfrsResponseStatus (\ s a -> s{_dfrsResponseStatus = a})++instance NFData DeleteFilterResponse where
+ gen/Network/AWS/GuardDuty/DeleteIPSet.hs view
@@ -0,0 +1,125 @@+{-# 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.GuardDuty.DeleteIPSet+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes the IPSet specified by the IPSet ID.+module Network.AWS.GuardDuty.DeleteIPSet+    (+    -- * Creating a Request+      deleteIPSet+    , DeleteIPSet+    -- * Request Lenses+    , disDetectorId+    , disIPSetId++    -- * Destructuring the Response+    , deleteIPSetResponse+    , DeleteIPSetResponse+    -- * Response Lenses+    , dipsrsResponseStatus+    ) where++import Network.AWS.GuardDuty.Types+import Network.AWS.GuardDuty.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | /See:/ 'deleteIPSet' smart constructor.+data DeleteIPSet = DeleteIPSet'+  { _disDetectorId :: !Text+  , _disIPSetId    :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DeleteIPSet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'disDetectorId' - The detectorID that specifies the GuardDuty service whose IPSet you want to delete.+--+-- * 'disIPSetId' - The unique ID that specifies the IPSet that you want to delete.+deleteIPSet+    :: Text -- ^ 'disDetectorId'+    -> Text -- ^ 'disIPSetId'+    -> DeleteIPSet+deleteIPSet pDetectorId_ pIPSetId_ =+  DeleteIPSet' {_disDetectorId = pDetectorId_, _disIPSetId = pIPSetId_}+++-- | The detectorID that specifies the GuardDuty service whose IPSet you want to delete.+disDetectorId :: Lens' DeleteIPSet Text+disDetectorId = lens _disDetectorId (\ s a -> s{_disDetectorId = a})++-- | The unique ID that specifies the IPSet that you want to delete.+disIPSetId :: Lens' DeleteIPSet Text+disIPSetId = lens _disIPSetId (\ s a -> s{_disIPSetId = a})++instance AWSRequest DeleteIPSet where+        type Rs DeleteIPSet = DeleteIPSetResponse+        request = delete guardDuty+        response+          = receiveEmpty+              (\ s h x ->+                 DeleteIPSetResponse' <$> (pure (fromEnum s)))++instance Hashable DeleteIPSet where++instance NFData DeleteIPSet where++instance ToHeaders DeleteIPSet where+        toHeaders+          = const+              (mconcat+                 ["Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToPath DeleteIPSet where+        toPath DeleteIPSet'{..}+          = mconcat+              ["/detector/", toBS _disDetectorId, "/ipset/",+               toBS _disIPSetId]++instance ToQuery DeleteIPSet where+        toQuery = const mempty++-- | /See:/ 'deleteIPSetResponse' smart constructor.+newtype DeleteIPSetResponse = DeleteIPSetResponse'+  { _dipsrsResponseStatus :: Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DeleteIPSetResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dipsrsResponseStatus' - -- | The response status code.+deleteIPSetResponse+    :: Int -- ^ 'dipsrsResponseStatus'+    -> DeleteIPSetResponse+deleteIPSetResponse pResponseStatus_ =+  DeleteIPSetResponse' {_dipsrsResponseStatus = pResponseStatus_}+++-- | -- | The response status code.+dipsrsResponseStatus :: Lens' DeleteIPSetResponse Int+dipsrsResponseStatus = lens _dipsrsResponseStatus (\ s a -> s{_dipsrsResponseStatus = a})++instance NFData DeleteIPSetResponse where
+ gen/Network/AWS/GuardDuty/DeleteInvitations.hs view
@@ -0,0 +1,129 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.GuardDuty.DeleteInvitations+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes invitations sent to the current member account by AWS accounts specified by their account IDs.+module Network.AWS.GuardDuty.DeleteInvitations+    (+    -- * Creating a Request+      deleteInvitations+    , DeleteInvitations+    -- * Request Lenses+    , diAccountIds++    -- * Destructuring the Response+    , deleteInvitationsResponse+    , DeleteInvitationsResponse+    -- * Response Lenses+    , dirsUnprocessedAccounts+    , dirsResponseStatus+    ) where++import Network.AWS.GuardDuty.Types+import Network.AWS.GuardDuty.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | DeleteInvitations request body.+--+-- /See:/ 'deleteInvitations' smart constructor.+newtype DeleteInvitations = DeleteInvitations'+  { _diAccountIds :: Maybe [Text]+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DeleteInvitations' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'diAccountIds' - A list of account IDs of the AWS accounts that sent invitations to the current member account that you want to delete invitations from.+deleteInvitations+    :: DeleteInvitations+deleteInvitations = DeleteInvitations' {_diAccountIds = Nothing}+++-- | A list of account IDs of the AWS accounts that sent invitations to the current member account that you want to delete invitations from.+diAccountIds :: Lens' DeleteInvitations [Text]+diAccountIds = lens _diAccountIds (\ s a -> s{_diAccountIds = a}) . _Default . _Coerce++instance AWSRequest DeleteInvitations where+        type Rs DeleteInvitations = DeleteInvitationsResponse+        request = postJSON guardDuty+        response+          = receiveJSON+              (\ s h x ->+                 DeleteInvitationsResponse' <$>+                   (x .?> "unprocessedAccounts" .!@ mempty) <*>+                     (pure (fromEnum s)))++instance Hashable DeleteInvitations where++instance NFData DeleteInvitations where++instance ToHeaders DeleteInvitations where+        toHeaders+          = const+              (mconcat+                 ["Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON DeleteInvitations where+        toJSON DeleteInvitations'{..}+          = object+              (catMaybes [("accountIds" .=) <$> _diAccountIds])++instance ToPath DeleteInvitations where+        toPath = const "/invitation/delete"++instance ToQuery DeleteInvitations where+        toQuery = const mempty++-- | /See:/ 'deleteInvitationsResponse' smart constructor.+data DeleteInvitationsResponse = DeleteInvitationsResponse'+  { _dirsUnprocessedAccounts :: !(Maybe [UnprocessedAccount])+  , _dirsResponseStatus      :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DeleteInvitationsResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dirsUnprocessedAccounts' - A list of objects containing the unprocessed account and a result string explaining why it was unprocessed.+--+-- * 'dirsResponseStatus' - -- | The response status code.+deleteInvitationsResponse+    :: Int -- ^ 'dirsResponseStatus'+    -> DeleteInvitationsResponse+deleteInvitationsResponse pResponseStatus_ =+  DeleteInvitationsResponse'+    {_dirsUnprocessedAccounts = Nothing, _dirsResponseStatus = pResponseStatus_}+++-- | A list of objects containing the unprocessed account and a result string explaining why it was unprocessed.+dirsUnprocessedAccounts :: Lens' DeleteInvitationsResponse [UnprocessedAccount]+dirsUnprocessedAccounts = lens _dirsUnprocessedAccounts (\ s a -> s{_dirsUnprocessedAccounts = a}) . _Default . _Coerce++-- | -- | The response status code.+dirsResponseStatus :: Lens' DeleteInvitationsResponse Int+dirsResponseStatus = lens _dirsResponseStatus (\ s a -> s{_dirsResponseStatus = a})++instance NFData DeleteInvitationsResponse where
+ gen/Network/AWS/GuardDuty/DeleteMembers.hs view
@@ -0,0 +1,141 @@+{-# 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.GuardDuty.DeleteMembers+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes GuardDuty member accounts (to the current GuardDuty master account) specified by the account IDs.+module Network.AWS.GuardDuty.DeleteMembers+    (+    -- * Creating a Request+      deleteMembers+    , DeleteMembers+    -- * Request Lenses+    , dmAccountIds+    , dmDetectorId++    -- * Destructuring the Response+    , deleteMembersResponse+    , DeleteMembersResponse+    -- * Response Lenses+    , drsUnprocessedAccounts+    , drsResponseStatus+    ) where++import Network.AWS.GuardDuty.Types+import Network.AWS.GuardDuty.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | DeleteMembers request body.+--+-- /See:/ 'deleteMembers' smart constructor.+data DeleteMembers = DeleteMembers'+  { _dmAccountIds :: !(Maybe [Text])+  , _dmDetectorId :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DeleteMembers' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dmAccountIds' - A list of account IDs of the GuardDuty member accounts that you want to delete.+--+-- * 'dmDetectorId' - The unique ID of the detector of the GuardDuty account whose members you want to delete.+deleteMembers+    :: Text -- ^ 'dmDetectorId'+    -> DeleteMembers+deleteMembers pDetectorId_ =+  DeleteMembers' {_dmAccountIds = Nothing, _dmDetectorId = pDetectorId_}+++-- | A list of account IDs of the GuardDuty member accounts that you want to delete.+dmAccountIds :: Lens' DeleteMembers [Text]+dmAccountIds = lens _dmAccountIds (\ s a -> s{_dmAccountIds = a}) . _Default . _Coerce++-- | The unique ID of the detector of the GuardDuty account whose members you want to delete.+dmDetectorId :: Lens' DeleteMembers Text+dmDetectorId = lens _dmDetectorId (\ s a -> s{_dmDetectorId = a})++instance AWSRequest DeleteMembers where+        type Rs DeleteMembers = DeleteMembersResponse+        request = postJSON guardDuty+        response+          = receiveJSON+              (\ s h x ->+                 DeleteMembersResponse' <$>+                   (x .?> "unprocessedAccounts" .!@ mempty) <*>+                     (pure (fromEnum s)))++instance Hashable DeleteMembers where++instance NFData DeleteMembers where++instance ToHeaders DeleteMembers where+        toHeaders+          = const+              (mconcat+                 ["Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON DeleteMembers where+        toJSON DeleteMembers'{..}+          = object+              (catMaybes [("accountIds" .=) <$> _dmAccountIds])++instance ToPath DeleteMembers where+        toPath DeleteMembers'{..}+          = mconcat+              ["/detector/", toBS _dmDetectorId, "/member/delete"]++instance ToQuery DeleteMembers where+        toQuery = const mempty++-- | /See:/ 'deleteMembersResponse' smart constructor.+data DeleteMembersResponse = DeleteMembersResponse'+  { _drsUnprocessedAccounts :: !(Maybe [UnprocessedAccount])+  , _drsResponseStatus      :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DeleteMembersResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'drsUnprocessedAccounts' - A list of objects containing the unprocessed account and a result string explaining why it was unprocessed.+--+-- * 'drsResponseStatus' - -- | The response status code.+deleteMembersResponse+    :: Int -- ^ 'drsResponseStatus'+    -> DeleteMembersResponse+deleteMembersResponse pResponseStatus_ =+  DeleteMembersResponse'+    {_drsUnprocessedAccounts = Nothing, _drsResponseStatus = pResponseStatus_}+++-- | A list of objects containing the unprocessed account and a result string explaining why it was unprocessed.+drsUnprocessedAccounts :: Lens' DeleteMembersResponse [UnprocessedAccount]+drsUnprocessedAccounts = lens _drsUnprocessedAccounts (\ s a -> s{_drsUnprocessedAccounts = a}) . _Default . _Coerce++-- | -- | The response status code.+drsResponseStatus :: Lens' DeleteMembersResponse Int+drsResponseStatus = lens _drsResponseStatus (\ s a -> s{_drsResponseStatus = a})++instance NFData DeleteMembersResponse where
+ gen/Network/AWS/GuardDuty/DeleteThreatIntelSet.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.GuardDuty.DeleteThreatIntelSet+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes ThreatIntelSet specified by the ThreatIntelSet ID.+module Network.AWS.GuardDuty.DeleteThreatIntelSet+    (+    -- * Creating a Request+      deleteThreatIntelSet+    , DeleteThreatIntelSet+    -- * Request Lenses+    , dtisThreatIntelSetId+    , dtisDetectorId++    -- * Destructuring the Response+    , deleteThreatIntelSetResponse+    , DeleteThreatIntelSetResponse+    -- * Response Lenses+    , dtisrsResponseStatus+    ) where++import Network.AWS.GuardDuty.Types+import Network.AWS.GuardDuty.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | /See:/ 'deleteThreatIntelSet' smart constructor.+data DeleteThreatIntelSet = DeleteThreatIntelSet'+  { _dtisThreatIntelSetId :: !Text+  , _dtisDetectorId       :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DeleteThreatIntelSet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dtisThreatIntelSetId' - The unique ID that specifies the ThreatIntelSet that you want to delete.+--+-- * 'dtisDetectorId' - The detectorID that specifies the GuardDuty service whose ThreatIntelSet you want to delete.+deleteThreatIntelSet+    :: Text -- ^ 'dtisThreatIntelSetId'+    -> Text -- ^ 'dtisDetectorId'+    -> DeleteThreatIntelSet+deleteThreatIntelSet pThreatIntelSetId_ pDetectorId_ =+  DeleteThreatIntelSet'+    {_dtisThreatIntelSetId = pThreatIntelSetId_, _dtisDetectorId = pDetectorId_}+++-- | The unique ID that specifies the ThreatIntelSet that you want to delete.+dtisThreatIntelSetId :: Lens' DeleteThreatIntelSet Text+dtisThreatIntelSetId = lens _dtisThreatIntelSetId (\ s a -> s{_dtisThreatIntelSetId = a})++-- | The detectorID that specifies the GuardDuty service whose ThreatIntelSet you want to delete.+dtisDetectorId :: Lens' DeleteThreatIntelSet Text+dtisDetectorId = lens _dtisDetectorId (\ s a -> s{_dtisDetectorId = a})++instance AWSRequest DeleteThreatIntelSet where+        type Rs DeleteThreatIntelSet =+             DeleteThreatIntelSetResponse+        request = delete guardDuty+        response+          = receiveEmpty+              (\ s h x ->+                 DeleteThreatIntelSetResponse' <$>+                   (pure (fromEnum s)))++instance Hashable DeleteThreatIntelSet where++instance NFData DeleteThreatIntelSet where++instance ToHeaders DeleteThreatIntelSet where+        toHeaders+          = const+              (mconcat+                 ["Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToPath DeleteThreatIntelSet where+        toPath DeleteThreatIntelSet'{..}+          = mconcat+              ["/detector/", toBS _dtisDetectorId,+               "/threatintelset/", toBS _dtisThreatIntelSetId]++instance ToQuery DeleteThreatIntelSet where+        toQuery = const mempty++-- | /See:/ 'deleteThreatIntelSetResponse' smart constructor.+newtype DeleteThreatIntelSetResponse = DeleteThreatIntelSetResponse'+  { _dtisrsResponseStatus :: Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DeleteThreatIntelSetResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dtisrsResponseStatus' - -- | The response status code.+deleteThreatIntelSetResponse+    :: Int -- ^ 'dtisrsResponseStatus'+    -> DeleteThreatIntelSetResponse+deleteThreatIntelSetResponse pResponseStatus_ =+  DeleteThreatIntelSetResponse' {_dtisrsResponseStatus = pResponseStatus_}+++-- | -- | The response status code.+dtisrsResponseStatus :: Lens' DeleteThreatIntelSetResponse Int+dtisrsResponseStatus = lens _dtisrsResponseStatus (\ s a -> s{_dtisrsResponseStatus = a})++instance NFData DeleteThreatIntelSetResponse where
+ gen/Network/AWS/GuardDuty/DisassociateFromMasterAccount.hs view
@@ -0,0 +1,125 @@+{-# 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.GuardDuty.DisassociateFromMasterAccount+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Disassociates the current GuardDuty member account from its master account.+module Network.AWS.GuardDuty.DisassociateFromMasterAccount+    (+    -- * Creating a Request+      disassociateFromMasterAccount+    , DisassociateFromMasterAccount+    -- * Request Lenses+    , dfmaDetectorId++    -- * Destructuring the Response+    , disassociateFromMasterAccountResponse+    , DisassociateFromMasterAccountResponse+    -- * Response Lenses+    , dfmarsResponseStatus+    ) where++import Network.AWS.GuardDuty.Types+import Network.AWS.GuardDuty.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | /See:/ 'disassociateFromMasterAccount' smart constructor.+newtype DisassociateFromMasterAccount = DisassociateFromMasterAccount'+  { _dfmaDetectorId :: Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DisassociateFromMasterAccount' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dfmaDetectorId' - The unique ID of the detector of the GuardDuty member account.+disassociateFromMasterAccount+    :: Text -- ^ 'dfmaDetectorId'+    -> DisassociateFromMasterAccount+disassociateFromMasterAccount pDetectorId_ =+  DisassociateFromMasterAccount' {_dfmaDetectorId = pDetectorId_}+++-- | The unique ID of the detector of the GuardDuty member account.+dfmaDetectorId :: Lens' DisassociateFromMasterAccount Text+dfmaDetectorId = lens _dfmaDetectorId (\ s a -> s{_dfmaDetectorId = a})++instance AWSRequest DisassociateFromMasterAccount+         where+        type Rs DisassociateFromMasterAccount =+             DisassociateFromMasterAccountResponse+        request = postJSON guardDuty+        response+          = receiveEmpty+              (\ s h x ->+                 DisassociateFromMasterAccountResponse' <$>+                   (pure (fromEnum s)))++instance Hashable DisassociateFromMasterAccount where++instance NFData DisassociateFromMasterAccount where++instance ToHeaders DisassociateFromMasterAccount+         where+        toHeaders+          = const+              (mconcat+                 ["Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON DisassociateFromMasterAccount where+        toJSON = const (Object mempty)++instance ToPath DisassociateFromMasterAccount where+        toPath DisassociateFromMasterAccount'{..}+          = mconcat+              ["/detector/", toBS _dfmaDetectorId,+               "/master/disassociate"]++instance ToQuery DisassociateFromMasterAccount where+        toQuery = const mempty++-- | /See:/ 'disassociateFromMasterAccountResponse' smart constructor.+newtype DisassociateFromMasterAccountResponse = DisassociateFromMasterAccountResponse'+  { _dfmarsResponseStatus :: Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DisassociateFromMasterAccountResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dfmarsResponseStatus' - -- | The response status code.+disassociateFromMasterAccountResponse+    :: Int -- ^ 'dfmarsResponseStatus'+    -> DisassociateFromMasterAccountResponse+disassociateFromMasterAccountResponse pResponseStatus_ =+  DisassociateFromMasterAccountResponse'+    {_dfmarsResponseStatus = pResponseStatus_}+++-- | -- | The response status code.+dfmarsResponseStatus :: Lens' DisassociateFromMasterAccountResponse Int+dfmarsResponseStatus = lens _dfmarsResponseStatus (\ s a -> s{_dfmarsResponseStatus = a})++instance NFData DisassociateFromMasterAccountResponse+         where
+ gen/Network/AWS/GuardDuty/DisassociateMembers.hs view
@@ -0,0 +1,143 @@+{-# 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.GuardDuty.DisassociateMembers+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Disassociates GuardDuty member accounts (to the current GuardDuty master account) specified by the account IDs.+module Network.AWS.GuardDuty.DisassociateMembers+    (+    -- * Creating a Request+      disassociateMembers+    , DisassociateMembers+    -- * Request Lenses+    , dmsAccountIds+    , dmsDetectorId++    -- * Destructuring the Response+    , disassociateMembersResponse+    , DisassociateMembersResponse+    -- * Response Lenses+    , dmrsUnprocessedAccounts+    , dmrsResponseStatus+    ) where++import Network.AWS.GuardDuty.Types+import Network.AWS.GuardDuty.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | DisassociateMembers request body.+--+-- /See:/ 'disassociateMembers' smart constructor.+data DisassociateMembers = DisassociateMembers'+  { _dmsAccountIds :: !(Maybe [Text])+  , _dmsDetectorId :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DisassociateMembers' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dmsAccountIds' - A list of account IDs of the GuardDuty member accounts that you want to disassociate from master.+--+-- * 'dmsDetectorId' - The unique ID of the detector of the GuardDuty account whose members you want to disassociate from master.+disassociateMembers+    :: Text -- ^ 'dmsDetectorId'+    -> DisassociateMembers+disassociateMembers pDetectorId_ =+  DisassociateMembers' {_dmsAccountIds = Nothing, _dmsDetectorId = pDetectorId_}+++-- | A list of account IDs of the GuardDuty member accounts that you want to disassociate from master.+dmsAccountIds :: Lens' DisassociateMembers [Text]+dmsAccountIds = lens _dmsAccountIds (\ s a -> s{_dmsAccountIds = a}) . _Default . _Coerce++-- | The unique ID of the detector of the GuardDuty account whose members you want to disassociate from master.+dmsDetectorId :: Lens' DisassociateMembers Text+dmsDetectorId = lens _dmsDetectorId (\ s a -> s{_dmsDetectorId = a})++instance AWSRequest DisassociateMembers where+        type Rs DisassociateMembers =+             DisassociateMembersResponse+        request = postJSON guardDuty+        response+          = receiveJSON+              (\ s h x ->+                 DisassociateMembersResponse' <$>+                   (x .?> "unprocessedAccounts" .!@ mempty) <*>+                     (pure (fromEnum s)))++instance Hashable DisassociateMembers where++instance NFData DisassociateMembers where++instance ToHeaders DisassociateMembers where+        toHeaders+          = const+              (mconcat+                 ["Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON DisassociateMembers where+        toJSON DisassociateMembers'{..}+          = object+              (catMaybes [("accountIds" .=) <$> _dmsAccountIds])++instance ToPath DisassociateMembers where+        toPath DisassociateMembers'{..}+          = mconcat+              ["/detector/", toBS _dmsDetectorId,+               "/member/disassociate"]++instance ToQuery DisassociateMembers where+        toQuery = const mempty++-- | /See:/ 'disassociateMembersResponse' smart constructor.+data DisassociateMembersResponse = DisassociateMembersResponse'+  { _dmrsUnprocessedAccounts :: !(Maybe [UnprocessedAccount])+  , _dmrsResponseStatus      :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DisassociateMembersResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dmrsUnprocessedAccounts' - A list of objects containing the unprocessed account and a result string explaining why it was unprocessed.+--+-- * 'dmrsResponseStatus' - -- | The response status code.+disassociateMembersResponse+    :: Int -- ^ 'dmrsResponseStatus'+    -> DisassociateMembersResponse+disassociateMembersResponse pResponseStatus_ =+  DisassociateMembersResponse'+    {_dmrsUnprocessedAccounts = Nothing, _dmrsResponseStatus = pResponseStatus_}+++-- | A list of objects containing the unprocessed account and a result string explaining why it was unprocessed.+dmrsUnprocessedAccounts :: Lens' DisassociateMembersResponse [UnprocessedAccount]+dmrsUnprocessedAccounts = lens _dmrsUnprocessedAccounts (\ s a -> s{_dmrsUnprocessedAccounts = a}) . _Default . _Coerce++-- | -- | The response status code.+dmrsResponseStatus :: Lens' DisassociateMembersResponse Int+dmrsResponseStatus = lens _dmrsResponseStatus (\ s a -> s{_dmrsResponseStatus = a})++instance NFData DisassociateMembersResponse where
+ gen/Network/AWS/GuardDuty/GetDetector.hs view
@@ -0,0 +1,155 @@+{-# 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.GuardDuty.GetDetector+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves an Amazon GuardDuty detector specified by the detectorId.+module Network.AWS.GuardDuty.GetDetector+    (+    -- * Creating a Request+      getDetector+    , GetDetector+    -- * Request Lenses+    , gdDetectorId++    -- * Destructuring the Response+    , getDetectorResponse+    , GetDetectorResponse+    -- * Response Lenses+    , gdrsStatus+    , gdrsCreatedAt+    , gdrsUpdatedAt+    , gdrsServiceRole+    , gdrsResponseStatus+    ) where++import Network.AWS.GuardDuty.Types+import Network.AWS.GuardDuty.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | /See:/ 'getDetector' smart constructor.+newtype GetDetector = GetDetector'+  { _gdDetectorId :: Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'GetDetector' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gdDetectorId' - The unique ID of the detector that you want to retrieve.+getDetector+    :: Text -- ^ 'gdDetectorId'+    -> GetDetector+getDetector pDetectorId_ = GetDetector' {_gdDetectorId = pDetectorId_}+++-- | The unique ID of the detector that you want to retrieve.+gdDetectorId :: Lens' GetDetector Text+gdDetectorId = lens _gdDetectorId (\ s a -> s{_gdDetectorId = a})++instance AWSRequest GetDetector where+        type Rs GetDetector = GetDetectorResponse+        request = get guardDuty+        response+          = receiveJSON+              (\ s h x ->+                 GetDetectorResponse' <$>+                   (x .?> "status") <*> (x .?> "createdAt") <*>+                     (x .?> "updatedAt")+                     <*> (x .?> "serviceRole")+                     <*> (pure (fromEnum s)))++instance Hashable GetDetector where++instance NFData GetDetector where++instance ToHeaders GetDetector where+        toHeaders+          = const+              (mconcat+                 ["Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToPath GetDetector where+        toPath GetDetector'{..}+          = mconcat ["/detector/", toBS _gdDetectorId]++instance ToQuery GetDetector where+        toQuery = const mempty++-- | /See:/ 'getDetectorResponse' smart constructor.+data GetDetectorResponse = GetDetectorResponse'+  { _gdrsStatus         :: !(Maybe DetectorStatus)+  , _gdrsCreatedAt      :: !(Maybe Text)+  , _gdrsUpdatedAt      :: !(Maybe Text)+  , _gdrsServiceRole    :: !(Maybe Text)+  , _gdrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'GetDetectorResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gdrsStatus' - Undocumented member.+--+-- * 'gdrsCreatedAt' - Undocumented member.+--+-- * 'gdrsUpdatedAt' - Undocumented member.+--+-- * 'gdrsServiceRole' - Undocumented member.+--+-- * 'gdrsResponseStatus' - -- | The response status code.+getDetectorResponse+    :: Int -- ^ 'gdrsResponseStatus'+    -> GetDetectorResponse+getDetectorResponse pResponseStatus_ =+  GetDetectorResponse'+    { _gdrsStatus = Nothing+    , _gdrsCreatedAt = Nothing+    , _gdrsUpdatedAt = Nothing+    , _gdrsServiceRole = Nothing+    , _gdrsResponseStatus = pResponseStatus_+    }+++-- | Undocumented member.+gdrsStatus :: Lens' GetDetectorResponse (Maybe DetectorStatus)+gdrsStatus = lens _gdrsStatus (\ s a -> s{_gdrsStatus = a})++-- | Undocumented member.+gdrsCreatedAt :: Lens' GetDetectorResponse (Maybe Text)+gdrsCreatedAt = lens _gdrsCreatedAt (\ s a -> s{_gdrsCreatedAt = a})++-- | Undocumented member.+gdrsUpdatedAt :: Lens' GetDetectorResponse (Maybe Text)+gdrsUpdatedAt = lens _gdrsUpdatedAt (\ s a -> s{_gdrsUpdatedAt = a})++-- | Undocumented member.+gdrsServiceRole :: Lens' GetDetectorResponse (Maybe Text)+gdrsServiceRole = lens _gdrsServiceRole (\ s a -> s{_gdrsServiceRole = a})++-- | -- | The response status code.+gdrsResponseStatus :: Lens' GetDetectorResponse Int+gdrsResponseStatus = lens _gdrsResponseStatus (\ s a -> s{_gdrsResponseStatus = a})++instance NFData GetDetectorResponse where
+ gen/Network/AWS/GuardDuty/GetFilter.hs view
@@ -0,0 +1,177 @@+{-# 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.GuardDuty.GetFilter+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns the details of the filter specified by the filter name.+module Network.AWS.GuardDuty.GetFilter+    (+    -- * Creating a Request+      getFilter+    , GetFilter+    -- * Request Lenses+    , gDetectorId+    , gFilterName++    -- * Destructuring the Response+    , getFilterResponse+    , GetFilterResponse+    -- * Response Lenses+    , gfrsFindingCriteria+    , gfrsAction+    , gfrsName+    , gfrsDescription+    , gfrsRank+    , gfrsResponseStatus+    ) where++import Network.AWS.GuardDuty.Types+import Network.AWS.GuardDuty.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | /See:/ 'getFilter' smart constructor.+data GetFilter = GetFilter'+  { _gDetectorId :: !Text+  , _gFilterName :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'GetFilter' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gDetectorId' - The detector ID that specifies the GuardDuty service where you want to list the details of the specified filter.+--+-- * 'gFilterName' - The name of the filter whose details you want to get.+getFilter+    :: Text -- ^ 'gDetectorId'+    -> Text -- ^ 'gFilterName'+    -> GetFilter+getFilter pDetectorId_ pFilterName_ =+  GetFilter' {_gDetectorId = pDetectorId_, _gFilterName = pFilterName_}+++-- | The detector ID that specifies the GuardDuty service where you want to list the details of the specified filter.+gDetectorId :: Lens' GetFilter Text+gDetectorId = lens _gDetectorId (\ s a -> s{_gDetectorId = a})++-- | The name of the filter whose details you want to get.+gFilterName :: Lens' GetFilter Text+gFilterName = lens _gFilterName (\ s a -> s{_gFilterName = a})++instance AWSRequest GetFilter where+        type Rs GetFilter = GetFilterResponse+        request = get guardDuty+        response+          = receiveJSON+              (\ s h x ->+                 GetFilterResponse' <$>+                   (x .?> "findingCriteria") <*> (x .?> "action") <*>+                     (x .?> "name")+                     <*> (x .?> "description")+                     <*> (x .?> "rank")+                     <*> (pure (fromEnum s)))++instance Hashable GetFilter where++instance NFData GetFilter where++instance ToHeaders GetFilter where+        toHeaders+          = const+              (mconcat+                 ["Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToPath GetFilter where+        toPath GetFilter'{..}+          = mconcat+              ["/detector/", toBS _gDetectorId, "/filter/",+               toBS _gFilterName]++instance ToQuery GetFilter where+        toQuery = const mempty++-- | /See:/ 'getFilterResponse' smart constructor.+data GetFilterResponse = GetFilterResponse'+  { _gfrsFindingCriteria :: !(Maybe FindingCriteria)+  , _gfrsAction          :: !(Maybe FilterAction)+  , _gfrsName            :: !(Maybe Text)+  , _gfrsDescription     :: !(Maybe Text)+  , _gfrsRank            :: !(Maybe Int)+  , _gfrsResponseStatus  :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'GetFilterResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gfrsFindingCriteria' - Represents the criteria to be used in the filter for querying findings.+--+-- * 'gfrsAction' - Specifies the action that is to be applied to the findings that match the filter.+--+-- * 'gfrsName' - The name of the filter.+--+-- * 'gfrsDescription' - The description of the filter.+--+-- * 'gfrsRank' - Specifies the position of the filter in the list of current filters. Also specifies the order in which this filter is applied to the findings.+--+-- * 'gfrsResponseStatus' - -- | The response status code.+getFilterResponse+    :: Int -- ^ 'gfrsResponseStatus'+    -> GetFilterResponse+getFilterResponse pResponseStatus_ =+  GetFilterResponse'+    { _gfrsFindingCriteria = Nothing+    , _gfrsAction = Nothing+    , _gfrsName = Nothing+    , _gfrsDescription = Nothing+    , _gfrsRank = Nothing+    , _gfrsResponseStatus = pResponseStatus_+    }+++-- | Represents the criteria to be used in the filter for querying findings.+gfrsFindingCriteria :: Lens' GetFilterResponse (Maybe FindingCriteria)+gfrsFindingCriteria = lens _gfrsFindingCriteria (\ s a -> s{_gfrsFindingCriteria = a})++-- | Specifies the action that is to be applied to the findings that match the filter.+gfrsAction :: Lens' GetFilterResponse (Maybe FilterAction)+gfrsAction = lens _gfrsAction (\ s a -> s{_gfrsAction = a})++-- | The name of the filter.+gfrsName :: Lens' GetFilterResponse (Maybe Text)+gfrsName = lens _gfrsName (\ s a -> s{_gfrsName = a})++-- | The description of the filter.+gfrsDescription :: Lens' GetFilterResponse (Maybe Text)+gfrsDescription = lens _gfrsDescription (\ s a -> s{_gfrsDescription = a})++-- | Specifies the position of the filter in the list of current filters. Also specifies the order in which this filter is applied to the findings.+gfrsRank :: Lens' GetFilterResponse (Maybe Int)+gfrsRank = lens _gfrsRank (\ s a -> s{_gfrsRank = a})++-- | -- | The response status code.+gfrsResponseStatus :: Lens' GetFilterResponse Int+gfrsResponseStatus = lens _gfrsResponseStatus (\ s a -> s{_gfrsResponseStatus = a})++instance NFData GetFilterResponse where
+ gen/Network/AWS/GuardDuty/GetFindings.hs view
@@ -0,0 +1,155 @@+{-# 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.GuardDuty.GetFindings+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Describes Amazon GuardDuty findings specified by finding IDs.+module Network.AWS.GuardDuty.GetFindings+    (+    -- * Creating a Request+      getFindings+    , GetFindings+    -- * Request Lenses+    , gfFindingIds+    , gfSortCriteria+    , gfDetectorId++    -- * Destructuring the Response+    , getFindingsResponse+    , GetFindingsResponse+    -- * Response Lenses+    , grsFindings+    , grsResponseStatus+    ) where++import Network.AWS.GuardDuty.Types+import Network.AWS.GuardDuty.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | GetFindings request body.+--+-- /See:/ 'getFindings' smart constructor.+data GetFindings = GetFindings'+  { _gfFindingIds   :: !(Maybe [Text])+  , _gfSortCriteria :: !(Maybe SortCriteria)+  , _gfDetectorId   :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'GetFindings' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gfFindingIds' - IDs of the findings that you want to retrieve.+--+-- * 'gfSortCriteria' - Represents the criteria used for sorting findings.+--+-- * 'gfDetectorId' - The ID of the detector that specifies the GuardDuty service whose findings you want to retrieve.+getFindings+    :: Text -- ^ 'gfDetectorId'+    -> GetFindings+getFindings pDetectorId_ =+  GetFindings'+    { _gfFindingIds = Nothing+    , _gfSortCriteria = Nothing+    , _gfDetectorId = pDetectorId_+    }+++-- | IDs of the findings that you want to retrieve.+gfFindingIds :: Lens' GetFindings [Text]+gfFindingIds = lens _gfFindingIds (\ s a -> s{_gfFindingIds = a}) . _Default . _Coerce++-- | Represents the criteria used for sorting findings.+gfSortCriteria :: Lens' GetFindings (Maybe SortCriteria)+gfSortCriteria = lens _gfSortCriteria (\ s a -> s{_gfSortCriteria = a})++-- | The ID of the detector that specifies the GuardDuty service whose findings you want to retrieve.+gfDetectorId :: Lens' GetFindings Text+gfDetectorId = lens _gfDetectorId (\ s a -> s{_gfDetectorId = a})++instance AWSRequest GetFindings where+        type Rs GetFindings = GetFindingsResponse+        request = postJSON guardDuty+        response+          = receiveJSON+              (\ s h x ->+                 GetFindingsResponse' <$>+                   (x .?> "findings" .!@ mempty) <*>+                     (pure (fromEnum s)))++instance Hashable GetFindings where++instance NFData GetFindings where++instance ToHeaders GetFindings where+        toHeaders+          = const+              (mconcat+                 ["Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON GetFindings where+        toJSON GetFindings'{..}+          = object+              (catMaybes+                 [("findingIds" .=) <$> _gfFindingIds,+                  ("sortCriteria" .=) <$> _gfSortCriteria])++instance ToPath GetFindings where+        toPath GetFindings'{..}+          = mconcat+              ["/detector/", toBS _gfDetectorId, "/findings/get"]++instance ToQuery GetFindings where+        toQuery = const mempty++-- | /See:/ 'getFindingsResponse' smart constructor.+data GetFindingsResponse = GetFindingsResponse'+  { _grsFindings       :: !(Maybe [Finding])+  , _grsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'GetFindingsResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'grsFindings' - Undocumented member.+--+-- * 'grsResponseStatus' - -- | The response status code.+getFindingsResponse+    :: Int -- ^ 'grsResponseStatus'+    -> GetFindingsResponse+getFindingsResponse pResponseStatus_ =+  GetFindingsResponse'+    {_grsFindings = Nothing, _grsResponseStatus = pResponseStatus_}+++-- | Undocumented member.+grsFindings :: Lens' GetFindingsResponse [Finding]+grsFindings = lens _grsFindings (\ s a -> s{_grsFindings = a}) . _Default . _Coerce++-- | -- | The response status code.+grsResponseStatus :: Lens' GetFindingsResponse Int+grsResponseStatus = lens _grsResponseStatus (\ s a -> s{_grsResponseStatus = a})++instance NFData GetFindingsResponse where
+ gen/Network/AWS/GuardDuty/GetFindingsStatistics.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.GuardDuty.GetFindingsStatistics+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists Amazon GuardDuty findings' statistics for the specified detector ID.+module Network.AWS.GuardDuty.GetFindingsStatistics+    (+    -- * Creating a Request+      getFindingsStatistics+    , GetFindingsStatistics+    -- * Request Lenses+    , gfsFindingStatisticTypes+    , gfsFindingCriteria+    , gfsDetectorId++    -- * Destructuring the Response+    , getFindingsStatisticsResponse+    , GetFindingsStatisticsResponse+    -- * Response Lenses+    , gfsrsFindingStatistics+    , gfsrsResponseStatus+    ) where++import Network.AWS.GuardDuty.Types+import Network.AWS.GuardDuty.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | GetFindingsStatistics request body.+--+-- /See:/ 'getFindingsStatistics' smart constructor.+data GetFindingsStatistics = GetFindingsStatistics'+  { _gfsFindingStatisticTypes :: !(Maybe [FindingStatisticType])+  , _gfsFindingCriteria       :: !(Maybe FindingCriteria)+  , _gfsDetectorId            :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'GetFindingsStatistics' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gfsFindingStatisticTypes' - Types of finding statistics to retrieve.+--+-- * 'gfsFindingCriteria' - Represents the criteria used for querying findings.+--+-- * 'gfsDetectorId' - The ID of the detector that specifies the GuardDuty service whose findings' statistics you want to retrieve.+getFindingsStatistics+    :: Text -- ^ 'gfsDetectorId'+    -> GetFindingsStatistics+getFindingsStatistics pDetectorId_ =+  GetFindingsStatistics'+    { _gfsFindingStatisticTypes = Nothing+    , _gfsFindingCriteria = Nothing+    , _gfsDetectorId = pDetectorId_+    }+++-- | Types of finding statistics to retrieve.+gfsFindingStatisticTypes :: Lens' GetFindingsStatistics [FindingStatisticType]+gfsFindingStatisticTypes = lens _gfsFindingStatisticTypes (\ s a -> s{_gfsFindingStatisticTypes = a}) . _Default . _Coerce++-- | Represents the criteria used for querying findings.+gfsFindingCriteria :: Lens' GetFindingsStatistics (Maybe FindingCriteria)+gfsFindingCriteria = lens _gfsFindingCriteria (\ s a -> s{_gfsFindingCriteria = a})++-- | The ID of the detector that specifies the GuardDuty service whose findings' statistics you want to retrieve.+gfsDetectorId :: Lens' GetFindingsStatistics Text+gfsDetectorId = lens _gfsDetectorId (\ s a -> s{_gfsDetectorId = a})++instance AWSRequest GetFindingsStatistics where+        type Rs GetFindingsStatistics =+             GetFindingsStatisticsResponse+        request = postJSON guardDuty+        response+          = receiveJSON+              (\ s h x ->+                 GetFindingsStatisticsResponse' <$>+                   (x .?> "findingStatistics") <*> (pure (fromEnum s)))++instance Hashable GetFindingsStatistics where++instance NFData GetFindingsStatistics where++instance ToHeaders GetFindingsStatistics where+        toHeaders+          = const+              (mconcat+                 ["Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON GetFindingsStatistics where+        toJSON GetFindingsStatistics'{..}+          = object+              (catMaybes+                 [("findingStatisticTypes" .=) <$>+                    _gfsFindingStatisticTypes,+                  ("findingCriteria" .=) <$> _gfsFindingCriteria])++instance ToPath GetFindingsStatistics where+        toPath GetFindingsStatistics'{..}+          = mconcat+              ["/detector/", toBS _gfsDetectorId,+               "/findings/statistics"]++instance ToQuery GetFindingsStatistics where+        toQuery = const mempty++-- | /See:/ 'getFindingsStatisticsResponse' smart constructor.+data GetFindingsStatisticsResponse = GetFindingsStatisticsResponse'+  { _gfsrsFindingStatistics :: !(Maybe FindingStatistics)+  , _gfsrsResponseStatus    :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'GetFindingsStatisticsResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gfsrsFindingStatistics' - Finding statistics object.+--+-- * 'gfsrsResponseStatus' - -- | The response status code.+getFindingsStatisticsResponse+    :: Int -- ^ 'gfsrsResponseStatus'+    -> GetFindingsStatisticsResponse+getFindingsStatisticsResponse pResponseStatus_ =+  GetFindingsStatisticsResponse'+    {_gfsrsFindingStatistics = Nothing, _gfsrsResponseStatus = pResponseStatus_}+++-- | Finding statistics object.+gfsrsFindingStatistics :: Lens' GetFindingsStatisticsResponse (Maybe FindingStatistics)+gfsrsFindingStatistics = lens _gfsrsFindingStatistics (\ s a -> s{_gfsrsFindingStatistics = a})++-- | -- | The response status code.+gfsrsResponseStatus :: Lens' GetFindingsStatisticsResponse Int+gfsrsResponseStatus = lens _gfsrsResponseStatus (\ s a -> s{_gfsrsResponseStatus = a})++instance NFData GetFindingsStatisticsResponse where
+ gen/Network/AWS/GuardDuty/GetIPSet.hs view
@@ -0,0 +1,167 @@+{-# 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.GuardDuty.GetIPSet+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves the IPSet specified by the IPSet ID.+module Network.AWS.GuardDuty.GetIPSet+    (+    -- * Creating a Request+      getIPSet+    , GetIPSet+    -- * Request Lenses+    , gisDetectorId+    , gisIPSetId++    -- * Destructuring the Response+    , getIPSetResponse+    , GetIPSetResponse+    -- * Response Lenses+    , gisrsStatus+    , gisrsLocation+    , gisrsFormat+    , gisrsName+    , gisrsResponseStatus+    ) where++import Network.AWS.GuardDuty.Types+import Network.AWS.GuardDuty.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | /See:/ 'getIPSet' smart constructor.+data GetIPSet = GetIPSet'+  { _gisDetectorId :: !Text+  , _gisIPSetId    :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'GetIPSet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gisDetectorId' - The detectorID that specifies the GuardDuty service whose IPSet you want to retrieve.+--+-- * 'gisIPSetId' - The unique ID that specifies the IPSet that you want to describe.+getIPSet+    :: Text -- ^ 'gisDetectorId'+    -> Text -- ^ 'gisIPSetId'+    -> GetIPSet+getIPSet pDetectorId_ pIPSetId_ =+  GetIPSet' {_gisDetectorId = pDetectorId_, _gisIPSetId = pIPSetId_}+++-- | The detectorID that specifies the GuardDuty service whose IPSet you want to retrieve.+gisDetectorId :: Lens' GetIPSet Text+gisDetectorId = lens _gisDetectorId (\ s a -> s{_gisDetectorId = a})++-- | The unique ID that specifies the IPSet that you want to describe.+gisIPSetId :: Lens' GetIPSet Text+gisIPSetId = lens _gisIPSetId (\ s a -> s{_gisIPSetId = a})++instance AWSRequest GetIPSet where+        type Rs GetIPSet = GetIPSetResponse+        request = get guardDuty+        response+          = receiveJSON+              (\ s h x ->+                 GetIPSetResponse' <$>+                   (x .?> "status") <*> (x .?> "location") <*>+                     (x .?> "format")+                     <*> (x .?> "name")+                     <*> (pure (fromEnum s)))++instance Hashable GetIPSet where++instance NFData GetIPSet where++instance ToHeaders GetIPSet where+        toHeaders+          = const+              (mconcat+                 ["Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToPath GetIPSet where+        toPath GetIPSet'{..}+          = mconcat+              ["/detector/", toBS _gisDetectorId, "/ipset/",+               toBS _gisIPSetId]++instance ToQuery GetIPSet where+        toQuery = const mempty++-- | /See:/ 'getIPSetResponse' smart constructor.+data GetIPSetResponse = GetIPSetResponse'+  { _gisrsStatus         :: !(Maybe IPSetStatus)+  , _gisrsLocation       :: !(Maybe Text)+  , _gisrsFormat         :: !(Maybe IPSetFormat)+  , _gisrsName           :: !(Maybe Text)+  , _gisrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'GetIPSetResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gisrsStatus' - The status of ipSet file uploaded.+--+-- * 'gisrsLocation' - The URI of the file that contains the IPSet. For example (https://s3.us-west-2.amazonaws.com/my-bucket/my-object-key)+--+-- * 'gisrsFormat' - The format of the file that contains the IPSet.+--+-- * 'gisrsName' - The user friendly name to identify the IPSet. This name is displayed in all findings that are triggered by activity that involves IP addresses included in this IPSet.+--+-- * 'gisrsResponseStatus' - -- | The response status code.+getIPSetResponse+    :: Int -- ^ 'gisrsResponseStatus'+    -> GetIPSetResponse+getIPSetResponse pResponseStatus_ =+  GetIPSetResponse'+    { _gisrsStatus = Nothing+    , _gisrsLocation = Nothing+    , _gisrsFormat = Nothing+    , _gisrsName = Nothing+    , _gisrsResponseStatus = pResponseStatus_+    }+++-- | The status of ipSet file uploaded.+gisrsStatus :: Lens' GetIPSetResponse (Maybe IPSetStatus)+gisrsStatus = lens _gisrsStatus (\ s a -> s{_gisrsStatus = a})++-- | The URI of the file that contains the IPSet. For example (https://s3.us-west-2.amazonaws.com/my-bucket/my-object-key)+gisrsLocation :: Lens' GetIPSetResponse (Maybe Text)+gisrsLocation = lens _gisrsLocation (\ s a -> s{_gisrsLocation = a})++-- | The format of the file that contains the IPSet.+gisrsFormat :: Lens' GetIPSetResponse (Maybe IPSetFormat)+gisrsFormat = lens _gisrsFormat (\ s a -> s{_gisrsFormat = a})++-- | The user friendly name to identify the IPSet. This name is displayed in all findings that are triggered by activity that involves IP addresses included in this IPSet.+gisrsName :: Lens' GetIPSetResponse (Maybe Text)+gisrsName = lens _gisrsName (\ s a -> s{_gisrsName = a})++-- | -- | The response status code.+gisrsResponseStatus :: Lens' GetIPSetResponse Int+gisrsResponseStatus = lens _gisrsResponseStatus (\ s a -> s{_gisrsResponseStatus = a})++instance NFData GetIPSetResponse where
+ gen/Network/AWS/GuardDuty/GetInvitationsCount.hs view
@@ -0,0 +1,113 @@+{-# 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.GuardDuty.GetInvitationsCount+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns the count of all GuardDuty membership invitations that were sent to the current member account except the currently accepted invitation.+module Network.AWS.GuardDuty.GetInvitationsCount+    (+    -- * Creating a Request+      getInvitationsCount+    , GetInvitationsCount++    -- * Destructuring the Response+    , getInvitationsCountResponse+    , GetInvitationsCountResponse+    -- * Response Lenses+    , gicrsInvitationsCount+    , gicrsResponseStatus+    ) where++import Network.AWS.GuardDuty.Types+import Network.AWS.GuardDuty.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | /See:/ 'getInvitationsCount' smart constructor.+data GetInvitationsCount =+  GetInvitationsCount'+  deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'GetInvitationsCount' with the minimum fields required to make a request.+--+getInvitationsCount+    :: GetInvitationsCount+getInvitationsCount = GetInvitationsCount'+++instance AWSRequest GetInvitationsCount where+        type Rs GetInvitationsCount =+             GetInvitationsCountResponse+        request = get guardDuty+        response+          = receiveJSON+              (\ s h x ->+                 GetInvitationsCountResponse' <$>+                   (x .?> "invitationsCount") <*> (pure (fromEnum s)))++instance Hashable GetInvitationsCount where++instance NFData GetInvitationsCount where++instance ToHeaders GetInvitationsCount where+        toHeaders+          = const+              (mconcat+                 ["Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToPath GetInvitationsCount where+        toPath = const "/invitation/count"++instance ToQuery GetInvitationsCount where+        toQuery = const mempty++-- | /See:/ 'getInvitationsCountResponse' smart constructor.+data GetInvitationsCountResponse = GetInvitationsCountResponse'+  { _gicrsInvitationsCount :: !(Maybe Int)+  , _gicrsResponseStatus   :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'GetInvitationsCountResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gicrsInvitationsCount' - The number of received invitations.+--+-- * 'gicrsResponseStatus' - -- | The response status code.+getInvitationsCountResponse+    :: Int -- ^ 'gicrsResponseStatus'+    -> GetInvitationsCountResponse+getInvitationsCountResponse pResponseStatus_ =+  GetInvitationsCountResponse'+    {_gicrsInvitationsCount = Nothing, _gicrsResponseStatus = pResponseStatus_}+++-- | The number of received invitations.+gicrsInvitationsCount :: Lens' GetInvitationsCountResponse (Maybe Int)+gicrsInvitationsCount = lens _gicrsInvitationsCount (\ s a -> s{_gicrsInvitationsCount = a})++-- | -- | The response status code.+gicrsResponseStatus :: Lens' GetInvitationsCountResponse Int+gicrsResponseStatus = lens _gicrsResponseStatus (\ s a -> s{_gicrsResponseStatus = a})++instance NFData GetInvitationsCountResponse where
+ gen/Network/AWS/GuardDuty/GetMasterAccount.hs view
@@ -0,0 +1,125 @@+{-# 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.GuardDuty.GetMasterAccount+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Provides the details for the GuardDuty master account to the current GuardDuty member account.+module Network.AWS.GuardDuty.GetMasterAccount+    (+    -- * Creating a Request+      getMasterAccount+    , GetMasterAccount+    -- * Request Lenses+    , gmaDetectorId++    -- * Destructuring the Response+    , getMasterAccountResponse+    , GetMasterAccountResponse+    -- * Response Lenses+    , gmarsMaster+    , gmarsResponseStatus+    ) where++import Network.AWS.GuardDuty.Types+import Network.AWS.GuardDuty.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | /See:/ 'getMasterAccount' smart constructor.+newtype GetMasterAccount = GetMasterAccount'+  { _gmaDetectorId :: Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'GetMasterAccount' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gmaDetectorId' - The unique ID of the detector of the GuardDuty member account.+getMasterAccount+    :: Text -- ^ 'gmaDetectorId'+    -> GetMasterAccount+getMasterAccount pDetectorId_ =+  GetMasterAccount' {_gmaDetectorId = pDetectorId_}+++-- | The unique ID of the detector of the GuardDuty member account.+gmaDetectorId :: Lens' GetMasterAccount Text+gmaDetectorId = lens _gmaDetectorId (\ s a -> s{_gmaDetectorId = a})++instance AWSRequest GetMasterAccount where+        type Rs GetMasterAccount = GetMasterAccountResponse+        request = get guardDuty+        response+          = receiveJSON+              (\ s h x ->+                 GetMasterAccountResponse' <$>+                   (x .?> "master") <*> (pure (fromEnum s)))++instance Hashable GetMasterAccount where++instance NFData GetMasterAccount where++instance ToHeaders GetMasterAccount where+        toHeaders+          = const+              (mconcat+                 ["Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToPath GetMasterAccount where+        toPath GetMasterAccount'{..}+          = mconcat+              ["/detector/", toBS _gmaDetectorId, "/master"]++instance ToQuery GetMasterAccount where+        toQuery = const mempty++-- | /See:/ 'getMasterAccountResponse' smart constructor.+data GetMasterAccountResponse = GetMasterAccountResponse'+  { _gmarsMaster         :: !(Maybe Master)+  , _gmarsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'GetMasterAccountResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gmarsMaster' - Undocumented member.+--+-- * 'gmarsResponseStatus' - -- | The response status code.+getMasterAccountResponse+    :: Int -- ^ 'gmarsResponseStatus'+    -> GetMasterAccountResponse+getMasterAccountResponse pResponseStatus_ =+  GetMasterAccountResponse'+    {_gmarsMaster = Nothing, _gmarsResponseStatus = pResponseStatus_}+++-- | Undocumented member.+gmarsMaster :: Lens' GetMasterAccountResponse (Maybe Master)+gmarsMaster = lens _gmarsMaster (\ s a -> s{_gmarsMaster = a})++-- | -- | The response status code.+gmarsResponseStatus :: Lens' GetMasterAccountResponse Int+gmarsResponseStatus = lens _gmarsResponseStatus (\ s a -> s{_gmarsResponseStatus = a})++instance NFData GetMasterAccountResponse where
+ gen/Network/AWS/GuardDuty/GetMembers.hs view
@@ -0,0 +1,153 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.GuardDuty.GetMembers+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves GuardDuty member accounts (to the current GuardDuty master account) specified by the account IDs.+module Network.AWS.GuardDuty.GetMembers+    (+    -- * Creating a Request+      getMembers+    , GetMembers+    -- * Request Lenses+    , gmAccountIds+    , gmDetectorId++    -- * Destructuring the Response+    , getMembersResponse+    , GetMembersResponse+    -- * Response Lenses+    , gmrsMembers+    , gmrsUnprocessedAccounts+    , gmrsResponseStatus+    ) where++import Network.AWS.GuardDuty.Types+import Network.AWS.GuardDuty.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | GetMembers request body.+--+-- /See:/ 'getMembers' smart constructor.+data GetMembers = GetMembers'+  { _gmAccountIds :: !(Maybe [Text])+  , _gmDetectorId :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'GetMembers' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gmAccountIds' - A list of account IDs of the GuardDuty member accounts that you want to describe.+--+-- * 'gmDetectorId' - The unique ID of the detector of the GuardDuty account whose members you want to retrieve.+getMembers+    :: Text -- ^ 'gmDetectorId'+    -> GetMembers+getMembers pDetectorId_ =+  GetMembers' {_gmAccountIds = Nothing, _gmDetectorId = pDetectorId_}+++-- | A list of account IDs of the GuardDuty member accounts that you want to describe.+gmAccountIds :: Lens' GetMembers [Text]+gmAccountIds = lens _gmAccountIds (\ s a -> s{_gmAccountIds = a}) . _Default . _Coerce++-- | The unique ID of the detector of the GuardDuty account whose members you want to retrieve.+gmDetectorId :: Lens' GetMembers Text+gmDetectorId = lens _gmDetectorId (\ s a -> s{_gmDetectorId = a})++instance AWSRequest GetMembers where+        type Rs GetMembers = GetMembersResponse+        request = postJSON guardDuty+        response+          = receiveJSON+              (\ s h x ->+                 GetMembersResponse' <$>+                   (x .?> "members" .!@ mempty) <*>+                     (x .?> "unprocessedAccounts" .!@ mempty)+                     <*> (pure (fromEnum s)))++instance Hashable GetMembers where++instance NFData GetMembers where++instance ToHeaders GetMembers where+        toHeaders+          = const+              (mconcat+                 ["Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON GetMembers where+        toJSON GetMembers'{..}+          = object+              (catMaybes [("accountIds" .=) <$> _gmAccountIds])++instance ToPath GetMembers where+        toPath GetMembers'{..}+          = mconcat+              ["/detector/", toBS _gmDetectorId, "/member/get"]++instance ToQuery GetMembers where+        toQuery = const mempty++-- | /See:/ 'getMembersResponse' smart constructor.+data GetMembersResponse = GetMembersResponse'+  { _gmrsMembers             :: !(Maybe [Member])+  , _gmrsUnprocessedAccounts :: !(Maybe [UnprocessedAccount])+  , _gmrsResponseStatus      :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'GetMembersResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gmrsMembers' - Undocumented member.+--+-- * 'gmrsUnprocessedAccounts' - A list of objects containing the unprocessed account and a result string explaining why it was unprocessed.+--+-- * 'gmrsResponseStatus' - -- | The response status code.+getMembersResponse+    :: Int -- ^ 'gmrsResponseStatus'+    -> GetMembersResponse+getMembersResponse pResponseStatus_ =+  GetMembersResponse'+    { _gmrsMembers = Nothing+    , _gmrsUnprocessedAccounts = Nothing+    , _gmrsResponseStatus = pResponseStatus_+    }+++-- | Undocumented member.+gmrsMembers :: Lens' GetMembersResponse [Member]+gmrsMembers = lens _gmrsMembers (\ s a -> s{_gmrsMembers = a}) . _Default . _Coerce++-- | A list of objects containing the unprocessed account and a result string explaining why it was unprocessed.+gmrsUnprocessedAccounts :: Lens' GetMembersResponse [UnprocessedAccount]+gmrsUnprocessedAccounts = lens _gmrsUnprocessedAccounts (\ s a -> s{_gmrsUnprocessedAccounts = a}) . _Default . _Coerce++-- | -- | The response status code.+gmrsResponseStatus :: Lens' GetMembersResponse Int+gmrsResponseStatus = lens _gmrsResponseStatus (\ s a -> s{_gmrsResponseStatus = a})++instance NFData GetMembersResponse where
+ gen/Network/AWS/GuardDuty/GetThreatIntelSet.hs view
@@ -0,0 +1,168 @@+{-# 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.GuardDuty.GetThreatIntelSet+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves the ThreatIntelSet that is specified by the ThreatIntelSet ID.+module Network.AWS.GuardDuty.GetThreatIntelSet+    (+    -- * Creating a Request+      getThreatIntelSet+    , GetThreatIntelSet+    -- * Request Lenses+    , gtisThreatIntelSetId+    , gtisDetectorId++    -- * Destructuring the Response+    , getThreatIntelSetResponse+    , GetThreatIntelSetResponse+    -- * Response Lenses+    , gtisrsStatus+    , gtisrsLocation+    , gtisrsFormat+    , gtisrsName+    , gtisrsResponseStatus+    ) where++import Network.AWS.GuardDuty.Types+import Network.AWS.GuardDuty.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | /See:/ 'getThreatIntelSet' smart constructor.+data GetThreatIntelSet = GetThreatIntelSet'+  { _gtisThreatIntelSetId :: !Text+  , _gtisDetectorId       :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'GetThreatIntelSet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gtisThreatIntelSetId' - The unique ID that specifies the ThreatIntelSet that you want to describe.+--+-- * 'gtisDetectorId' - The detectorID that specifies the GuardDuty service whose ThreatIntelSet you want to describe.+getThreatIntelSet+    :: Text -- ^ 'gtisThreatIntelSetId'+    -> Text -- ^ 'gtisDetectorId'+    -> GetThreatIntelSet+getThreatIntelSet pThreatIntelSetId_ pDetectorId_ =+  GetThreatIntelSet'+    {_gtisThreatIntelSetId = pThreatIntelSetId_, _gtisDetectorId = pDetectorId_}+++-- | The unique ID that specifies the ThreatIntelSet that you want to describe.+gtisThreatIntelSetId :: Lens' GetThreatIntelSet Text+gtisThreatIntelSetId = lens _gtisThreatIntelSetId (\ s a -> s{_gtisThreatIntelSetId = a})++-- | The detectorID that specifies the GuardDuty service whose ThreatIntelSet you want to describe.+gtisDetectorId :: Lens' GetThreatIntelSet Text+gtisDetectorId = lens _gtisDetectorId (\ s a -> s{_gtisDetectorId = a})++instance AWSRequest GetThreatIntelSet where+        type Rs GetThreatIntelSet = GetThreatIntelSetResponse+        request = get guardDuty+        response+          = receiveJSON+              (\ s h x ->+                 GetThreatIntelSetResponse' <$>+                   (x .?> "status") <*> (x .?> "location") <*>+                     (x .?> "format")+                     <*> (x .?> "name")+                     <*> (pure (fromEnum s)))++instance Hashable GetThreatIntelSet where++instance NFData GetThreatIntelSet where++instance ToHeaders GetThreatIntelSet where+        toHeaders+          = const+              (mconcat+                 ["Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToPath GetThreatIntelSet where+        toPath GetThreatIntelSet'{..}+          = mconcat+              ["/detector/", toBS _gtisDetectorId,+               "/threatintelset/", toBS _gtisThreatIntelSetId]++instance ToQuery GetThreatIntelSet where+        toQuery = const mempty++-- | /See:/ 'getThreatIntelSetResponse' smart constructor.+data GetThreatIntelSetResponse = GetThreatIntelSetResponse'+  { _gtisrsStatus         :: !(Maybe ThreatIntelSetStatus)+  , _gtisrsLocation       :: !(Maybe Text)+  , _gtisrsFormat         :: !(Maybe ThreatIntelSetFormat)+  , _gtisrsName           :: !(Maybe Text)+  , _gtisrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'GetThreatIntelSetResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gtisrsStatus' - The status of threatIntelSet file uploaded.+--+-- * 'gtisrsLocation' - The URI of the file that contains the ThreatIntelSet. For example (https://s3.us-west-2.amazonaws.com/my-bucket/my-object-key).+--+-- * 'gtisrsFormat' - The format of the threatIntelSet.+--+-- * 'gtisrsName' - A user-friendly ThreatIntelSet name that is displayed in all finding generated by activity that involves IP addresses included in this ThreatIntelSet.+--+-- * 'gtisrsResponseStatus' - -- | The response status code.+getThreatIntelSetResponse+    :: Int -- ^ 'gtisrsResponseStatus'+    -> GetThreatIntelSetResponse+getThreatIntelSetResponse pResponseStatus_ =+  GetThreatIntelSetResponse'+    { _gtisrsStatus = Nothing+    , _gtisrsLocation = Nothing+    , _gtisrsFormat = Nothing+    , _gtisrsName = Nothing+    , _gtisrsResponseStatus = pResponseStatus_+    }+++-- | The status of threatIntelSet file uploaded.+gtisrsStatus :: Lens' GetThreatIntelSetResponse (Maybe ThreatIntelSetStatus)+gtisrsStatus = lens _gtisrsStatus (\ s a -> s{_gtisrsStatus = a})++-- | The URI of the file that contains the ThreatIntelSet. For example (https://s3.us-west-2.amazonaws.com/my-bucket/my-object-key).+gtisrsLocation :: Lens' GetThreatIntelSetResponse (Maybe Text)+gtisrsLocation = lens _gtisrsLocation (\ s a -> s{_gtisrsLocation = a})++-- | The format of the threatIntelSet.+gtisrsFormat :: Lens' GetThreatIntelSetResponse (Maybe ThreatIntelSetFormat)+gtisrsFormat = lens _gtisrsFormat (\ s a -> s{_gtisrsFormat = a})++-- | A user-friendly ThreatIntelSet name that is displayed in all finding generated by activity that involves IP addresses included in this ThreatIntelSet.+gtisrsName :: Lens' GetThreatIntelSetResponse (Maybe Text)+gtisrsName = lens _gtisrsName (\ s a -> s{_gtisrsName = a})++-- | -- | The response status code.+gtisrsResponseStatus :: Lens' GetThreatIntelSetResponse Int+gtisrsResponseStatus = lens _gtisrsResponseStatus (\ s a -> s{_gtisrsResponseStatus = a})++instance NFData GetThreatIntelSetResponse where
+ gen/Network/AWS/GuardDuty/InviteMembers.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.GuardDuty.InviteMembers+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Invites other AWS accounts (created as members of the current AWS account by CreateMembers) to enable GuardDuty and allow the current AWS account to view and manage these accounts' GuardDuty findings on their behalf as the master account.+module Network.AWS.GuardDuty.InviteMembers+    (+    -- * Creating a Request+      inviteMembers+    , InviteMembers+    -- * Request Lenses+    , imAccountIds+    , imDisableEmailNotification+    , imMessage+    , imDetectorId++    -- * Destructuring the Response+    , inviteMembersResponse+    , InviteMembersResponse+    -- * Response Lenses+    , imrsUnprocessedAccounts+    , imrsResponseStatus+    ) where++import Network.AWS.GuardDuty.Types+import Network.AWS.GuardDuty.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | InviteMembers request body.+--+-- /See:/ 'inviteMembers' smart constructor.+data InviteMembers = InviteMembers'+  { _imAccountIds               :: !(Maybe [Text])+  , _imDisableEmailNotification :: !(Maybe Bool)+  , _imMessage                  :: !(Maybe Text)+  , _imDetectorId               :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'InviteMembers' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'imAccountIds' - A list of account IDs of the accounts that you want to invite to GuardDuty as members.+--+-- * 'imDisableEmailNotification' - A boolean value that specifies whether you want to disable email notification to the accounts that you’re inviting to GuardDuty as members.+--+-- * 'imMessage' - The invitation message that you want to send to the accounts that you’re inviting to GuardDuty as members.+--+-- * 'imDetectorId' - The unique ID of the detector of the GuardDuty account with which you want to invite members.+inviteMembers+    :: Text -- ^ 'imDetectorId'+    -> InviteMembers+inviteMembers pDetectorId_ =+  InviteMembers'+    { _imAccountIds = Nothing+    , _imDisableEmailNotification = Nothing+    , _imMessage = Nothing+    , _imDetectorId = pDetectorId_+    }+++-- | A list of account IDs of the accounts that you want to invite to GuardDuty as members.+imAccountIds :: Lens' InviteMembers [Text]+imAccountIds = lens _imAccountIds (\ s a -> s{_imAccountIds = a}) . _Default . _Coerce++-- | A boolean value that specifies whether you want to disable email notification to the accounts that you’re inviting to GuardDuty as members.+imDisableEmailNotification :: Lens' InviteMembers (Maybe Bool)+imDisableEmailNotification = lens _imDisableEmailNotification (\ s a -> s{_imDisableEmailNotification = a})++-- | The invitation message that you want to send to the accounts that you’re inviting to GuardDuty as members.+imMessage :: Lens' InviteMembers (Maybe Text)+imMessage = lens _imMessage (\ s a -> s{_imMessage = a})++-- | The unique ID of the detector of the GuardDuty account with which you want to invite members.+imDetectorId :: Lens' InviteMembers Text+imDetectorId = lens _imDetectorId (\ s a -> s{_imDetectorId = a})++instance AWSRequest InviteMembers where+        type Rs InviteMembers = InviteMembersResponse+        request = postJSON guardDuty+        response+          = receiveJSON+              (\ s h x ->+                 InviteMembersResponse' <$>+                   (x .?> "unprocessedAccounts" .!@ mempty) <*>+                     (pure (fromEnum s)))++instance Hashable InviteMembers where++instance NFData InviteMembers where++instance ToHeaders InviteMembers where+        toHeaders+          = const+              (mconcat+                 ["Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON InviteMembers where+        toJSON InviteMembers'{..}+          = object+              (catMaybes+                 [("accountIds" .=) <$> _imAccountIds,+                  ("disableEmailNotification" .=) <$>+                    _imDisableEmailNotification,+                  ("message" .=) <$> _imMessage])++instance ToPath InviteMembers where+        toPath InviteMembers'{..}+          = mconcat+              ["/detector/", toBS _imDetectorId, "/member/invite"]++instance ToQuery InviteMembers where+        toQuery = const mempty++-- | /See:/ 'inviteMembersResponse' smart constructor.+data InviteMembersResponse = InviteMembersResponse'+  { _imrsUnprocessedAccounts :: !(Maybe [UnprocessedAccount])+  , _imrsResponseStatus      :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'InviteMembersResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'imrsUnprocessedAccounts' - A list of objects containing the unprocessed account and a result string explaining why it was unprocessed.+--+-- * 'imrsResponseStatus' - -- | The response status code.+inviteMembersResponse+    :: Int -- ^ 'imrsResponseStatus'+    -> InviteMembersResponse+inviteMembersResponse pResponseStatus_ =+  InviteMembersResponse'+    {_imrsUnprocessedAccounts = Nothing, _imrsResponseStatus = pResponseStatus_}+++-- | A list of objects containing the unprocessed account and a result string explaining why it was unprocessed.+imrsUnprocessedAccounts :: Lens' InviteMembersResponse [UnprocessedAccount]+imrsUnprocessedAccounts = lens _imrsUnprocessedAccounts (\ s a -> s{_imrsUnprocessedAccounts = a}) . _Default . _Coerce++-- | -- | The response status code.+imrsResponseStatus :: Lens' InviteMembersResponse Int+imrsResponseStatus = lens _imrsResponseStatus (\ s a -> s{_imrsResponseStatus = a})++instance NFData InviteMembersResponse where
+ gen/Network/AWS/GuardDuty/ListDetectors.hs view
@@ -0,0 +1,155 @@+{-# 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.GuardDuty.ListDetectors+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists detectorIds of all the existing Amazon GuardDuty detector resources.+--+-- This operation returns paginated results.+module Network.AWS.GuardDuty.ListDetectors+    (+    -- * Creating a Request+      listDetectors+    , ListDetectors+    -- * Request Lenses+    , ldNextToken+    , ldMaxResults++    -- * Destructuring the Response+    , listDetectorsResponse+    , ListDetectorsResponse+    -- * Response Lenses+    , ldrsNextToken+    , ldrsDetectorIds+    , ldrsResponseStatus+    ) where++import Network.AWS.GuardDuty.Types+import Network.AWS.GuardDuty.Types.Product+import Network.AWS.Lens+import Network.AWS.Pager+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | /See:/ 'listDetectors' smart constructor.+data ListDetectors = ListDetectors'+  { _ldNextToken  :: !(Maybe Text)+  , _ldMaxResults :: !(Maybe Nat)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ListDetectors' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ldNextToken' - You can use this parameter when paginating results. Set the value of this parameter to null on your first call to the ListDetectors action. For subsequent calls to the action fill nextToken in the request with the value of nextToken from the previous response to continue listing data.+--+-- * 'ldMaxResults' - You can use this parameter to indicate the maximum number of detectors that you want in the response.+listDetectors+    :: ListDetectors+listDetectors = ListDetectors' {_ldNextToken = Nothing, _ldMaxResults = Nothing}+++-- | You can use this parameter when paginating results. Set the value of this parameter to null on your first call to the ListDetectors action. For subsequent calls to the action fill nextToken in the request with the value of nextToken from the previous response to continue listing data.+ldNextToken :: Lens' ListDetectors (Maybe Text)+ldNextToken = lens _ldNextToken (\ s a -> s{_ldNextToken = a})++-- | You can use this parameter to indicate the maximum number of detectors that you want in the response.+ldMaxResults :: Lens' ListDetectors (Maybe Natural)+ldMaxResults = lens _ldMaxResults (\ s a -> s{_ldMaxResults = a}) . mapping _Nat++instance AWSPager ListDetectors where+        page rq rs+          | stop (rs ^. ldrsNextToken) = Nothing+          | stop (rs ^. ldrsDetectorIds) = Nothing+          | otherwise =+            Just $ rq & ldNextToken .~ rs ^. ldrsNextToken++instance AWSRequest ListDetectors where+        type Rs ListDetectors = ListDetectorsResponse+        request = get guardDuty+        response+          = receiveJSON+              (\ s h x ->+                 ListDetectorsResponse' <$>+                   (x .?> "nextToken") <*>+                     (x .?> "detectorIds" .!@ mempty)+                     <*> (pure (fromEnum s)))++instance Hashable ListDetectors where++instance NFData ListDetectors where++instance ToHeaders ListDetectors where+        toHeaders+          = const+              (mconcat+                 ["Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToPath ListDetectors where+        toPath = const "/detector"++instance ToQuery ListDetectors where+        toQuery ListDetectors'{..}+          = mconcat+              ["nextToken" =: _ldNextToken,+               "maxResults" =: _ldMaxResults]++-- | /See:/ 'listDetectorsResponse' smart constructor.+data ListDetectorsResponse = ListDetectorsResponse'+  { _ldrsNextToken      :: !(Maybe Text)+  , _ldrsDetectorIds    :: !(Maybe [Text])+  , _ldrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ListDetectorsResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ldrsNextToken' - Undocumented member.+--+-- * 'ldrsDetectorIds' - Undocumented member.+--+-- * 'ldrsResponseStatus' - -- | The response status code.+listDetectorsResponse+    :: Int -- ^ 'ldrsResponseStatus'+    -> ListDetectorsResponse+listDetectorsResponse pResponseStatus_ =+  ListDetectorsResponse'+    { _ldrsNextToken = Nothing+    , _ldrsDetectorIds = Nothing+    , _ldrsResponseStatus = pResponseStatus_+    }+++-- | Undocumented member.+ldrsNextToken :: Lens' ListDetectorsResponse (Maybe Text)+ldrsNextToken = lens _ldrsNextToken (\ s a -> s{_ldrsNextToken = a})++-- | Undocumented member.+ldrsDetectorIds :: Lens' ListDetectorsResponse [Text]+ldrsDetectorIds = lens _ldrsDetectorIds (\ s a -> s{_ldrsDetectorIds = a}) . _Default . _Coerce++-- | -- | The response status code.+ldrsResponseStatus :: Lens' ListDetectorsResponse Int+ldrsResponseStatus = lens _ldrsResponseStatus (\ s a -> s{_ldrsResponseStatus = a})++instance NFData ListDetectorsResponse where
+ gen/Network/AWS/GuardDuty/ListFilters.hs view
@@ -0,0 +1,168 @@+{-# 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.GuardDuty.ListFilters+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns a paginated list of the current filters.+--+-- This operation returns paginated results.+module Network.AWS.GuardDuty.ListFilters+    (+    -- * Creating a Request+      listFilters+    , ListFilters+    -- * Request Lenses+    , lNextToken+    , lMaxResults+    , lDetectorId++    -- * Destructuring the Response+    , listFiltersResponse+    , ListFiltersResponse+    -- * Response Lenses+    , lrsFilterNames+    , lrsNextToken+    , lrsResponseStatus+    ) where++import Network.AWS.GuardDuty.Types+import Network.AWS.GuardDuty.Types.Product+import Network.AWS.Lens+import Network.AWS.Pager+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | /See:/ 'listFilters' smart constructor.+data ListFilters = ListFilters'+  { _lNextToken  :: !(Maybe Text)+  , _lMaxResults :: !(Maybe Nat)+  , _lDetectorId :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ListFilters' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lNextToken' - Paginates results. Set the value of this parameter to NULL on your first call to the ListFilters operation.For subsequent calls to the operation, fill nextToken in the request with the value of nextToken from the previous response to continue listing data.+--+-- * 'lMaxResults' - Indicates the maximum number of items that you want in the response. The maximum value is 50.+--+-- * 'lDetectorId' - The ID of the detector that specifies the GuardDuty service where you want to list filters.+listFilters+    :: Text -- ^ 'lDetectorId'+    -> ListFilters+listFilters pDetectorId_ =+  ListFilters'+    {_lNextToken = Nothing, _lMaxResults = Nothing, _lDetectorId = pDetectorId_}+++-- | Paginates results. Set the value of this parameter to NULL on your first call to the ListFilters operation.For subsequent calls to the operation, fill nextToken in the request with the value of nextToken from the previous response to continue listing data.+lNextToken :: Lens' ListFilters (Maybe Text)+lNextToken = lens _lNextToken (\ s a -> s{_lNextToken = a})++-- | Indicates the maximum number of items that you want in the response. The maximum value is 50.+lMaxResults :: Lens' ListFilters (Maybe Natural)+lMaxResults = lens _lMaxResults (\ s a -> s{_lMaxResults = a}) . mapping _Nat++-- | The ID of the detector that specifies the GuardDuty service where you want to list filters.+lDetectorId :: Lens' ListFilters Text+lDetectorId = lens _lDetectorId (\ s a -> s{_lDetectorId = a})++instance AWSPager ListFilters where+        page rq rs+          | stop (rs ^. lrsNextToken) = Nothing+          | stop (rs ^. lrsFilterNames) = Nothing+          | otherwise =+            Just $ rq & lNextToken .~ rs ^. lrsNextToken++instance AWSRequest ListFilters where+        type Rs ListFilters = ListFiltersResponse+        request = get guardDuty+        response+          = receiveJSON+              (\ s h x ->+                 ListFiltersResponse' <$>+                   (x .?> "filterNames" .!@ mempty) <*>+                     (x .?> "nextToken")+                     <*> (pure (fromEnum s)))++instance Hashable ListFilters where++instance NFData ListFilters where++instance ToHeaders ListFilters where+        toHeaders+          = const+              (mconcat+                 ["Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToPath ListFilters where+        toPath ListFilters'{..}+          = mconcat+              ["/detector/", toBS _lDetectorId, "/filter"]++instance ToQuery ListFilters where+        toQuery ListFilters'{..}+          = mconcat+              ["nextToken" =: _lNextToken,+               "maxResults" =: _lMaxResults]++-- | /See:/ 'listFiltersResponse' smart constructor.+data ListFiltersResponse = ListFiltersResponse'+  { _lrsFilterNames    :: !(Maybe [Text])+  , _lrsNextToken      :: !(Maybe Text)+  , _lrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ListFiltersResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lrsFilterNames' - Undocumented member.+--+-- * 'lrsNextToken' - Undocumented member.+--+-- * 'lrsResponseStatus' - -- | The response status code.+listFiltersResponse+    :: Int -- ^ 'lrsResponseStatus'+    -> ListFiltersResponse+listFiltersResponse pResponseStatus_ =+  ListFiltersResponse'+    { _lrsFilterNames = Nothing+    , _lrsNextToken = Nothing+    , _lrsResponseStatus = pResponseStatus_+    }+++-- | Undocumented member.+lrsFilterNames :: Lens' ListFiltersResponse [Text]+lrsFilterNames = lens _lrsFilterNames (\ s a -> s{_lrsFilterNames = a}) . _Default . _Coerce++-- | Undocumented member.+lrsNextToken :: Lens' ListFiltersResponse (Maybe Text)+lrsNextToken = lens _lrsNextToken (\ s a -> s{_lrsNextToken = a})++-- | -- | The response status code.+lrsResponseStatus :: Lens' ListFiltersResponse Int+lrsResponseStatus = lens _lrsResponseStatus (\ s a -> s{_lrsResponseStatus = a})++instance NFData ListFiltersResponse where
+ gen/Network/AWS/GuardDuty/ListFindings.hs view
@@ -0,0 +1,197 @@+{-# 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.GuardDuty.ListFindings+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists Amazon GuardDuty findings for the specified detector ID.+--+-- This operation returns paginated results.+module Network.AWS.GuardDuty.ListFindings+    (+    -- * Creating a Request+      listFindings+    , ListFindings+    -- * Request Lenses+    , lfFindingCriteria+    , lfSortCriteria+    , lfNextToken+    , lfMaxResults+    , lfDetectorId++    -- * Destructuring the Response+    , listFindingsResponse+    , ListFindingsResponse+    -- * Response Lenses+    , lfrsFindingIds+    , lfrsNextToken+    , lfrsResponseStatus+    ) where++import Network.AWS.GuardDuty.Types+import Network.AWS.GuardDuty.Types.Product+import Network.AWS.Lens+import Network.AWS.Pager+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | ListFindings request body.+--+-- /See:/ 'listFindings' smart constructor.+data ListFindings = ListFindings'+  { _lfFindingCriteria :: !(Maybe FindingCriteria)+  , _lfSortCriteria    :: !(Maybe SortCriteria)+  , _lfNextToken       :: !(Maybe Text)+  , _lfMaxResults      :: !(Maybe Nat)+  , _lfDetectorId      :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ListFindings' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lfFindingCriteria' - Represents the criteria used for querying findings.+--+-- * 'lfSortCriteria' - Represents the criteria used for sorting findings.+--+-- * 'lfNextToken' - You can use this parameter when paginating results. Set the value of this parameter to null on your first call to the ListFindings action. For subsequent calls to the action fill nextToken in the request with the value of nextToken from the previous response to continue listing data.+--+-- * 'lfMaxResults' - You can use this parameter to indicate the maximum number of items you want in the response. The default value is 50. The maximum value is 50.+--+-- * 'lfDetectorId' - The ID of the detector that specifies the GuardDuty service whose findings you want to list.+listFindings+    :: Text -- ^ 'lfDetectorId'+    -> ListFindings+listFindings pDetectorId_ =+  ListFindings'+    { _lfFindingCriteria = Nothing+    , _lfSortCriteria = Nothing+    , _lfNextToken = Nothing+    , _lfMaxResults = Nothing+    , _lfDetectorId = pDetectorId_+    }+++-- | Represents the criteria used for querying findings.+lfFindingCriteria :: Lens' ListFindings (Maybe FindingCriteria)+lfFindingCriteria = lens _lfFindingCriteria (\ s a -> s{_lfFindingCriteria = a})++-- | Represents the criteria used for sorting findings.+lfSortCriteria :: Lens' ListFindings (Maybe SortCriteria)+lfSortCriteria = lens _lfSortCriteria (\ s a -> s{_lfSortCriteria = a})++-- | You can use this parameter when paginating results. Set the value of this parameter to null on your first call to the ListFindings action. For subsequent calls to the action fill nextToken in the request with the value of nextToken from the previous response to continue listing data.+lfNextToken :: Lens' ListFindings (Maybe Text)+lfNextToken = lens _lfNextToken (\ s a -> s{_lfNextToken = a})++-- | You can use this parameter to indicate the maximum number of items you want in the response. The default value is 50. The maximum value is 50.+lfMaxResults :: Lens' ListFindings (Maybe Natural)+lfMaxResults = lens _lfMaxResults (\ s a -> s{_lfMaxResults = a}) . mapping _Nat++-- | The ID of the detector that specifies the GuardDuty service whose findings you want to list.+lfDetectorId :: Lens' ListFindings Text+lfDetectorId = lens _lfDetectorId (\ s a -> s{_lfDetectorId = a})++instance AWSPager ListFindings where+        page rq rs+          | stop (rs ^. lfrsNextToken) = Nothing+          | stop (rs ^. lfrsFindingIds) = Nothing+          | otherwise =+            Just $ rq & lfNextToken .~ rs ^. lfrsNextToken++instance AWSRequest ListFindings where+        type Rs ListFindings = ListFindingsResponse+        request = postJSON guardDuty+        response+          = receiveJSON+              (\ s h x ->+                 ListFindingsResponse' <$>+                   (x .?> "findingIds" .!@ mempty) <*>+                     (x .?> "nextToken")+                     <*> (pure (fromEnum s)))++instance Hashable ListFindings where++instance NFData ListFindings where++instance ToHeaders ListFindings where+        toHeaders+          = const+              (mconcat+                 ["Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON ListFindings where+        toJSON ListFindings'{..}+          = object+              (catMaybes+                 [("findingCriteria" .=) <$> _lfFindingCriteria,+                  ("sortCriteria" .=) <$> _lfSortCriteria,+                  ("nextToken" .=) <$> _lfNextToken,+                  ("maxResults" .=) <$> _lfMaxResults])++instance ToPath ListFindings where+        toPath ListFindings'{..}+          = mconcat+              ["/detector/", toBS _lfDetectorId, "/findings"]++instance ToQuery ListFindings where+        toQuery = const mempty++-- | /See:/ 'listFindingsResponse' smart constructor.+data ListFindingsResponse = ListFindingsResponse'+  { _lfrsFindingIds     :: !(Maybe [Text])+  , _lfrsNextToken      :: !(Maybe Text)+  , _lfrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ListFindingsResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lfrsFindingIds' - Undocumented member.+--+-- * 'lfrsNextToken' - Undocumented member.+--+-- * 'lfrsResponseStatus' - -- | The response status code.+listFindingsResponse+    :: Int -- ^ 'lfrsResponseStatus'+    -> ListFindingsResponse+listFindingsResponse pResponseStatus_ =+  ListFindingsResponse'+    { _lfrsFindingIds = Nothing+    , _lfrsNextToken = Nothing+    , _lfrsResponseStatus = pResponseStatus_+    }+++-- | Undocumented member.+lfrsFindingIds :: Lens' ListFindingsResponse [Text]+lfrsFindingIds = lens _lfrsFindingIds (\ s a -> s{_lfrsFindingIds = a}) . _Default . _Coerce++-- | Undocumented member.+lfrsNextToken :: Lens' ListFindingsResponse (Maybe Text)+lfrsNextToken = lens _lfrsNextToken (\ s a -> s{_lfrsNextToken = a})++-- | -- | The response status code.+lfrsResponseStatus :: Lens' ListFindingsResponse Int+lfrsResponseStatus = lens _lfrsResponseStatus (\ s a -> s{_lfrsResponseStatus = a})++instance NFData ListFindingsResponse where
+ gen/Network/AWS/GuardDuty/ListIPSets.hs view
@@ -0,0 +1,170 @@+{-# 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.GuardDuty.ListIPSets+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists the IPSets of the GuardDuty service specified by the detector ID.+--+-- This operation returns paginated results.+module Network.AWS.GuardDuty.ListIPSets+    (+    -- * Creating a Request+      listIPSets+    , ListIPSets+    -- * Request Lenses+    , lisNextToken+    , lisMaxResults+    , lisDetectorId++    -- * Destructuring the Response+    , listIPSetsResponse+    , ListIPSetsResponse+    -- * Response Lenses+    , lisrsNextToken+    , lisrsIPSetIds+    , lisrsResponseStatus+    ) where++import Network.AWS.GuardDuty.Types+import Network.AWS.GuardDuty.Types.Product+import Network.AWS.Lens+import Network.AWS.Pager+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | /See:/ 'listIPSets' smart constructor.+data ListIPSets = ListIPSets'+  { _lisNextToken  :: !(Maybe Text)+  , _lisMaxResults :: !(Maybe Nat)+  , _lisDetectorId :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ListIPSets' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lisNextToken' - You can use this parameter when paginating results. Set the value of this parameter to null on your first call to the ListIPSet action. For subsequent calls to the action fill nextToken in the request with the value of NextToken from the previous response to continue listing data.+--+-- * 'lisMaxResults' - You can use this parameter to indicate the maximum number of items that you want in the response. The default value is 7. The maximum value is 7.+--+-- * 'lisDetectorId' - The unique ID of the detector that you want to retrieve.+listIPSets+    :: Text -- ^ 'lisDetectorId'+    -> ListIPSets+listIPSets pDetectorId_ =+  ListIPSets'+    { _lisNextToken = Nothing+    , _lisMaxResults = Nothing+    , _lisDetectorId = pDetectorId_+    }+++-- | You can use this parameter when paginating results. Set the value of this parameter to null on your first call to the ListIPSet action. For subsequent calls to the action fill nextToken in the request with the value of NextToken from the previous response to continue listing data.+lisNextToken :: Lens' ListIPSets (Maybe Text)+lisNextToken = lens _lisNextToken (\ s a -> s{_lisNextToken = a})++-- | You can use this parameter to indicate the maximum number of items that you want in the response. The default value is 7. The maximum value is 7.+lisMaxResults :: Lens' ListIPSets (Maybe Natural)+lisMaxResults = lens _lisMaxResults (\ s a -> s{_lisMaxResults = a}) . mapping _Nat++-- | The unique ID of the detector that you want to retrieve.+lisDetectorId :: Lens' ListIPSets Text+lisDetectorId = lens _lisDetectorId (\ s a -> s{_lisDetectorId = a})++instance AWSPager ListIPSets where+        page rq rs+          | stop (rs ^. lisrsNextToken) = Nothing+          | stop (rs ^. lisrsIPSetIds) = Nothing+          | otherwise =+            Just $ rq & lisNextToken .~ rs ^. lisrsNextToken++instance AWSRequest ListIPSets where+        type Rs ListIPSets = ListIPSetsResponse+        request = get guardDuty+        response+          = receiveJSON+              (\ s h x ->+                 ListIPSetsResponse' <$>+                   (x .?> "nextToken") <*> (x .?> "ipSetIds" .!@ mempty)+                     <*> (pure (fromEnum s)))++instance Hashable ListIPSets where++instance NFData ListIPSets where++instance ToHeaders ListIPSets where+        toHeaders+          = const+              (mconcat+                 ["Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToPath ListIPSets where+        toPath ListIPSets'{..}+          = mconcat+              ["/detector/", toBS _lisDetectorId, "/ipset"]++instance ToQuery ListIPSets where+        toQuery ListIPSets'{..}+          = mconcat+              ["nextToken" =: _lisNextToken,+               "maxResults" =: _lisMaxResults]++-- | /See:/ 'listIPSetsResponse' smart constructor.+data ListIPSetsResponse = ListIPSetsResponse'+  { _lisrsNextToken      :: !(Maybe Text)+  , _lisrsIPSetIds       :: !(Maybe [Text])+  , _lisrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ListIPSetsResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lisrsNextToken' - Undocumented member.+--+-- * 'lisrsIPSetIds' - Undocumented member.+--+-- * 'lisrsResponseStatus' - -- | The response status code.+listIPSetsResponse+    :: Int -- ^ 'lisrsResponseStatus'+    -> ListIPSetsResponse+listIPSetsResponse pResponseStatus_ =+  ListIPSetsResponse'+    { _lisrsNextToken = Nothing+    , _lisrsIPSetIds = Nothing+    , _lisrsResponseStatus = pResponseStatus_+    }+++-- | Undocumented member.+lisrsNextToken :: Lens' ListIPSetsResponse (Maybe Text)+lisrsNextToken = lens _lisrsNextToken (\ s a -> s{_lisrsNextToken = a})++-- | Undocumented member.+lisrsIPSetIds :: Lens' ListIPSetsResponse [Text]+lisrsIPSetIds = lens _lisrsIPSetIds (\ s a -> s{_lisrsIPSetIds = a}) . _Default . _Coerce++-- | -- | The response status code.+lisrsResponseStatus :: Lens' ListIPSetsResponse Int+lisrsResponseStatus = lens _lisrsResponseStatus (\ s a -> s{_lisrsResponseStatus = a})++instance NFData ListIPSetsResponse where
+ gen/Network/AWS/GuardDuty/ListInvitations.hs view
@@ -0,0 +1,156 @@+{-# 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.GuardDuty.ListInvitations+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists all GuardDuty membership invitations that were sent to the current AWS account.+--+-- This operation returns paginated results.+module Network.AWS.GuardDuty.ListInvitations+    (+    -- * Creating a Request+      listInvitations+    , ListInvitations+    -- * Request Lenses+    , liNextToken+    , liMaxResults++    -- * Destructuring the Response+    , listInvitationsResponse+    , ListInvitationsResponse+    -- * Response Lenses+    , lirsInvitations+    , lirsNextToken+    , lirsResponseStatus+    ) where++import Network.AWS.GuardDuty.Types+import Network.AWS.GuardDuty.Types.Product+import Network.AWS.Lens+import Network.AWS.Pager+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | /See:/ 'listInvitations' smart constructor.+data ListInvitations = ListInvitations'+  { _liNextToken  :: !(Maybe Text)+  , _liMaxResults :: !(Maybe Nat)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ListInvitations' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'liNextToken' - You can use this parameter when paginating results. Set the value of this parameter to null on your first call to the ListInvitations action. Subsequent calls to the action fill nextToken in the request with the value of NextToken from the previous response to continue listing data.+--+-- * 'liMaxResults' - You can use this parameter to indicate the maximum number of invitations you want in the response. The default value is 50. The maximum value is 50.+listInvitations+    :: ListInvitations+listInvitations =+  ListInvitations' {_liNextToken = Nothing, _liMaxResults = Nothing}+++-- | You can use this parameter when paginating results. Set the value of this parameter to null on your first call to the ListInvitations action. Subsequent calls to the action fill nextToken in the request with the value of NextToken from the previous response to continue listing data.+liNextToken :: Lens' ListInvitations (Maybe Text)+liNextToken = lens _liNextToken (\ s a -> s{_liNextToken = a})++-- | You can use this parameter to indicate the maximum number of invitations you want in the response. The default value is 50. The maximum value is 50.+liMaxResults :: Lens' ListInvitations (Maybe Natural)+liMaxResults = lens _liMaxResults (\ s a -> s{_liMaxResults = a}) . mapping _Nat++instance AWSPager ListInvitations where+        page rq rs+          | stop (rs ^. lirsNextToken) = Nothing+          | stop (rs ^. lirsInvitations) = Nothing+          | otherwise =+            Just $ rq & liNextToken .~ rs ^. lirsNextToken++instance AWSRequest ListInvitations where+        type Rs ListInvitations = ListInvitationsResponse+        request = get guardDuty+        response+          = receiveJSON+              (\ s h x ->+                 ListInvitationsResponse' <$>+                   (x .?> "invitations" .!@ mempty) <*>+                     (x .?> "nextToken")+                     <*> (pure (fromEnum s)))++instance Hashable ListInvitations where++instance NFData ListInvitations where++instance ToHeaders ListInvitations where+        toHeaders+          = const+              (mconcat+                 ["Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToPath ListInvitations where+        toPath = const "/invitation"++instance ToQuery ListInvitations where+        toQuery ListInvitations'{..}+          = mconcat+              ["nextToken" =: _liNextToken,+               "maxResults" =: _liMaxResults]++-- | /See:/ 'listInvitationsResponse' smart constructor.+data ListInvitationsResponse = ListInvitationsResponse'+  { _lirsInvitations    :: !(Maybe [Invitation])+  , _lirsNextToken      :: !(Maybe Text)+  , _lirsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ListInvitationsResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lirsInvitations' - Undocumented member.+--+-- * 'lirsNextToken' - Undocumented member.+--+-- * 'lirsResponseStatus' - -- | The response status code.+listInvitationsResponse+    :: Int -- ^ 'lirsResponseStatus'+    -> ListInvitationsResponse+listInvitationsResponse pResponseStatus_ =+  ListInvitationsResponse'+    { _lirsInvitations = Nothing+    , _lirsNextToken = Nothing+    , _lirsResponseStatus = pResponseStatus_+    }+++-- | Undocumented member.+lirsInvitations :: Lens' ListInvitationsResponse [Invitation]+lirsInvitations = lens _lirsInvitations (\ s a -> s{_lirsInvitations = a}) . _Default . _Coerce++-- | Undocumented member.+lirsNextToken :: Lens' ListInvitationsResponse (Maybe Text)+lirsNextToken = lens _lirsNextToken (\ s a -> s{_lirsNextToken = a})++-- | -- | The response status code.+lirsResponseStatus :: Lens' ListInvitationsResponse Int+lirsResponseStatus = lens _lirsResponseStatus (\ s a -> s{_lirsResponseStatus = a})++instance NFData ListInvitationsResponse where
+ gen/Network/AWS/GuardDuty/ListMembers.hs view
@@ -0,0 +1,180 @@+{-# 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.GuardDuty.ListMembers+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists details about all member accounts for the current GuardDuty master account.+--+-- This operation returns paginated results.+module Network.AWS.GuardDuty.ListMembers+    (+    -- * Creating a Request+      listMembers+    , ListMembers+    -- * Request Lenses+    , lmOnlyAssociated+    , lmNextToken+    , lmMaxResults+    , lmDetectorId++    -- * Destructuring the Response+    , listMembersResponse+    , ListMembersResponse+    -- * Response Lenses+    , lmrsMembers+    , lmrsNextToken+    , lmrsResponseStatus+    ) where++import Network.AWS.GuardDuty.Types+import Network.AWS.GuardDuty.Types.Product+import Network.AWS.Lens+import Network.AWS.Pager+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | /See:/ 'listMembers' smart constructor.+data ListMembers = ListMembers'+  { _lmOnlyAssociated :: !(Maybe Text)+  , _lmNextToken      :: !(Maybe Text)+  , _lmMaxResults     :: !(Maybe Nat)+  , _lmDetectorId     :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ListMembers' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lmOnlyAssociated' - Specifies what member accounts the response is to include based on their relationship status with the master account. The default value is TRUE. If onlyAssociated is set to TRUE, the response will include member accounts whose relationship status with the master is set to Enabled, Disabled. If onlyAssociated is set to FALSE, the response will include all existing member accounts.+--+-- * 'lmNextToken' - You can use this parameter when paginating results. Set the value of this parameter to null on your first call to the ListMembers action. Subsequent calls to the action fill nextToken in the request with the value of NextToken from the previous response to continue listing data.+--+-- * 'lmMaxResults' - You can use this parameter to indicate the maximum number of items you want in the response. The default value is 1. The maximum value is 50.+--+-- * 'lmDetectorId' - The unique ID of the detector of the GuardDuty account whose members you want to list.+listMembers+    :: Text -- ^ 'lmDetectorId'+    -> ListMembers+listMembers pDetectorId_ =+  ListMembers'+    { _lmOnlyAssociated = Nothing+    , _lmNextToken = Nothing+    , _lmMaxResults = Nothing+    , _lmDetectorId = pDetectorId_+    }+++-- | Specifies what member accounts the response is to include based on their relationship status with the master account. The default value is TRUE. If onlyAssociated is set to TRUE, the response will include member accounts whose relationship status with the master is set to Enabled, Disabled. If onlyAssociated is set to FALSE, the response will include all existing member accounts.+lmOnlyAssociated :: Lens' ListMembers (Maybe Text)+lmOnlyAssociated = lens _lmOnlyAssociated (\ s a -> s{_lmOnlyAssociated = a})++-- | You can use this parameter when paginating results. Set the value of this parameter to null on your first call to the ListMembers action. Subsequent calls to the action fill nextToken in the request with the value of NextToken from the previous response to continue listing data.+lmNextToken :: Lens' ListMembers (Maybe Text)+lmNextToken = lens _lmNextToken (\ s a -> s{_lmNextToken = a})++-- | You can use this parameter to indicate the maximum number of items you want in the response. The default value is 1. The maximum value is 50.+lmMaxResults :: Lens' ListMembers (Maybe Natural)+lmMaxResults = lens _lmMaxResults (\ s a -> s{_lmMaxResults = a}) . mapping _Nat++-- | The unique ID of the detector of the GuardDuty account whose members you want to list.+lmDetectorId :: Lens' ListMembers Text+lmDetectorId = lens _lmDetectorId (\ s a -> s{_lmDetectorId = a})++instance AWSPager ListMembers where+        page rq rs+          | stop (rs ^. lmrsNextToken) = Nothing+          | stop (rs ^. lmrsMembers) = Nothing+          | otherwise =+            Just $ rq & lmNextToken .~ rs ^. lmrsNextToken++instance AWSRequest ListMembers where+        type Rs ListMembers = ListMembersResponse+        request = get guardDuty+        response+          = receiveJSON+              (\ s h x ->+                 ListMembersResponse' <$>+                   (x .?> "members" .!@ mempty) <*> (x .?> "nextToken")+                     <*> (pure (fromEnum s)))++instance Hashable ListMembers where++instance NFData ListMembers where++instance ToHeaders ListMembers where+        toHeaders+          = const+              (mconcat+                 ["Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToPath ListMembers where+        toPath ListMembers'{..}+          = mconcat+              ["/detector/", toBS _lmDetectorId, "/member"]++instance ToQuery ListMembers where+        toQuery ListMembers'{..}+          = mconcat+              ["onlyAssociated" =: _lmOnlyAssociated,+               "nextToken" =: _lmNextToken,+               "maxResults" =: _lmMaxResults]++-- | /See:/ 'listMembersResponse' smart constructor.+data ListMembersResponse = ListMembersResponse'+  { _lmrsMembers        :: !(Maybe [Member])+  , _lmrsNextToken      :: !(Maybe Text)+  , _lmrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ListMembersResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lmrsMembers' - Undocumented member.+--+-- * 'lmrsNextToken' - Undocumented member.+--+-- * 'lmrsResponseStatus' - -- | The response status code.+listMembersResponse+    :: Int -- ^ 'lmrsResponseStatus'+    -> ListMembersResponse+listMembersResponse pResponseStatus_ =+  ListMembersResponse'+    { _lmrsMembers = Nothing+    , _lmrsNextToken = Nothing+    , _lmrsResponseStatus = pResponseStatus_+    }+++-- | Undocumented member.+lmrsMembers :: Lens' ListMembersResponse [Member]+lmrsMembers = lens _lmrsMembers (\ s a -> s{_lmrsMembers = a}) . _Default . _Coerce++-- | Undocumented member.+lmrsNextToken :: Lens' ListMembersResponse (Maybe Text)+lmrsNextToken = lens _lmrsNextToken (\ s a -> s{_lmrsNextToken = a})++-- | -- | The response status code.+lmrsResponseStatus :: Lens' ListMembersResponse Int+lmrsResponseStatus = lens _lmrsResponseStatus (\ s a -> s{_lmrsResponseStatus = a})++instance NFData ListMembersResponse where
+ gen/Network/AWS/GuardDuty/ListThreatIntelSets.hs view
@@ -0,0 +1,173 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.GuardDuty.ListThreatIntelSets+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists the ThreatIntelSets of the GuardDuty service specified by the detector ID.+--+-- This operation returns paginated results.+module Network.AWS.GuardDuty.ListThreatIntelSets+    (+    -- * Creating a Request+      listThreatIntelSets+    , ListThreatIntelSets+    -- * Request Lenses+    , ltisNextToken+    , ltisMaxResults+    , ltisDetectorId++    -- * Destructuring the Response+    , listThreatIntelSetsResponse+    , ListThreatIntelSetsResponse+    -- * Response Lenses+    , ltisrsThreatIntelSetIds+    , ltisrsNextToken+    , ltisrsResponseStatus+    ) where++import Network.AWS.GuardDuty.Types+import Network.AWS.GuardDuty.Types.Product+import Network.AWS.Lens+import Network.AWS.Pager+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | /See:/ 'listThreatIntelSets' smart constructor.+data ListThreatIntelSets = ListThreatIntelSets'+  { _ltisNextToken  :: !(Maybe Text)+  , _ltisMaxResults :: !(Maybe Nat)+  , _ltisDetectorId :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ListThreatIntelSets' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ltisNextToken' - Pagination token to start retrieving threat intel sets from.+--+-- * 'ltisMaxResults' - You can use this parameter to indicate the maximum number of items that you want in the response. The default value is 7. The maximum value is 7.+--+-- * 'ltisDetectorId' - The detectorID that specifies the GuardDuty service whose ThreatIntelSets you want to list.+listThreatIntelSets+    :: Text -- ^ 'ltisDetectorId'+    -> ListThreatIntelSets+listThreatIntelSets pDetectorId_ =+  ListThreatIntelSets'+    { _ltisNextToken = Nothing+    , _ltisMaxResults = Nothing+    , _ltisDetectorId = pDetectorId_+    }+++-- | Pagination token to start retrieving threat intel sets from.+ltisNextToken :: Lens' ListThreatIntelSets (Maybe Text)+ltisNextToken = lens _ltisNextToken (\ s a -> s{_ltisNextToken = a})++-- | You can use this parameter to indicate the maximum number of items that you want in the response. The default value is 7. The maximum value is 7.+ltisMaxResults :: Lens' ListThreatIntelSets (Maybe Natural)+ltisMaxResults = lens _ltisMaxResults (\ s a -> s{_ltisMaxResults = a}) . mapping _Nat++-- | The detectorID that specifies the GuardDuty service whose ThreatIntelSets you want to list.+ltisDetectorId :: Lens' ListThreatIntelSets Text+ltisDetectorId = lens _ltisDetectorId (\ s a -> s{_ltisDetectorId = a})++instance AWSPager ListThreatIntelSets where+        page rq rs+          | stop (rs ^. ltisrsNextToken) = Nothing+          | stop (rs ^. ltisrsThreatIntelSetIds) = Nothing+          | otherwise =+            Just $ rq & ltisNextToken .~ rs ^. ltisrsNextToken++instance AWSRequest ListThreatIntelSets where+        type Rs ListThreatIntelSets =+             ListThreatIntelSetsResponse+        request = get guardDuty+        response+          = receiveJSON+              (\ s h x ->+                 ListThreatIntelSetsResponse' <$>+                   (x .?> "threatIntelSetIds" .!@ mempty) <*>+                     (x .?> "nextToken")+                     <*> (pure (fromEnum s)))++instance Hashable ListThreatIntelSets where++instance NFData ListThreatIntelSets where++instance ToHeaders ListThreatIntelSets where+        toHeaders+          = const+              (mconcat+                 ["Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToPath ListThreatIntelSets where+        toPath ListThreatIntelSets'{..}+          = mconcat+              ["/detector/", toBS _ltisDetectorId,+               "/threatintelset"]++instance ToQuery ListThreatIntelSets where+        toQuery ListThreatIntelSets'{..}+          = mconcat+              ["nextToken" =: _ltisNextToken,+               "maxResults" =: _ltisMaxResults]++-- | /See:/ 'listThreatIntelSetsResponse' smart constructor.+data ListThreatIntelSetsResponse = ListThreatIntelSetsResponse'+  { _ltisrsThreatIntelSetIds :: !(Maybe [Text])+  , _ltisrsNextToken         :: !(Maybe Text)+  , _ltisrsResponseStatus    :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ListThreatIntelSetsResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ltisrsThreatIntelSetIds' - Undocumented member.+--+-- * 'ltisrsNextToken' - Undocumented member.+--+-- * 'ltisrsResponseStatus' - -- | The response status code.+listThreatIntelSetsResponse+    :: Int -- ^ 'ltisrsResponseStatus'+    -> ListThreatIntelSetsResponse+listThreatIntelSetsResponse pResponseStatus_ =+  ListThreatIntelSetsResponse'+    { _ltisrsThreatIntelSetIds = Nothing+    , _ltisrsNextToken = Nothing+    , _ltisrsResponseStatus = pResponseStatus_+    }+++-- | Undocumented member.+ltisrsThreatIntelSetIds :: Lens' ListThreatIntelSetsResponse [Text]+ltisrsThreatIntelSetIds = lens _ltisrsThreatIntelSetIds (\ s a -> s{_ltisrsThreatIntelSetIds = a}) . _Default . _Coerce++-- | Undocumented member.+ltisrsNextToken :: Lens' ListThreatIntelSetsResponse (Maybe Text)+ltisrsNextToken = lens _ltisrsNextToken (\ s a -> s{_ltisrsNextToken = a})++-- | -- | The response status code.+ltisrsResponseStatus :: Lens' ListThreatIntelSetsResponse Int+ltisrsResponseStatus = lens _ltisrsResponseStatus (\ s a -> s{_ltisrsResponseStatus = a})++instance NFData ListThreatIntelSetsResponse where
+ gen/Network/AWS/GuardDuty/StartMonitoringMembers.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.GuardDuty.StartMonitoringMembers+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Re-enables GuardDuty to monitor findings of the member accounts specified by the account IDs. A master GuardDuty account can run this command after disabling GuardDuty from monitoring these members' findings by running StopMonitoringMembers.+module Network.AWS.GuardDuty.StartMonitoringMembers+    (+    -- * Creating a Request+      startMonitoringMembers+    , StartMonitoringMembers+    -- * Request Lenses+    , sAccountIds+    , sDetectorId++    -- * Destructuring the Response+    , startMonitoringMembersResponse+    , StartMonitoringMembersResponse+    -- * Response Lenses+    , srsUnprocessedAccounts+    , srsResponseStatus+    ) where++import Network.AWS.GuardDuty.Types+import Network.AWS.GuardDuty.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | StartMonitoringMembers request body.+--+-- /See:/ 'startMonitoringMembers' smart constructor.+data StartMonitoringMembers = StartMonitoringMembers'+  { _sAccountIds :: !(Maybe [Text])+  , _sDetectorId :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'StartMonitoringMembers' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sAccountIds' - A list of account IDs of the GuardDuty member accounts whose findings you want the master account to monitor.+--+-- * 'sDetectorId' - The unique ID of the detector of the GuardDuty account whom you want to re-enable to monitor members' findings.+startMonitoringMembers+    :: Text -- ^ 'sDetectorId'+    -> StartMonitoringMembers+startMonitoringMembers pDetectorId_ =+  StartMonitoringMembers' {_sAccountIds = Nothing, _sDetectorId = pDetectorId_}+++-- | A list of account IDs of the GuardDuty member accounts whose findings you want the master account to monitor.+sAccountIds :: Lens' StartMonitoringMembers [Text]+sAccountIds = lens _sAccountIds (\ s a -> s{_sAccountIds = a}) . _Default . _Coerce++-- | The unique ID of the detector of the GuardDuty account whom you want to re-enable to monitor members' findings.+sDetectorId :: Lens' StartMonitoringMembers Text+sDetectorId = lens _sDetectorId (\ s a -> s{_sDetectorId = a})++instance AWSRequest StartMonitoringMembers where+        type Rs StartMonitoringMembers =+             StartMonitoringMembersResponse+        request = postJSON guardDuty+        response+          = receiveJSON+              (\ s h x ->+                 StartMonitoringMembersResponse' <$>+                   (x .?> "unprocessedAccounts" .!@ mempty) <*>+                     (pure (fromEnum s)))++instance Hashable StartMonitoringMembers where++instance NFData StartMonitoringMembers where++instance ToHeaders StartMonitoringMembers where+        toHeaders+          = const+              (mconcat+                 ["Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON StartMonitoringMembers where+        toJSON StartMonitoringMembers'{..}+          = object+              (catMaybes [("accountIds" .=) <$> _sAccountIds])++instance ToPath StartMonitoringMembers where+        toPath StartMonitoringMembers'{..}+          = mconcat+              ["/detector/", toBS _sDetectorId, "/member/start"]++instance ToQuery StartMonitoringMembers where+        toQuery = const mempty++-- | /See:/ 'startMonitoringMembersResponse' smart constructor.+data StartMonitoringMembersResponse = StartMonitoringMembersResponse'+  { _srsUnprocessedAccounts :: !(Maybe [UnprocessedAccount])+  , _srsResponseStatus      :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'StartMonitoringMembersResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'srsUnprocessedAccounts' - A list of objects containing the unprocessed account and a result string explaining why it was unprocessed.+--+-- * 'srsResponseStatus' - -- | The response status code.+startMonitoringMembersResponse+    :: Int -- ^ 'srsResponseStatus'+    -> StartMonitoringMembersResponse+startMonitoringMembersResponse pResponseStatus_ =+  StartMonitoringMembersResponse'+    {_srsUnprocessedAccounts = Nothing, _srsResponseStatus = pResponseStatus_}+++-- | A list of objects containing the unprocessed account and a result string explaining why it was unprocessed.+srsUnprocessedAccounts :: Lens' StartMonitoringMembersResponse [UnprocessedAccount]+srsUnprocessedAccounts = lens _srsUnprocessedAccounts (\ s a -> s{_srsUnprocessedAccounts = a}) . _Default . _Coerce++-- | -- | The response status code.+srsResponseStatus :: Lens' StartMonitoringMembersResponse Int+srsResponseStatus = lens _srsResponseStatus (\ s a -> s{_srsResponseStatus = a})++instance NFData StartMonitoringMembersResponse where
+ gen/Network/AWS/GuardDuty/StopMonitoringMembers.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.GuardDuty.StopMonitoringMembers+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Disables GuardDuty from monitoring findings of the member accounts specified by the account IDs. After running this command, a master GuardDuty account can run StartMonitoringMembers to re-enable GuardDuty to monitor these members’ findings.+module Network.AWS.GuardDuty.StopMonitoringMembers+    (+    -- * Creating a Request+      stopMonitoringMembers+    , StopMonitoringMembers+    -- * Request Lenses+    , smmAccountIds+    , smmDetectorId++    -- * Destructuring the Response+    , stopMonitoringMembersResponse+    , StopMonitoringMembersResponse+    -- * Response Lenses+    , smmrsUnprocessedAccounts+    , smmrsResponseStatus+    ) where++import Network.AWS.GuardDuty.Types+import Network.AWS.GuardDuty.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | StopMonitoringMembers request body.+--+-- /See:/ 'stopMonitoringMembers' smart constructor.+data StopMonitoringMembers = StopMonitoringMembers'+  { _smmAccountIds :: !(Maybe [Text])+  , _smmDetectorId :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'StopMonitoringMembers' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'smmAccountIds' - A list of account IDs of the GuardDuty member accounts whose findings you want the master account to stop monitoring.+--+-- * 'smmDetectorId' - The unique ID of the detector of the GuardDuty account that you want to stop from monitor members' findings.+stopMonitoringMembers+    :: Text -- ^ 'smmDetectorId'+    -> StopMonitoringMembers+stopMonitoringMembers pDetectorId_ =+  StopMonitoringMembers'+    {_smmAccountIds = Nothing, _smmDetectorId = pDetectorId_}+++-- | A list of account IDs of the GuardDuty member accounts whose findings you want the master account to stop monitoring.+smmAccountIds :: Lens' StopMonitoringMembers [Text]+smmAccountIds = lens _smmAccountIds (\ s a -> s{_smmAccountIds = a}) . _Default . _Coerce++-- | The unique ID of the detector of the GuardDuty account that you want to stop from monitor members' findings.+smmDetectorId :: Lens' StopMonitoringMembers Text+smmDetectorId = lens _smmDetectorId (\ s a -> s{_smmDetectorId = a})++instance AWSRequest StopMonitoringMembers where+        type Rs StopMonitoringMembers =+             StopMonitoringMembersResponse+        request = postJSON guardDuty+        response+          = receiveJSON+              (\ s h x ->+                 StopMonitoringMembersResponse' <$>+                   (x .?> "unprocessedAccounts" .!@ mempty) <*>+                     (pure (fromEnum s)))++instance Hashable StopMonitoringMembers where++instance NFData StopMonitoringMembers where++instance ToHeaders StopMonitoringMembers where+        toHeaders+          = const+              (mconcat+                 ["Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON StopMonitoringMembers where+        toJSON StopMonitoringMembers'{..}+          = object+              (catMaybes [("accountIds" .=) <$> _smmAccountIds])++instance ToPath StopMonitoringMembers where+        toPath StopMonitoringMembers'{..}+          = mconcat+              ["/detector/", toBS _smmDetectorId, "/member/stop"]++instance ToQuery StopMonitoringMembers where+        toQuery = const mempty++-- | /See:/ 'stopMonitoringMembersResponse' smart constructor.+data StopMonitoringMembersResponse = StopMonitoringMembersResponse'+  { _smmrsUnprocessedAccounts :: !(Maybe [UnprocessedAccount])+  , _smmrsResponseStatus      :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'StopMonitoringMembersResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'smmrsUnprocessedAccounts' - A list of objects containing the unprocessed account and a result string explaining why it was unprocessed.+--+-- * 'smmrsResponseStatus' - -- | The response status code.+stopMonitoringMembersResponse+    :: Int -- ^ 'smmrsResponseStatus'+    -> StopMonitoringMembersResponse+stopMonitoringMembersResponse pResponseStatus_ =+  StopMonitoringMembersResponse'+    { _smmrsUnprocessedAccounts = Nothing+    , _smmrsResponseStatus = pResponseStatus_+    }+++-- | A list of objects containing the unprocessed account and a result string explaining why it was unprocessed.+smmrsUnprocessedAccounts :: Lens' StopMonitoringMembersResponse [UnprocessedAccount]+smmrsUnprocessedAccounts = lens _smmrsUnprocessedAccounts (\ s a -> s{_smmrsUnprocessedAccounts = a}) . _Default . _Coerce++-- | -- | The response status code.+smmrsResponseStatus :: Lens' StopMonitoringMembersResponse Int+smmrsResponseStatus = lens _smmrsResponseStatus (\ s a -> s{_smmrsResponseStatus = a})++instance NFData StopMonitoringMembersResponse where
+ gen/Network/AWS/GuardDuty/Types.hs view
@@ -0,0 +1,372 @@+{-# LANGUAGE OverloadedStrings #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.GuardDuty.Types+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Network.AWS.GuardDuty.Types+    (+    -- * Service Configuration+      guardDuty++    -- * Errors+    , _InternalServerErrorException+    , _BadRequestException++    -- * DetectorStatus+    , DetectorStatus (..)++    -- * Feedback+    , Feedback (..)++    -- * FilterAction+    , FilterAction (..)++    -- * FindingStatisticType+    , FindingStatisticType (..)++    -- * IPSetFormat+    , IPSetFormat (..)++    -- * IPSetStatus+    , IPSetStatus (..)++    -- * OrderBy+    , OrderBy (..)++    -- * ThreatIntelSetFormat+    , ThreatIntelSetFormat (..)++    -- * ThreatIntelSetStatus+    , ThreatIntelSetStatus (..)++    -- * AWSAPICallAction+    , AWSAPICallAction+    , awsAPICallAction+    , aacaRemoteIPDetails+    , aacaCallerType+    , aacaDomainDetails+    , aacaServiceName+    , aacaAPI++    -- * AccessKeyDetails+    , AccessKeyDetails+    , accessKeyDetails+    , akdPrincipalId+    , akdUserName+    , akdAccessKeyId+    , akdUserType++    -- * AccountDetail+    , AccountDetail+    , accountDetail+    , adEmail+    , adAccountId++    -- * Action+    , Action+    , action+    , aNetworkConnectionAction+    , aPortProbeAction+    , aActionType+    , aDNSRequestAction+    , aAWSAPICallAction++    -- * City+    , City+    , city+    , cCityName++    -- * Condition+    , Condition+    , condition+    , cEQ+    , cLte+    , cGT+    , cNeq+    , cLT+    , cGte++    -- * Country+    , Country+    , country+    , cCountryName+    , cCountryCode++    -- * DNSRequestAction+    , DNSRequestAction+    , dnsRequestAction+    , draDomain++    -- * DomainDetails+    , DomainDetails+    , domainDetails++    -- * Finding+    , Finding+    , finding+    , fService+    , fConfidence+    , fPartition+    , fTitle+    , fDescription+    , fAccountId+    , fSchemaVersion+    , fCreatedAt+    , fResource+    , fSeverity+    , fUpdatedAt+    , fType+    , fRegion+    , fId+    , fARN++    -- * FindingCriteria+    , FindingCriteria+    , findingCriteria+    , fcCriterion++    -- * FindingStatistics+    , FindingStatistics+    , findingStatistics+    , fsCountBySeverity++    -- * GeoLocation+    , GeoLocation+    , geoLocation+    , glLat+    , glLon++    -- * IAMInstanceProfile+    , IAMInstanceProfile+    , iamInstanceProfile+    , iapARN+    , iapId++    -- * InstanceDetails+    , InstanceDetails+    , instanceDetails+    , idInstanceId+    , idPlatform+    , idLaunchTime+    , idNetworkInterfaces+    , idInstanceType+    , idAvailabilityZone+    , idIAMInstanceProfile+    , idImageId+    , idProductCodes+    , idInstanceState+    , idTags+    , idImageDescription++    -- * Invitation+    , Invitation+    , invitation+    , iInvitedAt+    , iRelationshipStatus+    , iInvitationId+    , iAccountId++    -- * LocalPortDetails+    , LocalPortDetails+    , localPortDetails+    , lpdPortName+    , lpdPort++    -- * Master+    , Master+    , master+    , masInvitedAt+    , masRelationshipStatus+    , masInvitationId+    , masAccountId++    -- * Member+    , Member+    , member+    , mInvitedAt+    , mDetectorId+    , mEmail+    , mAccountId+    , mMasterId+    , mUpdatedAt+    , mRelationshipStatus++    -- * NetworkConnectionAction+    , NetworkConnectionAction+    , networkConnectionAction+    , ncaRemoteIPDetails+    , ncaProtocol+    , ncaRemotePortDetails+    , ncaBlocked+    , ncaConnectionDirection+    , ncaLocalPortDetails++    -- * NetworkInterface+    , NetworkInterface+    , networkInterface+    , niPrivateIPAddresses+    , niPublicDNSName+    , niSecurityGroups+    , niVPCId+    , niNetworkInterfaceId+    , niSubnetId+    , niPrivateIPAddress+    , niPublicIP+    , niPrivateDNSName+    , niIPv6Addresses++    -- * Organization+    , Organization+    , organization+    , oOrg+    , oASNOrg+    , oASN+    , oIsp++    -- * PortProbeAction+    , PortProbeAction+    , portProbeAction+    , ppaPortProbeDetails+    , ppaBlocked++    -- * PortProbeDetail+    , PortProbeDetail+    , portProbeDetail+    , ppdRemoteIPDetails+    , ppdLocalPortDetails++    -- * PrivateIPAddressDetails+    , PrivateIPAddressDetails+    , privateIPAddressDetails+    , piadPrivateIPAddress+    , piadPrivateDNSName++    -- * ProductCode+    , ProductCode+    , productCode+    , pcProductType+    , pcCode++    -- * RemoteIPDetails+    , RemoteIPDetails+    , remoteIPDetails+    , ridCountry+    , ridCity+    , ridIPAddressV4+    , ridGeoLocation+    , ridOrganization++    -- * RemotePortDetails+    , RemotePortDetails+    , remotePortDetails+    , rpdPortName+    , rpdPort++    -- * Resource+    , Resource+    , resource+    , rResourceType+    , rInstanceDetails+    , rAccessKeyDetails++    -- * SecurityGroup+    , SecurityGroup+    , securityGroup+    , sgGroupId+    , sgGroupName++    -- * ServiceInfo+    , ServiceInfo+    , serviceInfo+    , siCount+    , siEventFirstSeen+    , siAction+    , siDetectorId+    , siServiceName+    , siUserFeedback+    , siEventLastSeen+    , siResourceRole+    , siArchived++    -- * SortCriteria+    , SortCriteria+    , sortCriteria+    , scOrderBy+    , scAttributeName++    -- * Tag+    , Tag+    , tag+    , tagValue+    , tagKey++    -- * UnprocessedAccount+    , UnprocessedAccount+    , unprocessedAccount+    , uaAccountId+    , uaResult+    ) where++import Network.AWS.GuardDuty.Types.Product+import Network.AWS.GuardDuty.Types.Sum+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Sign.V4++-- | API version @2017-11-28@ of the Amazon GuardDuty SDK configuration.+guardDuty :: Service+guardDuty =+  Service+    { _svcAbbrev = "GuardDuty"+    , _svcSigner = v4+    , _svcPrefix = "guardduty"+    , _svcVersion = "2017-11-28"+    , _svcEndpoint = defaultEndpoint guardDuty+    , _svcTimeout = Just 70+    , _svcCheck = statusSuccess+    , _svcError = parseJSONError "GuardDuty"+    , _svcRetry = retry+    }+  where+    retry =+      Exponential+        { _retryBase = 5.0e-2+        , _retryGrowth = 2+        , _retryAttempts = 5+        , _retryCheck = check+        }+    check e+      | has (hasCode "ThrottledException" . hasStatus 400) e =+        Just "throttled_exception"+      | has (hasStatus 429) e = Just "too_many_requests"+      | has (hasCode "ThrottlingException" . hasStatus 400) e =+        Just "throttling_exception"+      | has (hasCode "Throttling" . hasStatus 400) e = Just "throttling"+      | has (hasStatus 504) e = Just "gateway_timeout"+      | has (hasCode "RequestThrottledException" . hasStatus 400) e =+        Just "request_throttled_exception"+      | has (hasStatus 502) e = Just "bad_gateway"+      | has (hasStatus 503) e = Just "service_unavailable"+      | has (hasStatus 500) e = Just "general_server_error"+      | has (hasStatus 509) e = Just "limit_exceeded"+      | otherwise = Nothing+++-- | Error response object.+_InternalServerErrorException :: AsError a => Getting (First ServiceError) a ServiceError+_InternalServerErrorException =+  _MatchServiceError guardDuty "InternalServerErrorException" . hasStatus 500+++-- | Error response object.+_BadRequestException :: AsError a => Getting (First ServiceError) a ServiceError+_BadRequestException =+  _MatchServiceError guardDuty "BadRequestException" . hasStatus 400+
+ gen/Network/AWS/GuardDuty/Types/Product.hs view
@@ -0,0 +1,2052 @@+{-# 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.GuardDuty.Types.Product+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Network.AWS.GuardDuty.Types.Product where++import Network.AWS.GuardDuty.Types.Sum+import Network.AWS.Lens+import Network.AWS.Prelude++-- | Information about the AWS_API_CALL action described in this finding.+--+-- /See:/ 'awsAPICallAction' smart constructor.+data AWSAPICallAction = AWSAPICallAction'+  { _aacaRemoteIPDetails :: !(Maybe RemoteIPDetails)+  , _aacaCallerType      :: !(Maybe Text)+  , _aacaDomainDetails   :: !(Maybe DomainDetails)+  , _aacaServiceName     :: !(Maybe Text)+  , _aacaAPI             :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'AWSAPICallAction' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'aacaRemoteIPDetails' - Remote IP information of the connection.+--+-- * 'aacaCallerType' - AWS API caller type.+--+-- * 'aacaDomainDetails' - Domain information for the AWS API call.+--+-- * 'aacaServiceName' - AWS service name whose API was invoked.+--+-- * 'aacaAPI' - AWS API name.+awsAPICallAction+    :: AWSAPICallAction+awsAPICallAction =+  AWSAPICallAction'+    { _aacaRemoteIPDetails = Nothing+    , _aacaCallerType = Nothing+    , _aacaDomainDetails = Nothing+    , _aacaServiceName = Nothing+    , _aacaAPI = Nothing+    }+++-- | Remote IP information of the connection.+aacaRemoteIPDetails :: Lens' AWSAPICallAction (Maybe RemoteIPDetails)+aacaRemoteIPDetails = lens _aacaRemoteIPDetails (\ s a -> s{_aacaRemoteIPDetails = a})++-- | AWS API caller type.+aacaCallerType :: Lens' AWSAPICallAction (Maybe Text)+aacaCallerType = lens _aacaCallerType (\ s a -> s{_aacaCallerType = a})++-- | Domain information for the AWS API call.+aacaDomainDetails :: Lens' AWSAPICallAction (Maybe DomainDetails)+aacaDomainDetails = lens _aacaDomainDetails (\ s a -> s{_aacaDomainDetails = a})++-- | AWS service name whose API was invoked.+aacaServiceName :: Lens' AWSAPICallAction (Maybe Text)+aacaServiceName = lens _aacaServiceName (\ s a -> s{_aacaServiceName = a})++-- | AWS API name.+aacaAPI :: Lens' AWSAPICallAction (Maybe Text)+aacaAPI = lens _aacaAPI (\ s a -> s{_aacaAPI = a})++instance FromJSON AWSAPICallAction where+        parseJSON+          = withObject "AWSAPICallAction"+              (\ x ->+                 AWSAPICallAction' <$>+                   (x .:? "remoteIpDetails") <*> (x .:? "callerType")+                     <*> (x .:? "domainDetails")+                     <*> (x .:? "serviceName")+                     <*> (x .:? "api"))++instance Hashable AWSAPICallAction where++instance NFData AWSAPICallAction where++-- | The IAM access key details (IAM user information) of a user that engaged in the activity that prompted GuardDuty to generate a finding.+--+-- /See:/ 'accessKeyDetails' smart constructor.+data AccessKeyDetails = AccessKeyDetails'+  { _akdPrincipalId :: !(Maybe Text)+  , _akdUserName    :: !(Maybe Text)+  , _akdAccessKeyId :: !(Maybe Text)+  , _akdUserType    :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'AccessKeyDetails' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'akdPrincipalId' - The principal ID of the user.+--+-- * 'akdUserName' - The name of the user.+--+-- * 'akdAccessKeyId' - Access key ID of the user.+--+-- * 'akdUserType' - The type of the user.+accessKeyDetails+    :: AccessKeyDetails+accessKeyDetails =+  AccessKeyDetails'+    { _akdPrincipalId = Nothing+    , _akdUserName = Nothing+    , _akdAccessKeyId = Nothing+    , _akdUserType = Nothing+    }+++-- | The principal ID of the user.+akdPrincipalId :: Lens' AccessKeyDetails (Maybe Text)+akdPrincipalId = lens _akdPrincipalId (\ s a -> s{_akdPrincipalId = a})++-- | The name of the user.+akdUserName :: Lens' AccessKeyDetails (Maybe Text)+akdUserName = lens _akdUserName (\ s a -> s{_akdUserName = a})++-- | Access key ID of the user.+akdAccessKeyId :: Lens' AccessKeyDetails (Maybe Text)+akdAccessKeyId = lens _akdAccessKeyId (\ s a -> s{_akdAccessKeyId = a})++-- | The type of the user.+akdUserType :: Lens' AccessKeyDetails (Maybe Text)+akdUserType = lens _akdUserType (\ s a -> s{_akdUserType = a})++instance FromJSON AccessKeyDetails where+        parseJSON+          = withObject "AccessKeyDetails"+              (\ x ->+                 AccessKeyDetails' <$>+                   (x .:? "principalId") <*> (x .:? "userName") <*>+                     (x .:? "accessKeyId")+                     <*> (x .:? "userType"))++instance Hashable AccessKeyDetails where++instance NFData AccessKeyDetails where++-- | An object containing the member's accountId and email address.+--+-- /See:/ 'accountDetail' smart constructor.+data AccountDetail = AccountDetail'+  { _adEmail     :: !Text+  , _adAccountId :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'AccountDetail' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'adEmail' - Member account's email address.+--+-- * 'adAccountId' - Member account ID.+accountDetail+    :: Text -- ^ 'adEmail'+    -> Text -- ^ 'adAccountId'+    -> AccountDetail+accountDetail pEmail_ pAccountId_ =+  AccountDetail' {_adEmail = pEmail_, _adAccountId = pAccountId_}+++-- | Member account's email address.+adEmail :: Lens' AccountDetail Text+adEmail = lens _adEmail (\ s a -> s{_adEmail = a})++-- | Member account ID.+adAccountId :: Lens' AccountDetail Text+adAccountId = lens _adAccountId (\ s a -> s{_adAccountId = a})++instance Hashable AccountDetail where++instance NFData AccountDetail where++instance ToJSON AccountDetail where+        toJSON AccountDetail'{..}+          = object+              (catMaybes+                 [Just ("email" .= _adEmail),+                  Just ("accountId" .= _adAccountId)])++-- | Information about the activity described in a finding.+--+-- /See:/ 'action' smart constructor.+data Action = Action'+  { _aNetworkConnectionAction :: !(Maybe NetworkConnectionAction)+  , _aPortProbeAction         :: !(Maybe PortProbeAction)+  , _aActionType              :: !(Maybe Text)+  , _aDNSRequestAction        :: !(Maybe DNSRequestAction)+  , _aAWSAPICallAction        :: !(Maybe AWSAPICallAction)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Action' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'aNetworkConnectionAction' - Information about the NETWORK_CONNECTION action described in this finding.+--+-- * 'aPortProbeAction' - Information about the PORT_PROBE action described in this finding.+--+-- * 'aActionType' - GuardDuty Finding activity type.+--+-- * 'aDNSRequestAction' - Information about the DNS_REQUEST action described in this finding.+--+-- * 'aAWSAPICallAction' - Information about the AWS_API_CALL action described in this finding.+action+    :: Action+action =+  Action'+    { _aNetworkConnectionAction = Nothing+    , _aPortProbeAction = Nothing+    , _aActionType = Nothing+    , _aDNSRequestAction = Nothing+    , _aAWSAPICallAction = Nothing+    }+++-- | Information about the NETWORK_CONNECTION action described in this finding.+aNetworkConnectionAction :: Lens' Action (Maybe NetworkConnectionAction)+aNetworkConnectionAction = lens _aNetworkConnectionAction (\ s a -> s{_aNetworkConnectionAction = a})++-- | Information about the PORT_PROBE action described in this finding.+aPortProbeAction :: Lens' Action (Maybe PortProbeAction)+aPortProbeAction = lens _aPortProbeAction (\ s a -> s{_aPortProbeAction = a})++-- | GuardDuty Finding activity type.+aActionType :: Lens' Action (Maybe Text)+aActionType = lens _aActionType (\ s a -> s{_aActionType = a})++-- | Information about the DNS_REQUEST action described in this finding.+aDNSRequestAction :: Lens' Action (Maybe DNSRequestAction)+aDNSRequestAction = lens _aDNSRequestAction (\ s a -> s{_aDNSRequestAction = a})++-- | Information about the AWS_API_CALL action described in this finding.+aAWSAPICallAction :: Lens' Action (Maybe AWSAPICallAction)+aAWSAPICallAction = lens _aAWSAPICallAction (\ s a -> s{_aAWSAPICallAction = a})++instance FromJSON Action where+        parseJSON+          = withObject "Action"+              (\ x ->+                 Action' <$>+                   (x .:? "networkConnectionAction") <*>+                     (x .:? "portProbeAction")+                     <*> (x .:? "actionType")+                     <*> (x .:? "dnsRequestAction")+                     <*> (x .:? "awsApiCallAction"))++instance Hashable Action where++instance NFData Action where++-- | City information of the remote IP address.+--+-- /See:/ 'city' smart constructor.+newtype City = City'+  { _cCityName :: Maybe Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'City' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cCityName' - City name of the remote IP address.+city+    :: City+city = City' {_cCityName = Nothing}+++-- | City name of the remote IP address.+cCityName :: Lens' City (Maybe Text)+cCityName = lens _cCityName (\ s a -> s{_cCityName = a})++instance FromJSON City where+        parseJSON+          = withObject "City"+              (\ x -> City' <$> (x .:? "cityName"))++instance Hashable City where++instance NFData City where++-- | Finding attribute (for example, accountId) for which conditions and values must be specified when querying findings.+--+-- /See:/ 'condition' smart constructor.+data Condition = Condition'+  { _cEQ  :: !(Maybe [Text])+  , _cLte :: !(Maybe Int)+  , _cGT  :: !(Maybe Int)+  , _cNeq :: !(Maybe [Text])+  , _cLT  :: !(Maybe Int)+  , _cGte :: !(Maybe Int)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Condition' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cEQ' - Represents the equal condition to be applied to a single field when querying for findings.+--+-- * 'cLte' - Represents the less than equal condition to be applied to a single field when querying for findings.+--+-- * 'cGT' - Represents the greater than condition to be applied to a single field when querying for findings.+--+-- * 'cNeq' - Represents the not equal condition to be applied to a single field when querying for findings.+--+-- * 'cLT' - Represents the less than condition to be applied to a single field when querying for findings.+--+-- * 'cGte' - Represents the greater than equal condition to be applied to a single field when querying for findings.+condition+    :: Condition+condition =+  Condition'+    { _cEQ = Nothing+    , _cLte = Nothing+    , _cGT = Nothing+    , _cNeq = Nothing+    , _cLT = Nothing+    , _cGte = Nothing+    }+++-- | Represents the equal condition to be applied to a single field when querying for findings.+cEQ :: Lens' Condition [Text]+cEQ = lens _cEQ (\ s a -> s{_cEQ = a}) . _Default . _Coerce++-- | Represents the less than equal condition to be applied to a single field when querying for findings.+cLte :: Lens' Condition (Maybe Int)+cLte = lens _cLte (\ s a -> s{_cLte = a})++-- | Represents the greater than condition to be applied to a single field when querying for findings.+cGT :: Lens' Condition (Maybe Int)+cGT = lens _cGT (\ s a -> s{_cGT = a})++-- | Represents the not equal condition to be applied to a single field when querying for findings.+cNeq :: Lens' Condition [Text]+cNeq = lens _cNeq (\ s a -> s{_cNeq = a}) . _Default . _Coerce++-- | Represents the less than condition to be applied to a single field when querying for findings.+cLT :: Lens' Condition (Maybe Int)+cLT = lens _cLT (\ s a -> s{_cLT = a})++-- | Represents the greater than equal condition to be applied to a single field when querying for findings.+cGte :: Lens' Condition (Maybe Int)+cGte = lens _cGte (\ s a -> s{_cGte = a})++instance FromJSON Condition where+        parseJSON+          = withObject "Condition"+              (\ x ->+                 Condition' <$>+                   (x .:? "eq" .!= mempty) <*> (x .:? "lte") <*>+                     (x .:? "gt")+                     <*> (x .:? "neq" .!= mempty)+                     <*> (x .:? "lt")+                     <*> (x .:? "gte"))++instance Hashable Condition where++instance NFData Condition where++instance ToJSON Condition where+        toJSON Condition'{..}+          = object+              (catMaybes+                 [("eq" .=) <$> _cEQ, ("lte" .=) <$> _cLte,+                  ("gt" .=) <$> _cGT, ("neq" .=) <$> _cNeq,+                  ("lt" .=) <$> _cLT, ("gte" .=) <$> _cGte])++-- | Country information of the remote IP address.+--+-- /See:/ 'country' smart constructor.+data Country = Country'+  { _cCountryName :: !(Maybe Text)+  , _cCountryCode :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Country' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cCountryName' - Country name of the remote IP address.+--+-- * 'cCountryCode' - Country code of the remote IP address.+country+    :: Country+country = Country' {_cCountryName = Nothing, _cCountryCode = Nothing}+++-- | Country name of the remote IP address.+cCountryName :: Lens' Country (Maybe Text)+cCountryName = lens _cCountryName (\ s a -> s{_cCountryName = a})++-- | Country code of the remote IP address.+cCountryCode :: Lens' Country (Maybe Text)+cCountryCode = lens _cCountryCode (\ s a -> s{_cCountryCode = a})++instance FromJSON Country where+        parseJSON+          = withObject "Country"+              (\ x ->+                 Country' <$>+                   (x .:? "countryName") <*> (x .:? "countryCode"))++instance Hashable Country where++instance NFData Country where++-- | Information about the DNS_REQUEST action described in this finding.+--+-- /See:/ 'dnsRequestAction' smart constructor.+newtype DNSRequestAction = DNSRequestAction'+  { _draDomain :: Maybe Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DNSRequestAction' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'draDomain' - Domain information for the DNS request.+dnsRequestAction+    :: DNSRequestAction+dnsRequestAction = DNSRequestAction' {_draDomain = Nothing}+++-- | Domain information for the DNS request.+draDomain :: Lens' DNSRequestAction (Maybe Text)+draDomain = lens _draDomain (\ s a -> s{_draDomain = a})++instance FromJSON DNSRequestAction where+        parseJSON+          = withObject "DNSRequestAction"+              (\ x -> DNSRequestAction' <$> (x .:? "domain"))++instance Hashable DNSRequestAction where++instance NFData DNSRequestAction where++-- | Domain information for the AWS API call.+--+-- /See:/ 'domainDetails' smart constructor.+data DomainDetails =+  DomainDetails'+  deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DomainDetails' with the minimum fields required to make a request.+--+domainDetails+    :: DomainDetails+domainDetails = DomainDetails'+++instance FromJSON DomainDetails where+        parseJSON+          = withObject "DomainDetails"+              (\ x -> pure DomainDetails')++instance Hashable DomainDetails where++instance NFData DomainDetails where++-- | Representation of a abnormal or suspicious activity.+--+-- /See:/ 'finding' smart constructor.+data Finding = Finding'+  { _fService       :: !(Maybe ServiceInfo)+  , _fConfidence    :: !(Maybe Double)+  , _fPartition     :: !(Maybe Text)+  , _fTitle         :: !(Maybe Text)+  , _fDescription   :: !(Maybe Text)+  , _fAccountId     :: !Text+  , _fSchemaVersion :: !Text+  , _fCreatedAt     :: !Text+  , _fResource      :: !Resource+  , _fSeverity      :: !Double+  , _fUpdatedAt     :: !Text+  , _fType          :: !Text+  , _fRegion        :: !Text+  , _fId            :: !Text+  , _fARN           :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Finding' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'fService' - Additional information assigned to the generated finding by GuardDuty.+--+-- * 'fConfidence' - The confidence level of a finding.+--+-- * 'fPartition' - The AWS resource partition.+--+-- * 'fTitle' - The title of a finding.+--+-- * 'fDescription' - The description of a finding.+--+-- * 'fAccountId' - AWS account ID where the activity occurred that prompted GuardDuty to generate a finding.+--+-- * 'fSchemaVersion' - Findings' schema version.+--+-- * 'fCreatedAt' - The time stamp at which a finding was generated.+--+-- * 'fResource' - The AWS resource associated with the activity that prompted GuardDuty to generate a finding.+--+-- * 'fSeverity' - The severity of a finding.+--+-- * 'fUpdatedAt' - The time stamp at which a finding was last updated.+--+-- * 'fType' - The type of a finding described by the action.+--+-- * 'fRegion' - The AWS region where the activity occurred that prompted GuardDuty to generate a finding.+--+-- * 'fId' - The identifier that corresponds to a finding described by the action.+--+-- * 'fARN' - The ARN of a finding described by the action.+finding+    :: Text -- ^ 'fAccountId'+    -> Text -- ^ 'fSchemaVersion'+    -> Text -- ^ 'fCreatedAt'+    -> Resource -- ^ 'fResource'+    -> Double -- ^ 'fSeverity'+    -> Text -- ^ 'fUpdatedAt'+    -> Text -- ^ 'fType'+    -> Text -- ^ 'fRegion'+    -> Text -- ^ 'fId'+    -> Text -- ^ 'fARN'+    -> Finding+finding pAccountId_ pSchemaVersion_ pCreatedAt_ pResource_ pSeverity_ pUpdatedAt_ pType_ pRegion_ pId_ pARN_ =+  Finding'+    { _fService = Nothing+    , _fConfidence = Nothing+    , _fPartition = Nothing+    , _fTitle = Nothing+    , _fDescription = Nothing+    , _fAccountId = pAccountId_+    , _fSchemaVersion = pSchemaVersion_+    , _fCreatedAt = pCreatedAt_+    , _fResource = pResource_+    , _fSeverity = pSeverity_+    , _fUpdatedAt = pUpdatedAt_+    , _fType = pType_+    , _fRegion = pRegion_+    , _fId = pId_+    , _fARN = pARN_+    }+++-- | Additional information assigned to the generated finding by GuardDuty.+fService :: Lens' Finding (Maybe ServiceInfo)+fService = lens _fService (\ s a -> s{_fService = a})++-- | The confidence level of a finding.+fConfidence :: Lens' Finding (Maybe Double)+fConfidence = lens _fConfidence (\ s a -> s{_fConfidence = a})++-- | The AWS resource partition.+fPartition :: Lens' Finding (Maybe Text)+fPartition = lens _fPartition (\ s a -> s{_fPartition = a})++-- | The title of a finding.+fTitle :: Lens' Finding (Maybe Text)+fTitle = lens _fTitle (\ s a -> s{_fTitle = a})++-- | The description of a finding.+fDescription :: Lens' Finding (Maybe Text)+fDescription = lens _fDescription (\ s a -> s{_fDescription = a})++-- | AWS account ID where the activity occurred that prompted GuardDuty to generate a finding.+fAccountId :: Lens' Finding Text+fAccountId = lens _fAccountId (\ s a -> s{_fAccountId = a})++-- | Findings' schema version.+fSchemaVersion :: Lens' Finding Text+fSchemaVersion = lens _fSchemaVersion (\ s a -> s{_fSchemaVersion = a})++-- | The time stamp at which a finding was generated.+fCreatedAt :: Lens' Finding Text+fCreatedAt = lens _fCreatedAt (\ s a -> s{_fCreatedAt = a})++-- | The AWS resource associated with the activity that prompted GuardDuty to generate a finding.+fResource :: Lens' Finding Resource+fResource = lens _fResource (\ s a -> s{_fResource = a})++-- | The severity of a finding.+fSeverity :: Lens' Finding Double+fSeverity = lens _fSeverity (\ s a -> s{_fSeverity = a})++-- | The time stamp at which a finding was last updated.+fUpdatedAt :: Lens' Finding Text+fUpdatedAt = lens _fUpdatedAt (\ s a -> s{_fUpdatedAt = a})++-- | The type of a finding described by the action.+fType :: Lens' Finding Text+fType = lens _fType (\ s a -> s{_fType = a})++-- | The AWS region where the activity occurred that prompted GuardDuty to generate a finding.+fRegion :: Lens' Finding Text+fRegion = lens _fRegion (\ s a -> s{_fRegion = a})++-- | The identifier that corresponds to a finding described by the action.+fId :: Lens' Finding Text+fId = lens _fId (\ s a -> s{_fId = a})++-- | The ARN of a finding described by the action.+fARN :: Lens' Finding Text+fARN = lens _fARN (\ s a -> s{_fARN = a})++instance FromJSON Finding where+        parseJSON+          = withObject "Finding"+              (\ x ->+                 Finding' <$>+                   (x .:? "service") <*> (x .:? "confidence") <*>+                     (x .:? "partition")+                     <*> (x .:? "title")+                     <*> (x .:? "description")+                     <*> (x .: "accountId")+                     <*> (x .: "schemaVersion")+                     <*> (x .: "createdAt")+                     <*> (x .: "resource")+                     <*> (x .: "severity")+                     <*> (x .: "updatedAt")+                     <*> (x .: "type")+                     <*> (x .: "region")+                     <*> (x .: "id")+                     <*> (x .: "arn"))++instance Hashable Finding where++instance NFData Finding where++-- | Represents the criteria used for querying findings.+--+-- /See:/ 'findingCriteria' smart constructor.+newtype FindingCriteria = FindingCriteria'+  { _fcCriterion :: Maybe (Map Text Condition)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'FindingCriteria' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'fcCriterion' - Represents a map of finding properties that match specified conditions and values when querying findings.+findingCriteria+    :: FindingCriteria+findingCriteria = FindingCriteria' {_fcCriterion = Nothing}+++-- | Represents a map of finding properties that match specified conditions and values when querying findings.+fcCriterion :: Lens' FindingCriteria (HashMap Text Condition)+fcCriterion = lens _fcCriterion (\ s a -> s{_fcCriterion = a}) . _Default . _Map++instance FromJSON FindingCriteria where+        parseJSON+          = withObject "FindingCriteria"+              (\ x ->+                 FindingCriteria' <$> (x .:? "criterion" .!= mempty))++instance Hashable FindingCriteria where++instance NFData FindingCriteria where++instance ToJSON FindingCriteria where+        toJSON FindingCriteria'{..}+          = object+              (catMaybes [("criterion" .=) <$> _fcCriterion])++-- | Finding statistics object.+--+-- /See:/ 'findingStatistics' smart constructor.+newtype FindingStatistics = FindingStatistics'+  { _fsCountBySeverity :: Maybe (Map Text Int)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'FindingStatistics' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'fsCountBySeverity' - Represents a map of severity to count statistic for a set of findings+findingStatistics+    :: FindingStatistics+findingStatistics = FindingStatistics' {_fsCountBySeverity = Nothing}+++-- | Represents a map of severity to count statistic for a set of findings+fsCountBySeverity :: Lens' FindingStatistics (HashMap Text Int)+fsCountBySeverity = lens _fsCountBySeverity (\ s a -> s{_fsCountBySeverity = a}) . _Default . _Map++instance FromJSON FindingStatistics where+        parseJSON+          = withObject "FindingStatistics"+              (\ x ->+                 FindingStatistics' <$>+                   (x .:? "countBySeverity" .!= mempty))++instance Hashable FindingStatistics where++instance NFData FindingStatistics where++-- | Location information of the remote IP address.+--+-- /See:/ 'geoLocation' smart constructor.+data GeoLocation = GeoLocation'+  { _glLat :: !(Maybe Double)+  , _glLon :: !(Maybe Double)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'GeoLocation' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'glLat' - Latitude information of remote IP address.+--+-- * 'glLon' - Longitude information of remote IP address.+geoLocation+    :: GeoLocation+geoLocation = GeoLocation' {_glLat = Nothing, _glLon = Nothing}+++-- | Latitude information of remote IP address.+glLat :: Lens' GeoLocation (Maybe Double)+glLat = lens _glLat (\ s a -> s{_glLat = a})++-- | Longitude information of remote IP address.+glLon :: Lens' GeoLocation (Maybe Double)+glLon = lens _glLon (\ s a -> s{_glLon = a})++instance FromJSON GeoLocation where+        parseJSON+          = withObject "GeoLocation"+              (\ x ->+                 GeoLocation' <$> (x .:? "lat") <*> (x .:? "lon"))++instance Hashable GeoLocation where++instance NFData GeoLocation where++-- | The profile information of the EC2 instance.+--+-- /See:/ 'iamInstanceProfile' smart constructor.+data IAMInstanceProfile = IAMInstanceProfile'+  { _iapARN :: !(Maybe Text)+  , _iapId  :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'IAMInstanceProfile' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'iapARN' - AWS EC2 instance profile ARN.+--+-- * 'iapId' - AWS EC2 instance profile ID.+iamInstanceProfile+    :: IAMInstanceProfile+iamInstanceProfile = IAMInstanceProfile' {_iapARN = Nothing, _iapId = Nothing}+++-- | AWS EC2 instance profile ARN.+iapARN :: Lens' IAMInstanceProfile (Maybe Text)+iapARN = lens _iapARN (\ s a -> s{_iapARN = a})++-- | AWS EC2 instance profile ID.+iapId :: Lens' IAMInstanceProfile (Maybe Text)+iapId = lens _iapId (\ s a -> s{_iapId = a})++instance FromJSON IAMInstanceProfile where+        parseJSON+          = withObject "IAMInstanceProfile"+              (\ x ->+                 IAMInstanceProfile' <$>+                   (x .:? "arn") <*> (x .:? "id"))++instance Hashable IAMInstanceProfile where++instance NFData IAMInstanceProfile where++-- | The information about the EC2 instance associated with the activity that prompted GuardDuty to generate a finding.+--+-- /See:/ 'instanceDetails' smart constructor.+data InstanceDetails = InstanceDetails'+  { _idInstanceId         :: !(Maybe Text)+  , _idPlatform           :: !(Maybe Text)+  , _idLaunchTime         :: !(Maybe Text)+  , _idNetworkInterfaces  :: !(Maybe [NetworkInterface])+  , _idInstanceType       :: !(Maybe Text)+  , _idAvailabilityZone   :: !(Maybe Text)+  , _idIAMInstanceProfile :: !(Maybe IAMInstanceProfile)+  , _idImageId            :: !(Maybe Text)+  , _idProductCodes       :: !(Maybe [ProductCode])+  , _idInstanceState      :: !(Maybe Text)+  , _idTags               :: !(Maybe [Tag])+  , _idImageDescription   :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'InstanceDetails' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'idInstanceId' - The ID of the EC2 instance.+--+-- * 'idPlatform' - The platform of the EC2 instance.+--+-- * 'idLaunchTime' - The launch time of the EC2 instance.+--+-- * 'idNetworkInterfaces' - The network interface information of the EC2 instance.+--+-- * 'idInstanceType' - The type of the EC2 instance.+--+-- * 'idAvailabilityZone' - The availability zone of the EC2 instance.+--+-- * 'idIAMInstanceProfile' - Undocumented member.+--+-- * 'idImageId' - The image ID of the EC2 instance.+--+-- * 'idProductCodes' - The product code of the EC2 instance.+--+-- * 'idInstanceState' - The state of the EC2 instance.+--+-- * 'idTags' - The tags of the EC2 instance.+--+-- * 'idImageDescription' - The image description of the EC2 instance.+instanceDetails+    :: InstanceDetails+instanceDetails =+  InstanceDetails'+    { _idInstanceId = Nothing+    , _idPlatform = Nothing+    , _idLaunchTime = Nothing+    , _idNetworkInterfaces = Nothing+    , _idInstanceType = Nothing+    , _idAvailabilityZone = Nothing+    , _idIAMInstanceProfile = Nothing+    , _idImageId = Nothing+    , _idProductCodes = Nothing+    , _idInstanceState = Nothing+    , _idTags = Nothing+    , _idImageDescription = Nothing+    }+++-- | The ID of the EC2 instance.+idInstanceId :: Lens' InstanceDetails (Maybe Text)+idInstanceId = lens _idInstanceId (\ s a -> s{_idInstanceId = a})++-- | The platform of the EC2 instance.+idPlatform :: Lens' InstanceDetails (Maybe Text)+idPlatform = lens _idPlatform (\ s a -> s{_idPlatform = a})++-- | The launch time of the EC2 instance.+idLaunchTime :: Lens' InstanceDetails (Maybe Text)+idLaunchTime = lens _idLaunchTime (\ s a -> s{_idLaunchTime = a})++-- | The network interface information of the EC2 instance.+idNetworkInterfaces :: Lens' InstanceDetails [NetworkInterface]+idNetworkInterfaces = lens _idNetworkInterfaces (\ s a -> s{_idNetworkInterfaces = a}) . _Default . _Coerce++-- | The type of the EC2 instance.+idInstanceType :: Lens' InstanceDetails (Maybe Text)+idInstanceType = lens _idInstanceType (\ s a -> s{_idInstanceType = a})++-- | The availability zone of the EC2 instance.+idAvailabilityZone :: Lens' InstanceDetails (Maybe Text)+idAvailabilityZone = lens _idAvailabilityZone (\ s a -> s{_idAvailabilityZone = a})++-- | Undocumented member.+idIAMInstanceProfile :: Lens' InstanceDetails (Maybe IAMInstanceProfile)+idIAMInstanceProfile = lens _idIAMInstanceProfile (\ s a -> s{_idIAMInstanceProfile = a})++-- | The image ID of the EC2 instance.+idImageId :: Lens' InstanceDetails (Maybe Text)+idImageId = lens _idImageId (\ s a -> s{_idImageId = a})++-- | The product code of the EC2 instance.+idProductCodes :: Lens' InstanceDetails [ProductCode]+idProductCodes = lens _idProductCodes (\ s a -> s{_idProductCodes = a}) . _Default . _Coerce++-- | The state of the EC2 instance.+idInstanceState :: Lens' InstanceDetails (Maybe Text)+idInstanceState = lens _idInstanceState (\ s a -> s{_idInstanceState = a})++-- | The tags of the EC2 instance.+idTags :: Lens' InstanceDetails [Tag]+idTags = lens _idTags (\ s a -> s{_idTags = a}) . _Default . _Coerce++-- | The image description of the EC2 instance.+idImageDescription :: Lens' InstanceDetails (Maybe Text)+idImageDescription = lens _idImageDescription (\ s a -> s{_idImageDescription = a})++instance FromJSON InstanceDetails where+        parseJSON+          = withObject "InstanceDetails"+              (\ x ->+                 InstanceDetails' <$>+                   (x .:? "instanceId") <*> (x .:? "platform") <*>+                     (x .:? "launchTime")+                     <*> (x .:? "networkInterfaces" .!= mempty)+                     <*> (x .:? "instanceType")+                     <*> (x .:? "availabilityZone")+                     <*> (x .:? "iamInstanceProfile")+                     <*> (x .:? "imageId")+                     <*> (x .:? "productCodes" .!= mempty)+                     <*> (x .:? "instanceState")+                     <*> (x .:? "tags" .!= mempty)+                     <*> (x .:? "imageDescription"))++instance Hashable InstanceDetails where++instance NFData InstanceDetails where++-- | Invitation from an AWS account to become the current account's master.+--+-- /See:/ 'invitation' smart constructor.+data Invitation = Invitation'+  { _iInvitedAt          :: !(Maybe Text)+  , _iRelationshipStatus :: !(Maybe Text)+  , _iInvitationId       :: !(Maybe Text)+  , _iAccountId          :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Invitation' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'iInvitedAt' - Timestamp at which the invitation was sent+--+-- * 'iRelationshipStatus' - The status of the relationship between the inviter and invitee accounts.+--+-- * 'iInvitationId' - This value is used to validate the inviter account to the member account.+--+-- * 'iAccountId' - Inviter account ID+invitation+    :: Invitation+invitation =+  Invitation'+    { _iInvitedAt = Nothing+    , _iRelationshipStatus = Nothing+    , _iInvitationId = Nothing+    , _iAccountId = Nothing+    }+++-- | Timestamp at which the invitation was sent+iInvitedAt :: Lens' Invitation (Maybe Text)+iInvitedAt = lens _iInvitedAt (\ s a -> s{_iInvitedAt = a})++-- | The status of the relationship between the inviter and invitee accounts.+iRelationshipStatus :: Lens' Invitation (Maybe Text)+iRelationshipStatus = lens _iRelationshipStatus (\ s a -> s{_iRelationshipStatus = a})++-- | This value is used to validate the inviter account to the member account.+iInvitationId :: Lens' Invitation (Maybe Text)+iInvitationId = lens _iInvitationId (\ s a -> s{_iInvitationId = a})++-- | Inviter account ID+iAccountId :: Lens' Invitation (Maybe Text)+iAccountId = lens _iAccountId (\ s a -> s{_iAccountId = a})++instance FromJSON Invitation where+        parseJSON+          = withObject "Invitation"+              (\ x ->+                 Invitation' <$>+                   (x .:? "invitedAt") <*> (x .:? "relationshipStatus")+                     <*> (x .:? "invitationId")+                     <*> (x .:? "accountId"))++instance Hashable Invitation where++instance NFData Invitation where++-- | Local port information of the connection.+--+-- /See:/ 'localPortDetails' smart constructor.+data LocalPortDetails = LocalPortDetails'+  { _lpdPortName :: !(Maybe Text)+  , _lpdPort     :: !(Maybe Int)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'LocalPortDetails' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lpdPortName' - Port name of the local connection.+--+-- * 'lpdPort' - Port number of the local connection.+localPortDetails+    :: LocalPortDetails+localPortDetails =+  LocalPortDetails' {_lpdPortName = Nothing, _lpdPort = Nothing}+++-- | Port name of the local connection.+lpdPortName :: Lens' LocalPortDetails (Maybe Text)+lpdPortName = lens _lpdPortName (\ s a -> s{_lpdPortName = a})++-- | Port number of the local connection.+lpdPort :: Lens' LocalPortDetails (Maybe Int)+lpdPort = lens _lpdPort (\ s a -> s{_lpdPort = a})++instance FromJSON LocalPortDetails where+        parseJSON+          = withObject "LocalPortDetails"+              (\ x ->+                 LocalPortDetails' <$>+                   (x .:? "portName") <*> (x .:? "port"))++instance Hashable LocalPortDetails where++instance NFData LocalPortDetails where++-- | Contains details about the master account.+--+-- /See:/ 'master' smart constructor.+data Master = Master'+  { _masInvitedAt          :: !(Maybe Text)+  , _masRelationshipStatus :: !(Maybe Text)+  , _masInvitationId       :: !(Maybe Text)+  , _masAccountId          :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Master' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'masInvitedAt' - Timestamp at which the invitation was sent+--+-- * 'masRelationshipStatus' - The status of the relationship between the master and member accounts.+--+-- * 'masInvitationId' - This value is used to validate the master account to the member account.+--+-- * 'masAccountId' - Master account ID+master+    :: Master+master =+  Master'+    { _masInvitedAt = Nothing+    , _masRelationshipStatus = Nothing+    , _masInvitationId = Nothing+    , _masAccountId = Nothing+    }+++-- | Timestamp at which the invitation was sent+masInvitedAt :: Lens' Master (Maybe Text)+masInvitedAt = lens _masInvitedAt (\ s a -> s{_masInvitedAt = a})++-- | The status of the relationship between the master and member accounts.+masRelationshipStatus :: Lens' Master (Maybe Text)+masRelationshipStatus = lens _masRelationshipStatus (\ s a -> s{_masRelationshipStatus = a})++-- | This value is used to validate the master account to the member account.+masInvitationId :: Lens' Master (Maybe Text)+masInvitationId = lens _masInvitationId (\ s a -> s{_masInvitationId = a})++-- | Master account ID+masAccountId :: Lens' Master (Maybe Text)+masAccountId = lens _masAccountId (\ s a -> s{_masAccountId = a})++instance FromJSON Master where+        parseJSON+          = withObject "Master"+              (\ x ->+                 Master' <$>+                   (x .:? "invitedAt") <*> (x .:? "relationshipStatus")+                     <*> (x .:? "invitationId")+                     <*> (x .:? "accountId"))++instance Hashable Master where++instance NFData Master where++-- | Contains details about the member account.+--+-- /See:/ 'member' smart constructor.+data Member = Member'+  { _mInvitedAt          :: !(Maybe Text)+  , _mDetectorId         :: !(Maybe Text)+  , _mEmail              :: !Text+  , _mAccountId          :: !Text+  , _mMasterId           :: !Text+  , _mUpdatedAt          :: !Text+  , _mRelationshipStatus :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Member' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mInvitedAt' - Timestamp at which the invitation was sent+--+-- * 'mDetectorId' - Undocumented member.+--+-- * 'mEmail' - Member account's email address.+--+-- * 'mAccountId' - Undocumented member.+--+-- * 'mMasterId' - Undocumented member.+--+-- * 'mUpdatedAt' - Undocumented member.+--+-- * 'mRelationshipStatus' - The status of the relationship between the member and the master.+member+    :: Text -- ^ 'mEmail'+    -> Text -- ^ 'mAccountId'+    -> Text -- ^ 'mMasterId'+    -> Text -- ^ 'mUpdatedAt'+    -> Text -- ^ 'mRelationshipStatus'+    -> Member+member pEmail_ pAccountId_ pMasterId_ pUpdatedAt_ pRelationshipStatus_ =+  Member'+    { _mInvitedAt = Nothing+    , _mDetectorId = Nothing+    , _mEmail = pEmail_+    , _mAccountId = pAccountId_+    , _mMasterId = pMasterId_+    , _mUpdatedAt = pUpdatedAt_+    , _mRelationshipStatus = pRelationshipStatus_+    }+++-- | Timestamp at which the invitation was sent+mInvitedAt :: Lens' Member (Maybe Text)+mInvitedAt = lens _mInvitedAt (\ s a -> s{_mInvitedAt = a})++-- | Undocumented member.+mDetectorId :: Lens' Member (Maybe Text)+mDetectorId = lens _mDetectorId (\ s a -> s{_mDetectorId = a})++-- | Member account's email address.+mEmail :: Lens' Member Text+mEmail = lens _mEmail (\ s a -> s{_mEmail = a})++-- | Undocumented member.+mAccountId :: Lens' Member Text+mAccountId = lens _mAccountId (\ s a -> s{_mAccountId = a})++-- | Undocumented member.+mMasterId :: Lens' Member Text+mMasterId = lens _mMasterId (\ s a -> s{_mMasterId = a})++-- | Undocumented member.+mUpdatedAt :: Lens' Member Text+mUpdatedAt = lens _mUpdatedAt (\ s a -> s{_mUpdatedAt = a})++-- | The status of the relationship between the member and the master.+mRelationshipStatus :: Lens' Member Text+mRelationshipStatus = lens _mRelationshipStatus (\ s a -> s{_mRelationshipStatus = a})++instance FromJSON Member where+        parseJSON+          = withObject "Member"+              (\ x ->+                 Member' <$>+                   (x .:? "invitedAt") <*> (x .:? "detectorId") <*>+                     (x .: "email")+                     <*> (x .: "accountId")+                     <*> (x .: "masterId")+                     <*> (x .: "updatedAt")+                     <*> (x .: "relationshipStatus"))++instance Hashable Member where++instance NFData Member where++-- | Information about the NETWORK_CONNECTION action described in this finding.+--+-- /See:/ 'networkConnectionAction' smart constructor.+data NetworkConnectionAction = NetworkConnectionAction'+  { _ncaRemoteIPDetails     :: !(Maybe RemoteIPDetails)+  , _ncaProtocol            :: !(Maybe Text)+  , _ncaRemotePortDetails   :: !(Maybe RemotePortDetails)+  , _ncaBlocked             :: !(Maybe Bool)+  , _ncaConnectionDirection :: !(Maybe Text)+  , _ncaLocalPortDetails    :: !(Maybe LocalPortDetails)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'NetworkConnectionAction' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ncaRemoteIPDetails' - Remote IP information of the connection.+--+-- * 'ncaProtocol' - Network connection protocol.+--+-- * 'ncaRemotePortDetails' - Remote port information of the connection.+--+-- * 'ncaBlocked' - Network connection blocked information.+--+-- * 'ncaConnectionDirection' - Network connection direction.+--+-- * 'ncaLocalPortDetails' - Local port information of the connection.+networkConnectionAction+    :: NetworkConnectionAction+networkConnectionAction =+  NetworkConnectionAction'+    { _ncaRemoteIPDetails = Nothing+    , _ncaProtocol = Nothing+    , _ncaRemotePortDetails = Nothing+    , _ncaBlocked = Nothing+    , _ncaConnectionDirection = Nothing+    , _ncaLocalPortDetails = Nothing+    }+++-- | Remote IP information of the connection.+ncaRemoteIPDetails :: Lens' NetworkConnectionAction (Maybe RemoteIPDetails)+ncaRemoteIPDetails = lens _ncaRemoteIPDetails (\ s a -> s{_ncaRemoteIPDetails = a})++-- | Network connection protocol.+ncaProtocol :: Lens' NetworkConnectionAction (Maybe Text)+ncaProtocol = lens _ncaProtocol (\ s a -> s{_ncaProtocol = a})++-- | Remote port information of the connection.+ncaRemotePortDetails :: Lens' NetworkConnectionAction (Maybe RemotePortDetails)+ncaRemotePortDetails = lens _ncaRemotePortDetails (\ s a -> s{_ncaRemotePortDetails = a})++-- | Network connection blocked information.+ncaBlocked :: Lens' NetworkConnectionAction (Maybe Bool)+ncaBlocked = lens _ncaBlocked (\ s a -> s{_ncaBlocked = a})++-- | Network connection direction.+ncaConnectionDirection :: Lens' NetworkConnectionAction (Maybe Text)+ncaConnectionDirection = lens _ncaConnectionDirection (\ s a -> s{_ncaConnectionDirection = a})++-- | Local port information of the connection.+ncaLocalPortDetails :: Lens' NetworkConnectionAction (Maybe LocalPortDetails)+ncaLocalPortDetails = lens _ncaLocalPortDetails (\ s a -> s{_ncaLocalPortDetails = a})++instance FromJSON NetworkConnectionAction where+        parseJSON+          = withObject "NetworkConnectionAction"+              (\ x ->+                 NetworkConnectionAction' <$>+                   (x .:? "remoteIpDetails") <*> (x .:? "protocol") <*>+                     (x .:? "remotePortDetails")+                     <*> (x .:? "blocked")+                     <*> (x .:? "connectionDirection")+                     <*> (x .:? "localPortDetails"))++instance Hashable NetworkConnectionAction where++instance NFData NetworkConnectionAction where++-- | The network interface information of the EC2 instance.+--+-- /See:/ 'networkInterface' smart constructor.+data NetworkInterface = NetworkInterface'+  { _niPrivateIPAddresses :: !(Maybe [PrivateIPAddressDetails])+  , _niPublicDNSName      :: !(Maybe Text)+  , _niSecurityGroups     :: !(Maybe [SecurityGroup])+  , _niVPCId              :: !(Maybe Text)+  , _niNetworkInterfaceId :: !(Maybe Text)+  , _niSubnetId           :: !(Maybe Text)+  , _niPrivateIPAddress   :: !(Maybe Text)+  , _niPublicIP           :: !(Maybe Text)+  , _niPrivateDNSName     :: !(Maybe Text)+  , _niIPv6Addresses      :: !(Maybe [Text])+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'NetworkInterface' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'niPrivateIPAddresses' - Other private IP address information of the EC2 instance.+--+-- * 'niPublicDNSName' - Public DNS name of the EC2 instance.+--+-- * 'niSecurityGroups' - Security groups associated with the EC2 instance.+--+-- * 'niVPCId' - The VPC ID of the EC2 instance.+--+-- * 'niNetworkInterfaceId' - The ID of the network interface+--+-- * 'niSubnetId' - The subnet ID of the EC2 instance.+--+-- * 'niPrivateIPAddress' - Private IP address of the EC2 instance.+--+-- * 'niPublicIP' - Public IP address of the EC2 instance.+--+-- * 'niPrivateDNSName' - Private DNS name of the EC2 instance.+--+-- * 'niIPv6Addresses' - A list of EC2 instance IPv6 address information.+networkInterface+    :: NetworkInterface+networkInterface =+  NetworkInterface'+    { _niPrivateIPAddresses = Nothing+    , _niPublicDNSName = Nothing+    , _niSecurityGroups = Nothing+    , _niVPCId = Nothing+    , _niNetworkInterfaceId = Nothing+    , _niSubnetId = Nothing+    , _niPrivateIPAddress = Nothing+    , _niPublicIP = Nothing+    , _niPrivateDNSName = Nothing+    , _niIPv6Addresses = Nothing+    }+++-- | Other private IP address information of the EC2 instance.+niPrivateIPAddresses :: Lens' NetworkInterface [PrivateIPAddressDetails]+niPrivateIPAddresses = lens _niPrivateIPAddresses (\ s a -> s{_niPrivateIPAddresses = a}) . _Default . _Coerce++-- | Public DNS name of the EC2 instance.+niPublicDNSName :: Lens' NetworkInterface (Maybe Text)+niPublicDNSName = lens _niPublicDNSName (\ s a -> s{_niPublicDNSName = a})++-- | Security groups associated with the EC2 instance.+niSecurityGroups :: Lens' NetworkInterface [SecurityGroup]+niSecurityGroups = lens _niSecurityGroups (\ s a -> s{_niSecurityGroups = a}) . _Default . _Coerce++-- | The VPC ID of the EC2 instance.+niVPCId :: Lens' NetworkInterface (Maybe Text)+niVPCId = lens _niVPCId (\ s a -> s{_niVPCId = a})++-- | The ID of the network interface+niNetworkInterfaceId :: Lens' NetworkInterface (Maybe Text)+niNetworkInterfaceId = lens _niNetworkInterfaceId (\ s a -> s{_niNetworkInterfaceId = a})++-- | The subnet ID of the EC2 instance.+niSubnetId :: Lens' NetworkInterface (Maybe Text)+niSubnetId = lens _niSubnetId (\ s a -> s{_niSubnetId = a})++-- | Private IP address of the EC2 instance.+niPrivateIPAddress :: Lens' NetworkInterface (Maybe Text)+niPrivateIPAddress = lens _niPrivateIPAddress (\ s a -> s{_niPrivateIPAddress = a})++-- | Public IP address of the EC2 instance.+niPublicIP :: Lens' NetworkInterface (Maybe Text)+niPublicIP = lens _niPublicIP (\ s a -> s{_niPublicIP = a})++-- | Private DNS name of the EC2 instance.+niPrivateDNSName :: Lens' NetworkInterface (Maybe Text)+niPrivateDNSName = lens _niPrivateDNSName (\ s a -> s{_niPrivateDNSName = a})++-- | A list of EC2 instance IPv6 address information.+niIPv6Addresses :: Lens' NetworkInterface [Text]+niIPv6Addresses = lens _niIPv6Addresses (\ s a -> s{_niIPv6Addresses = a}) . _Default . _Coerce++instance FromJSON NetworkInterface where+        parseJSON+          = withObject "NetworkInterface"+              (\ x ->+                 NetworkInterface' <$>+                   (x .:? "privateIpAddresses" .!= mempty) <*>+                     (x .:? "publicDnsName")+                     <*> (x .:? "securityGroups" .!= mempty)+                     <*> (x .:? "vpcId")+                     <*> (x .:? "networkInterfaceId")+                     <*> (x .:? "subnetId")+                     <*> (x .:? "privateIpAddress")+                     <*> (x .:? "publicIp")+                     <*> (x .:? "privateDnsName")+                     <*> (x .:? "ipv6Addresses" .!= mempty))++instance Hashable NetworkInterface where++instance NFData NetworkInterface where++-- | ISP Organization information of the remote IP address.+--+-- /See:/ 'organization' smart constructor.+data Organization = Organization'+  { _oOrg    :: !(Maybe Text)+  , _oASNOrg :: !(Maybe Text)+  , _oASN    :: !(Maybe Text)+  , _oIsp    :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Organization' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'oOrg' - Name of the internet provider.+--+-- * 'oASNOrg' - Organization that registered this ASN.+--+-- * 'oASN' - Autonomous system number of the internet provider of the remote IP address.+--+-- * 'oIsp' - ISP information for the internet provider.+organization+    :: Organization+organization =+  Organization'+    {_oOrg = Nothing, _oASNOrg = Nothing, _oASN = Nothing, _oIsp = Nothing}+++-- | Name of the internet provider.+oOrg :: Lens' Organization (Maybe Text)+oOrg = lens _oOrg (\ s a -> s{_oOrg = a})++-- | Organization that registered this ASN.+oASNOrg :: Lens' Organization (Maybe Text)+oASNOrg = lens _oASNOrg (\ s a -> s{_oASNOrg = a})++-- | Autonomous system number of the internet provider of the remote IP address.+oASN :: Lens' Organization (Maybe Text)+oASN = lens _oASN (\ s a -> s{_oASN = a})++-- | ISP information for the internet provider.+oIsp :: Lens' Organization (Maybe Text)+oIsp = lens _oIsp (\ s a -> s{_oIsp = a})++instance FromJSON Organization where+        parseJSON+          = withObject "Organization"+              (\ x ->+                 Organization' <$>+                   (x .:? "org") <*> (x .:? "asnOrg") <*> (x .:? "asn")+                     <*> (x .:? "isp"))++instance Hashable Organization where++instance NFData Organization where++-- | Information about the PORT_PROBE action described in this finding.+--+-- /See:/ 'portProbeAction' smart constructor.+data PortProbeAction = PortProbeAction'+  { _ppaPortProbeDetails :: !(Maybe [PortProbeDetail])+  , _ppaBlocked          :: !(Maybe Bool)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'PortProbeAction' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ppaPortProbeDetails' - A list of port probe details objects.+--+-- * 'ppaBlocked' - Port probe blocked information.+portProbeAction+    :: PortProbeAction+portProbeAction =+  PortProbeAction' {_ppaPortProbeDetails = Nothing, _ppaBlocked = Nothing}+++-- | A list of port probe details objects.+ppaPortProbeDetails :: Lens' PortProbeAction [PortProbeDetail]+ppaPortProbeDetails = lens _ppaPortProbeDetails (\ s a -> s{_ppaPortProbeDetails = a}) . _Default . _Coerce++-- | Port probe blocked information.+ppaBlocked :: Lens' PortProbeAction (Maybe Bool)+ppaBlocked = lens _ppaBlocked (\ s a -> s{_ppaBlocked = a})++instance FromJSON PortProbeAction where+        parseJSON+          = withObject "PortProbeAction"+              (\ x ->+                 PortProbeAction' <$>+                   (x .:? "portProbeDetails" .!= mempty) <*>+                     (x .:? "blocked"))++instance Hashable PortProbeAction where++instance NFData PortProbeAction where++-- | Details about the port probe finding.+--+-- /See:/ 'portProbeDetail' smart constructor.+data PortProbeDetail = PortProbeDetail'+  { _ppdRemoteIPDetails  :: !(Maybe RemoteIPDetails)+  , _ppdLocalPortDetails :: !(Maybe LocalPortDetails)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'PortProbeDetail' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ppdRemoteIPDetails' - Remote IP information of the connection.+--+-- * 'ppdLocalPortDetails' - Local port information of the connection.+portProbeDetail+    :: PortProbeDetail+portProbeDetail =+  PortProbeDetail'+    {_ppdRemoteIPDetails = Nothing, _ppdLocalPortDetails = Nothing}+++-- | Remote IP information of the connection.+ppdRemoteIPDetails :: Lens' PortProbeDetail (Maybe RemoteIPDetails)+ppdRemoteIPDetails = lens _ppdRemoteIPDetails (\ s a -> s{_ppdRemoteIPDetails = a})++-- | Local port information of the connection.+ppdLocalPortDetails :: Lens' PortProbeDetail (Maybe LocalPortDetails)+ppdLocalPortDetails = lens _ppdLocalPortDetails (\ s a -> s{_ppdLocalPortDetails = a})++instance FromJSON PortProbeDetail where+        parseJSON+          = withObject "PortProbeDetail"+              (\ x ->+                 PortProbeDetail' <$>+                   (x .:? "remoteIpDetails") <*>+                     (x .:? "localPortDetails"))++instance Hashable PortProbeDetail where++instance NFData PortProbeDetail where++-- | Other private IP address information of the EC2 instance.+--+-- /See:/ 'privateIPAddressDetails' smart constructor.+data PrivateIPAddressDetails = PrivateIPAddressDetails'+  { _piadPrivateIPAddress :: !(Maybe Text)+  , _piadPrivateDNSName   :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'PrivateIPAddressDetails' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'piadPrivateIPAddress' - Private IP address of the EC2 instance.+--+-- * 'piadPrivateDNSName' - Private DNS name of the EC2 instance.+privateIPAddressDetails+    :: PrivateIPAddressDetails+privateIPAddressDetails =+  PrivateIPAddressDetails'+    {_piadPrivateIPAddress = Nothing, _piadPrivateDNSName = Nothing}+++-- | Private IP address of the EC2 instance.+piadPrivateIPAddress :: Lens' PrivateIPAddressDetails (Maybe Text)+piadPrivateIPAddress = lens _piadPrivateIPAddress (\ s a -> s{_piadPrivateIPAddress = a})++-- | Private DNS name of the EC2 instance.+piadPrivateDNSName :: Lens' PrivateIPAddressDetails (Maybe Text)+piadPrivateDNSName = lens _piadPrivateDNSName (\ s a -> s{_piadPrivateDNSName = a})++instance FromJSON PrivateIPAddressDetails where+        parseJSON+          = withObject "PrivateIPAddressDetails"+              (\ x ->+                 PrivateIPAddressDetails' <$>+                   (x .:? "privateIpAddress") <*>+                     (x .:? "privateDnsName"))++instance Hashable PrivateIPAddressDetails where++instance NFData PrivateIPAddressDetails where++-- | The product code of the EC2 instance.+--+-- /See:/ 'productCode' smart constructor.+data ProductCode = ProductCode'+  { _pcProductType :: !(Maybe Text)+  , _pcCode        :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ProductCode' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pcProductType' - Product code type.+--+-- * 'pcCode' - Product code information.+productCode+    :: ProductCode+productCode = ProductCode' {_pcProductType = Nothing, _pcCode = Nothing}+++-- | Product code type.+pcProductType :: Lens' ProductCode (Maybe Text)+pcProductType = lens _pcProductType (\ s a -> s{_pcProductType = a})++-- | Product code information.+pcCode :: Lens' ProductCode (Maybe Text)+pcCode = lens _pcCode (\ s a -> s{_pcCode = a})++instance FromJSON ProductCode where+        parseJSON+          = withObject "ProductCode"+              (\ x ->+                 ProductCode' <$>+                   (x .:? "productType") <*> (x .:? "code"))++instance Hashable ProductCode where++instance NFData ProductCode where++-- | Remote IP information of the connection.+--+-- /See:/ 'remoteIPDetails' smart constructor.+data RemoteIPDetails = RemoteIPDetails'+  { _ridCountry      :: !(Maybe Country)+  , _ridCity         :: !(Maybe City)+  , _ridIPAddressV4  :: !(Maybe Text)+  , _ridGeoLocation  :: !(Maybe GeoLocation)+  , _ridOrganization :: !(Maybe Organization)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'RemoteIPDetails' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ridCountry' - Country code of the remote IP address.+--+-- * 'ridCity' - City information of the remote IP address.+--+-- * 'ridIPAddressV4' - IPV4 remote address of the connection.+--+-- * 'ridGeoLocation' - Location information of the remote IP address.+--+-- * 'ridOrganization' - ISP Organization information of the remote IP address.+remoteIPDetails+    :: RemoteIPDetails+remoteIPDetails =+  RemoteIPDetails'+    { _ridCountry = Nothing+    , _ridCity = Nothing+    , _ridIPAddressV4 = Nothing+    , _ridGeoLocation = Nothing+    , _ridOrganization = Nothing+    }+++-- | Country code of the remote IP address.+ridCountry :: Lens' RemoteIPDetails (Maybe Country)+ridCountry = lens _ridCountry (\ s a -> s{_ridCountry = a})++-- | City information of the remote IP address.+ridCity :: Lens' RemoteIPDetails (Maybe City)+ridCity = lens _ridCity (\ s a -> s{_ridCity = a})++-- | IPV4 remote address of the connection.+ridIPAddressV4 :: Lens' RemoteIPDetails (Maybe Text)+ridIPAddressV4 = lens _ridIPAddressV4 (\ s a -> s{_ridIPAddressV4 = a})++-- | Location information of the remote IP address.+ridGeoLocation :: Lens' RemoteIPDetails (Maybe GeoLocation)+ridGeoLocation = lens _ridGeoLocation (\ s a -> s{_ridGeoLocation = a})++-- | ISP Organization information of the remote IP address.+ridOrganization :: Lens' RemoteIPDetails (Maybe Organization)+ridOrganization = lens _ridOrganization (\ s a -> s{_ridOrganization = a})++instance FromJSON RemoteIPDetails where+        parseJSON+          = withObject "RemoteIPDetails"+              (\ x ->+                 RemoteIPDetails' <$>+                   (x .:? "country") <*> (x .:? "city") <*>+                     (x .:? "ipAddressV4")+                     <*> (x .:? "geoLocation")+                     <*> (x .:? "organization"))++instance Hashable RemoteIPDetails where++instance NFData RemoteIPDetails where++-- | Remote port information of the connection.+--+-- /See:/ 'remotePortDetails' smart constructor.+data RemotePortDetails = RemotePortDetails'+  { _rpdPortName :: !(Maybe Text)+  , _rpdPort     :: !(Maybe Int)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'RemotePortDetails' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rpdPortName' - Port name of the remote connection.+--+-- * 'rpdPort' - Port number of the remote connection.+remotePortDetails+    :: RemotePortDetails+remotePortDetails =+  RemotePortDetails' {_rpdPortName = Nothing, _rpdPort = Nothing}+++-- | Port name of the remote connection.+rpdPortName :: Lens' RemotePortDetails (Maybe Text)+rpdPortName = lens _rpdPortName (\ s a -> s{_rpdPortName = a})++-- | Port number of the remote connection.+rpdPort :: Lens' RemotePortDetails (Maybe Int)+rpdPort = lens _rpdPort (\ s a -> s{_rpdPort = a})++instance FromJSON RemotePortDetails where+        parseJSON+          = withObject "RemotePortDetails"+              (\ x ->+                 RemotePortDetails' <$>+                   (x .:? "portName") <*> (x .:? "port"))++instance Hashable RemotePortDetails where++instance NFData RemotePortDetails where++-- | The AWS resource associated with the activity that prompted GuardDuty to generate a finding.+--+-- /See:/ 'resource' smart constructor.+data Resource = Resource'+  { _rResourceType     :: !(Maybe Text)+  , _rInstanceDetails  :: !(Maybe InstanceDetails)+  , _rAccessKeyDetails :: !(Maybe AccessKeyDetails)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Resource' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rResourceType' - The type of the AWS resource.+--+-- * 'rInstanceDetails' - Undocumented member.+--+-- * 'rAccessKeyDetails' - Undocumented member.+resource+    :: Resource+resource =+  Resource'+    { _rResourceType = Nothing+    , _rInstanceDetails = Nothing+    , _rAccessKeyDetails = Nothing+    }+++-- | The type of the AWS resource.+rResourceType :: Lens' Resource (Maybe Text)+rResourceType = lens _rResourceType (\ s a -> s{_rResourceType = a})++-- | Undocumented member.+rInstanceDetails :: Lens' Resource (Maybe InstanceDetails)+rInstanceDetails = lens _rInstanceDetails (\ s a -> s{_rInstanceDetails = a})++-- | Undocumented member.+rAccessKeyDetails :: Lens' Resource (Maybe AccessKeyDetails)+rAccessKeyDetails = lens _rAccessKeyDetails (\ s a -> s{_rAccessKeyDetails = a})++instance FromJSON Resource where+        parseJSON+          = withObject "Resource"+              (\ x ->+                 Resource' <$>+                   (x .:? "resourceType") <*> (x .:? "instanceDetails")+                     <*> (x .:? "accessKeyDetails"))++instance Hashable Resource where++instance NFData Resource where++-- | Security groups associated with the EC2 instance.+--+-- /See:/ 'securityGroup' smart constructor.+data SecurityGroup = SecurityGroup'+  { _sgGroupId   :: !(Maybe Text)+  , _sgGroupName :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'SecurityGroup' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sgGroupId' - EC2 instance's security group ID.+--+-- * 'sgGroupName' - EC2 instance's security group name.+securityGroup+    :: SecurityGroup+securityGroup = SecurityGroup' {_sgGroupId = Nothing, _sgGroupName = Nothing}+++-- | EC2 instance's security group ID.+sgGroupId :: Lens' SecurityGroup (Maybe Text)+sgGroupId = lens _sgGroupId (\ s a -> s{_sgGroupId = a})++-- | EC2 instance's security group name.+sgGroupName :: Lens' SecurityGroup (Maybe Text)+sgGroupName = lens _sgGroupName (\ s a -> s{_sgGroupName = a})++instance FromJSON SecurityGroup where+        parseJSON+          = withObject "SecurityGroup"+              (\ x ->+                 SecurityGroup' <$>+                   (x .:? "groupId") <*> (x .:? "groupName"))++instance Hashable SecurityGroup where++instance NFData SecurityGroup where++-- | Additional information assigned to the generated finding by GuardDuty.+--+-- /See:/ 'serviceInfo' smart constructor.+data ServiceInfo = ServiceInfo'+  { _siCount          :: !(Maybe Int)+  , _siEventFirstSeen :: !(Maybe Text)+  , _siAction         :: !(Maybe Action)+  , _siDetectorId     :: !(Maybe Text)+  , _siServiceName    :: !(Maybe Text)+  , _siUserFeedback   :: !(Maybe Text)+  , _siEventLastSeen  :: !(Maybe Text)+  , _siResourceRole   :: !(Maybe Text)+  , _siArchived       :: !(Maybe Bool)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ServiceInfo' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'siCount' - Total count of the occurrences of this finding type.+--+-- * 'siEventFirstSeen' - First seen timestamp of the activity that prompted GuardDuty to generate this finding.+--+-- * 'siAction' - Information about the activity described in a finding.+--+-- * 'siDetectorId' - Detector ID for the GuardDuty service.+--+-- * 'siServiceName' - The name of the AWS service (GuardDuty) that generated a finding.+--+-- * 'siUserFeedback' - Feedback left about the finding.+--+-- * 'siEventLastSeen' - Last seen timestamp of the activity that prompted GuardDuty to generate this finding.+--+-- * 'siResourceRole' - Resource role information for this finding.+--+-- * 'siArchived' - Indicates whether this finding is archived.+serviceInfo+    :: ServiceInfo+serviceInfo =+  ServiceInfo'+    { _siCount = Nothing+    , _siEventFirstSeen = Nothing+    , _siAction = Nothing+    , _siDetectorId = Nothing+    , _siServiceName = Nothing+    , _siUserFeedback = Nothing+    , _siEventLastSeen = Nothing+    , _siResourceRole = Nothing+    , _siArchived = Nothing+    }+++-- | Total count of the occurrences of this finding type.+siCount :: Lens' ServiceInfo (Maybe Int)+siCount = lens _siCount (\ s a -> s{_siCount = a})++-- | First seen timestamp of the activity that prompted GuardDuty to generate this finding.+siEventFirstSeen :: Lens' ServiceInfo (Maybe Text)+siEventFirstSeen = lens _siEventFirstSeen (\ s a -> s{_siEventFirstSeen = a})++-- | Information about the activity described in a finding.+siAction :: Lens' ServiceInfo (Maybe Action)+siAction = lens _siAction (\ s a -> s{_siAction = a})++-- | Detector ID for the GuardDuty service.+siDetectorId :: Lens' ServiceInfo (Maybe Text)+siDetectorId = lens _siDetectorId (\ s a -> s{_siDetectorId = a})++-- | The name of the AWS service (GuardDuty) that generated a finding.+siServiceName :: Lens' ServiceInfo (Maybe Text)+siServiceName = lens _siServiceName (\ s a -> s{_siServiceName = a})++-- | Feedback left about the finding.+siUserFeedback :: Lens' ServiceInfo (Maybe Text)+siUserFeedback = lens _siUserFeedback (\ s a -> s{_siUserFeedback = a})++-- | Last seen timestamp of the activity that prompted GuardDuty to generate this finding.+siEventLastSeen :: Lens' ServiceInfo (Maybe Text)+siEventLastSeen = lens _siEventLastSeen (\ s a -> s{_siEventLastSeen = a})++-- | Resource role information for this finding.+siResourceRole :: Lens' ServiceInfo (Maybe Text)+siResourceRole = lens _siResourceRole (\ s a -> s{_siResourceRole = a})++-- | Indicates whether this finding is archived.+siArchived :: Lens' ServiceInfo (Maybe Bool)+siArchived = lens _siArchived (\ s a -> s{_siArchived = a})++instance FromJSON ServiceInfo where+        parseJSON+          = withObject "ServiceInfo"+              (\ x ->+                 ServiceInfo' <$>+                   (x .:? "count") <*> (x .:? "eventFirstSeen") <*>+                     (x .:? "action")+                     <*> (x .:? "detectorId")+                     <*> (x .:? "serviceName")+                     <*> (x .:? "userFeedback")+                     <*> (x .:? "eventLastSeen")+                     <*> (x .:? "resourceRole")+                     <*> (x .:? "archived"))++instance Hashable ServiceInfo where++instance NFData ServiceInfo where++-- | Represents the criteria used for sorting findings.+--+-- /See:/ 'sortCriteria' smart constructor.+data SortCriteria = SortCriteria'+  { _scOrderBy       :: !(Maybe OrderBy)+  , _scAttributeName :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'SortCriteria' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'scOrderBy' - Order by which the sorted findings are to be displayed.+--+-- * 'scAttributeName' - Represents the finding attribute (for example, accountId) by which to sort findings.+sortCriteria+    :: SortCriteria+sortCriteria = SortCriteria' {_scOrderBy = Nothing, _scAttributeName = Nothing}+++-- | Order by which the sorted findings are to be displayed.+scOrderBy :: Lens' SortCriteria (Maybe OrderBy)+scOrderBy = lens _scOrderBy (\ s a -> s{_scOrderBy = a})++-- | Represents the finding attribute (for example, accountId) by which to sort findings.+scAttributeName :: Lens' SortCriteria (Maybe Text)+scAttributeName = lens _scAttributeName (\ s a -> s{_scAttributeName = a})++instance Hashable SortCriteria where++instance NFData SortCriteria where++instance ToJSON SortCriteria where+        toJSON SortCriteria'{..}+          = object+              (catMaybes+                 [("orderBy" .=) <$> _scOrderBy,+                  ("attributeName" .=) <$> _scAttributeName])++-- | A tag of the EC2 instance.+--+-- /See:/ 'tag' smart constructor.+data Tag = Tag'+  { _tagValue :: !(Maybe Text)+  , _tagKey   :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Tag' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tagValue' - EC2 instance tag value.+--+-- * 'tagKey' - EC2 instance tag key.+tag+    :: Tag+tag = Tag' {_tagValue = Nothing, _tagKey = Nothing}+++-- | EC2 instance tag value.+tagValue :: Lens' Tag (Maybe Text)+tagValue = lens _tagValue (\ s a -> s{_tagValue = a})++-- | EC2 instance tag key.+tagKey :: Lens' Tag (Maybe Text)+tagKey = lens _tagKey (\ s a -> s{_tagKey = a})++instance FromJSON Tag where+        parseJSON+          = withObject "Tag"+              (\ x -> Tag' <$> (x .:? "value") <*> (x .:? "key"))++instance Hashable Tag where++instance NFData Tag where++-- | An object containing the unprocessed account and a result string explaining why it was unprocessed.+--+-- /See:/ 'unprocessedAccount' smart constructor.+data UnprocessedAccount = UnprocessedAccount'+  { _uaAccountId :: !Text+  , _uaResult    :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'UnprocessedAccount' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'uaAccountId' - AWS Account ID.+--+-- * 'uaResult' - A reason why the account hasn't been processed.+unprocessedAccount+    :: Text -- ^ 'uaAccountId'+    -> Text -- ^ 'uaResult'+    -> UnprocessedAccount+unprocessedAccount pAccountId_ pResult_ =+  UnprocessedAccount' {_uaAccountId = pAccountId_, _uaResult = pResult_}+++-- | AWS Account ID.+uaAccountId :: Lens' UnprocessedAccount Text+uaAccountId = lens _uaAccountId (\ s a -> s{_uaAccountId = a})++-- | A reason why the account hasn't been processed.+uaResult :: Lens' UnprocessedAccount Text+uaResult = lens _uaResult (\ s a -> s{_uaResult = a})++instance FromJSON UnprocessedAccount where+        parseJSON+          = withObject "UnprocessedAccount"+              (\ x ->+                 UnprocessedAccount' <$>+                   (x .: "accountId") <*> (x .: "result"))++instance Hashable UnprocessedAccount where++instance NFData UnprocessedAccount where
+ gen/Network/AWS/GuardDuty/Types/Sum.hs view
@@ -0,0 +1,331 @@+{-# 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.GuardDuty.Types.Sum+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Network.AWS.GuardDuty.Types.Sum where++import Network.AWS.Prelude++-- | The status of detector.+data DetectorStatus+  = Disabled+  | Enabled+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText DetectorStatus where+    parser = takeLowerText >>= \case+        "disabled" -> pure Disabled+        "enabled" -> pure Enabled+        e -> fromTextError $ "Failure parsing DetectorStatus from value: '" <> e+           <> "'. Accepted values: disabled, enabled"++instance ToText DetectorStatus where+    toText = \case+        Disabled -> "DISABLED"+        Enabled -> "ENABLED"++instance Hashable     DetectorStatus+instance NFData       DetectorStatus+instance ToByteString DetectorStatus+instance ToQuery      DetectorStatus+instance ToHeader     DetectorStatus++instance FromJSON DetectorStatus where+    parseJSON = parseJSONText "DetectorStatus"++-- | Finding Feedback Value+data Feedback+  = NotUseful+  | Useful+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText Feedback where+    parser = takeLowerText >>= \case+        "not_useful" -> pure NotUseful+        "useful" -> pure Useful+        e -> fromTextError $ "Failure parsing Feedback from value: '" <> e+           <> "'. Accepted values: not_useful, useful"++instance ToText Feedback where+    toText = \case+        NotUseful -> "NOT_USEFUL"+        Useful -> "USEFUL"++instance Hashable     Feedback+instance NFData       Feedback+instance ToByteString Feedback+instance ToQuery      Feedback+instance ToHeader     Feedback++instance ToJSON Feedback where+    toJSON = toJSONText++-- | The action associated with a filter.+data FilterAction+  = Archive+  | Noop+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText FilterAction where+    parser = takeLowerText >>= \case+        "archive" -> pure Archive+        "noop" -> pure Noop+        e -> fromTextError $ "Failure parsing FilterAction from value: '" <> e+           <> "'. Accepted values: archive, noop"++instance ToText FilterAction where+    toText = \case+        Archive -> "ARCHIVE"+        Noop -> "NOOP"++instance Hashable     FilterAction+instance NFData       FilterAction+instance ToByteString FilterAction+instance ToQuery      FilterAction+instance ToHeader     FilterAction++instance ToJSON FilterAction where+    toJSON = toJSONText++instance FromJSON FilterAction where+    parseJSON = parseJSONText "FilterAction"++-- | The types of finding statistics.+data FindingStatisticType =+  CountBySeverity+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText FindingStatisticType where+    parser = takeLowerText >>= \case+        "count_by_severity" -> pure CountBySeverity+        e -> fromTextError $ "Failure parsing FindingStatisticType from value: '" <> e+           <> "'. Accepted values: count_by_severity"++instance ToText FindingStatisticType where+    toText = \case+        CountBySeverity -> "COUNT_BY_SEVERITY"++instance Hashable     FindingStatisticType+instance NFData       FindingStatisticType+instance ToByteString FindingStatisticType+instance ToQuery      FindingStatisticType+instance ToHeader     FindingStatisticType++instance ToJSON FindingStatisticType where+    toJSON = toJSONText++-- | The format of the ipSet.+data IPSetFormat+  = AlienVault+  | FireEye+  | OtxCSV+  | ProofPoint+  | Stix+  | Txt+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText IPSetFormat where+    parser = takeLowerText >>= \case+        "alien_vault" -> pure AlienVault+        "fire_eye" -> pure FireEye+        "otx_csv" -> pure OtxCSV+        "proof_point" -> pure ProofPoint+        "stix" -> pure Stix+        "txt" -> pure Txt+        e -> fromTextError $ "Failure parsing IPSetFormat from value: '" <> e+           <> "'. Accepted values: alien_vault, fire_eye, otx_csv, proof_point, stix, txt"++instance ToText IPSetFormat where+    toText = \case+        AlienVault -> "ALIEN_VAULT"+        FireEye -> "FIRE_EYE"+        OtxCSV -> "OTX_CSV"+        ProofPoint -> "PROOF_POINT"+        Stix -> "STIX"+        Txt -> "TXT"++instance Hashable     IPSetFormat+instance NFData       IPSetFormat+instance ToByteString IPSetFormat+instance ToQuery      IPSetFormat+instance ToHeader     IPSetFormat++instance ToJSON IPSetFormat where+    toJSON = toJSONText++instance FromJSON IPSetFormat where+    parseJSON = parseJSONText "IPSetFormat"++-- | The status of ipSet file uploaded.+data IPSetStatus+  = ISSActivating+  | ISSActive+  | ISSDeactivating+  | ISSDeletePending+  | ISSDeleted+  | ISSError'+  | ISSInactive+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText IPSetStatus where+    parser = takeLowerText >>= \case+        "activating" -> pure ISSActivating+        "active" -> pure ISSActive+        "deactivating" -> pure ISSDeactivating+        "delete_pending" -> pure ISSDeletePending+        "deleted" -> pure ISSDeleted+        "error" -> pure ISSError'+        "inactive" -> pure ISSInactive+        e -> fromTextError $ "Failure parsing IPSetStatus from value: '" <> e+           <> "'. Accepted values: activating, active, deactivating, delete_pending, deleted, error, inactive"++instance ToText IPSetStatus where+    toText = \case+        ISSActivating -> "ACTIVATING"+        ISSActive -> "ACTIVE"+        ISSDeactivating -> "DEACTIVATING"+        ISSDeletePending -> "DELETE_PENDING"+        ISSDeleted -> "DELETED"+        ISSError' -> "ERROR"+        ISSInactive -> "INACTIVE"++instance Hashable     IPSetStatus+instance NFData       IPSetStatus+instance ToByteString IPSetStatus+instance ToQuery      IPSetStatus+instance ToHeader     IPSetStatus++instance FromJSON IPSetStatus where+    parseJSON = parseJSONText "IPSetStatus"++data OrderBy+  = Asc+  | Desc+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText OrderBy where+    parser = takeLowerText >>= \case+        "asc" -> pure Asc+        "desc" -> pure Desc+        e -> fromTextError $ "Failure parsing OrderBy from value: '" <> e+           <> "'. Accepted values: asc, desc"++instance ToText OrderBy where+    toText = \case+        Asc -> "ASC"+        Desc -> "DESC"++instance Hashable     OrderBy+instance NFData       OrderBy+instance ToByteString OrderBy+instance ToQuery      OrderBy+instance ToHeader     OrderBy++instance ToJSON OrderBy where+    toJSON = toJSONText++-- | The format of the threatIntelSet.+data ThreatIntelSetFormat+  = TISFAlienVault+  | TISFFireEye+  | TISFOtxCSV+  | TISFProofPoint+  | TISFStix+  | TISFTxt+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText ThreatIntelSetFormat where+    parser = takeLowerText >>= \case+        "alien_vault" -> pure TISFAlienVault+        "fire_eye" -> pure TISFFireEye+        "otx_csv" -> pure TISFOtxCSV+        "proof_point" -> pure TISFProofPoint+        "stix" -> pure TISFStix+        "txt" -> pure TISFTxt+        e -> fromTextError $ "Failure parsing ThreatIntelSetFormat from value: '" <> e+           <> "'. Accepted values: alien_vault, fire_eye, otx_csv, proof_point, stix, txt"++instance ToText ThreatIntelSetFormat where+    toText = \case+        TISFAlienVault -> "ALIEN_VAULT"+        TISFFireEye -> "FIRE_EYE"+        TISFOtxCSV -> "OTX_CSV"+        TISFProofPoint -> "PROOF_POINT"+        TISFStix -> "STIX"+        TISFTxt -> "TXT"++instance Hashable     ThreatIntelSetFormat+instance NFData       ThreatIntelSetFormat+instance ToByteString ThreatIntelSetFormat+instance ToQuery      ThreatIntelSetFormat+instance ToHeader     ThreatIntelSetFormat++instance ToJSON ThreatIntelSetFormat where+    toJSON = toJSONText++instance FromJSON ThreatIntelSetFormat where+    parseJSON = parseJSONText "ThreatIntelSetFormat"++-- | The status of threatIntelSet file uploaded.+data ThreatIntelSetStatus+  = Activating+  | Active+  | Deactivating+  | DeletePending+  | Deleted+  | Error'+  | Inactive+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText ThreatIntelSetStatus where+    parser = takeLowerText >>= \case+        "activating" -> pure Activating+        "active" -> pure Active+        "deactivating" -> pure Deactivating+        "delete_pending" -> pure DeletePending+        "deleted" -> pure Deleted+        "error" -> pure Error'+        "inactive" -> pure Inactive+        e -> fromTextError $ "Failure parsing ThreatIntelSetStatus from value: '" <> e+           <> "'. Accepted values: activating, active, deactivating, delete_pending, deleted, error, inactive"++instance ToText ThreatIntelSetStatus where+    toText = \case+        Activating -> "ACTIVATING"+        Active -> "ACTIVE"+        Deactivating -> "DEACTIVATING"+        DeletePending -> "DELETE_PENDING"+        Deleted -> "DELETED"+        Error' -> "ERROR"+        Inactive -> "INACTIVE"++instance Hashable     ThreatIntelSetStatus+instance NFData       ThreatIntelSetStatus+instance ToByteString ThreatIntelSetStatus+instance ToQuery      ThreatIntelSetStatus+instance ToHeader     ThreatIntelSetStatus++instance FromJSON ThreatIntelSetStatus where+    parseJSON = parseJSONText "ThreatIntelSetStatus"
+ gen/Network/AWS/GuardDuty/UnarchiveFindings.hs view
@@ -0,0 +1,131 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.GuardDuty.UnarchiveFindings+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Unarchives Amazon GuardDuty findings specified by the list of finding IDs.+module Network.AWS.GuardDuty.UnarchiveFindings+    (+    -- * Creating a Request+      unarchiveFindings+    , UnarchiveFindings+    -- * Request Lenses+    , uFindingIds+    , uDetectorId++    -- * Destructuring the Response+    , unarchiveFindingsResponse+    , UnarchiveFindingsResponse+    -- * Response Lenses+    , ursResponseStatus+    ) where++import Network.AWS.GuardDuty.Types+import Network.AWS.GuardDuty.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | UnarchiveFindings request body.+--+-- /See:/ 'unarchiveFindings' smart constructor.+data UnarchiveFindings = UnarchiveFindings'+  { _uFindingIds :: !(Maybe [Text])+  , _uDetectorId :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'UnarchiveFindings' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'uFindingIds' - IDs of the findings that you want to unarchive.+--+-- * 'uDetectorId' - The ID of the detector that specifies the GuardDuty service whose findings you want to unarchive.+unarchiveFindings+    :: Text -- ^ 'uDetectorId'+    -> UnarchiveFindings+unarchiveFindings pDetectorId_ =+  UnarchiveFindings' {_uFindingIds = Nothing, _uDetectorId = pDetectorId_}+++-- | IDs of the findings that you want to unarchive.+uFindingIds :: Lens' UnarchiveFindings [Text]+uFindingIds = lens _uFindingIds (\ s a -> s{_uFindingIds = a}) . _Default . _Coerce++-- | The ID of the detector that specifies the GuardDuty service whose findings you want to unarchive.+uDetectorId :: Lens' UnarchiveFindings Text+uDetectorId = lens _uDetectorId (\ s a -> s{_uDetectorId = a})++instance AWSRequest UnarchiveFindings where+        type Rs UnarchiveFindings = UnarchiveFindingsResponse+        request = postJSON guardDuty+        response+          = receiveEmpty+              (\ s h x ->+                 UnarchiveFindingsResponse' <$> (pure (fromEnum s)))++instance Hashable UnarchiveFindings where++instance NFData UnarchiveFindings where++instance ToHeaders UnarchiveFindings where+        toHeaders+          = const+              (mconcat+                 ["Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON UnarchiveFindings where+        toJSON UnarchiveFindings'{..}+          = object+              (catMaybes [("findingIds" .=) <$> _uFindingIds])++instance ToPath UnarchiveFindings where+        toPath UnarchiveFindings'{..}+          = mconcat+              ["/detector/", toBS _uDetectorId,+               "/findings/unarchive"]++instance ToQuery UnarchiveFindings where+        toQuery = const mempty++-- | /See:/ 'unarchiveFindingsResponse' smart constructor.+newtype UnarchiveFindingsResponse = UnarchiveFindingsResponse'+  { _ursResponseStatus :: Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'UnarchiveFindingsResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ursResponseStatus' - -- | The response status code.+unarchiveFindingsResponse+    :: Int -- ^ 'ursResponseStatus'+    -> UnarchiveFindingsResponse+unarchiveFindingsResponse pResponseStatus_ =+  UnarchiveFindingsResponse' {_ursResponseStatus = pResponseStatus_}+++-- | -- | The response status code.+ursResponseStatus :: Lens' UnarchiveFindingsResponse Int+ursResponseStatus = lens _ursResponseStatus (\ s a -> s{_ursResponseStatus = a})++instance NFData UnarchiveFindingsResponse where
+ gen/Network/AWS/GuardDuty/UpdateDetector.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.GuardDuty.UpdateDetector+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates an Amazon GuardDuty detector specified by the detectorId.+module Network.AWS.GuardDuty.UpdateDetector+    (+    -- * Creating a Request+      updateDetector+    , UpdateDetector+    -- * Request Lenses+    , udEnable+    , udDetectorId++    -- * Destructuring the Response+    , updateDetectorResponse+    , UpdateDetectorResponse+    -- * Response Lenses+    , udrsResponseStatus+    ) where++import Network.AWS.GuardDuty.Types+import Network.AWS.GuardDuty.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | UpdateDetector request body.+--+-- /See:/ 'updateDetector' smart constructor.+data UpdateDetector = UpdateDetector'+  { _udEnable     :: !(Maybe Bool)+  , _udDetectorId :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'UpdateDetector' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'udEnable' - Updated boolean value for the detector that specifies whether the detector is enabled.+--+-- * 'udDetectorId' - The unique ID of the detector that you want to update.+updateDetector+    :: Text -- ^ 'udDetectorId'+    -> UpdateDetector+updateDetector pDetectorId_ =+  UpdateDetector' {_udEnable = Nothing, _udDetectorId = pDetectorId_}+++-- | Updated boolean value for the detector that specifies whether the detector is enabled.+udEnable :: Lens' UpdateDetector (Maybe Bool)+udEnable = lens _udEnable (\ s a -> s{_udEnable = a})++-- | The unique ID of the detector that you want to update.+udDetectorId :: Lens' UpdateDetector Text+udDetectorId = lens _udDetectorId (\ s a -> s{_udDetectorId = a})++instance AWSRequest UpdateDetector where+        type Rs UpdateDetector = UpdateDetectorResponse+        request = postJSON guardDuty+        response+          = receiveEmpty+              (\ s h x ->+                 UpdateDetectorResponse' <$> (pure (fromEnum s)))++instance Hashable UpdateDetector where++instance NFData UpdateDetector where++instance ToHeaders UpdateDetector where+        toHeaders+          = const+              (mconcat+                 ["Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON UpdateDetector where+        toJSON UpdateDetector'{..}+          = object (catMaybes [("enable" .=) <$> _udEnable])++instance ToPath UpdateDetector where+        toPath UpdateDetector'{..}+          = mconcat ["/detector/", toBS _udDetectorId]++instance ToQuery UpdateDetector where+        toQuery = const mempty++-- | /See:/ 'updateDetectorResponse' smart constructor.+newtype UpdateDetectorResponse = UpdateDetectorResponse'+  { _udrsResponseStatus :: Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'UpdateDetectorResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'udrsResponseStatus' - -- | The response status code.+updateDetectorResponse+    :: Int -- ^ 'udrsResponseStatus'+    -> UpdateDetectorResponse+updateDetectorResponse pResponseStatus_ =+  UpdateDetectorResponse' {_udrsResponseStatus = pResponseStatus_}+++-- | -- | The response status code.+udrsResponseStatus :: Lens' UpdateDetectorResponse Int+udrsResponseStatus = lens _udrsResponseStatus (\ s a -> s{_udrsResponseStatus = a})++instance NFData UpdateDetectorResponse where
+ gen/Network/AWS/GuardDuty/UpdateFilter.hs view
@@ -0,0 +1,185 @@+{-# 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.GuardDuty.UpdateFilter+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates the filter specified by the filter name.+module Network.AWS.GuardDuty.UpdateFilter+    (+    -- * Creating a Request+      updateFilter+    , UpdateFilter+    -- * Request Lenses+    , ufFindingCriteria+    , ufAction+    , ufDescription+    , ufRank+    , ufDetectorId+    , ufFilterName++    -- * Destructuring the Response+    , updateFilterResponse+    , UpdateFilterResponse+    -- * Response Lenses+    , ufrsName+    , ufrsResponseStatus+    ) where++import Network.AWS.GuardDuty.Types+import Network.AWS.GuardDuty.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | UpdateFilterRequest request body.+--+-- /See:/ 'updateFilter' smart constructor.+data UpdateFilter = UpdateFilter'+  { _ufFindingCriteria :: !(Maybe FindingCriteria)+  , _ufAction          :: !(Maybe FilterAction)+  , _ufDescription     :: !(Maybe Text)+  , _ufRank            :: !(Maybe Int)+  , _ufDetectorId      :: !Text+  , _ufFilterName      :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'UpdateFilter' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ufFindingCriteria' - Represents the criteria to be used in the filter for querying findings.+--+-- * 'ufAction' - Specifies the action that is to be applied to the findings that match the filter.+--+-- * 'ufDescription' - The description of the filter.+--+-- * 'ufRank' - Specifies the position of the filter in the list of current filters. Also specifies the order in which this filter is applied to the findings.+--+-- * 'ufDetectorId' - The unique ID of the detector that specifies the GuardDuty service where you want to update a filter.+--+-- * 'ufFilterName' - The name of the filter.+updateFilter+    :: Text -- ^ 'ufDetectorId'+    -> Text -- ^ 'ufFilterName'+    -> UpdateFilter+updateFilter pDetectorId_ pFilterName_ =+  UpdateFilter'+    { _ufFindingCriteria = Nothing+    , _ufAction = Nothing+    , _ufDescription = Nothing+    , _ufRank = Nothing+    , _ufDetectorId = pDetectorId_+    , _ufFilterName = pFilterName_+    }+++-- | Represents the criteria to be used in the filter for querying findings.+ufFindingCriteria :: Lens' UpdateFilter (Maybe FindingCriteria)+ufFindingCriteria = lens _ufFindingCriteria (\ s a -> s{_ufFindingCriteria = a})++-- | Specifies the action that is to be applied to the findings that match the filter.+ufAction :: Lens' UpdateFilter (Maybe FilterAction)+ufAction = lens _ufAction (\ s a -> s{_ufAction = a})++-- | The description of the filter.+ufDescription :: Lens' UpdateFilter (Maybe Text)+ufDescription = lens _ufDescription (\ s a -> s{_ufDescription = a})++-- | Specifies the position of the filter in the list of current filters. Also specifies the order in which this filter is applied to the findings.+ufRank :: Lens' UpdateFilter (Maybe Int)+ufRank = lens _ufRank (\ s a -> s{_ufRank = a})++-- | The unique ID of the detector that specifies the GuardDuty service where you want to update a filter.+ufDetectorId :: Lens' UpdateFilter Text+ufDetectorId = lens _ufDetectorId (\ s a -> s{_ufDetectorId = a})++-- | The name of the filter.+ufFilterName :: Lens' UpdateFilter Text+ufFilterName = lens _ufFilterName (\ s a -> s{_ufFilterName = a})++instance AWSRequest UpdateFilter where+        type Rs UpdateFilter = UpdateFilterResponse+        request = postJSON guardDuty+        response+          = receiveJSON+              (\ s h x ->+                 UpdateFilterResponse' <$>+                   (x .?> "name") <*> (pure (fromEnum s)))++instance Hashable UpdateFilter where++instance NFData UpdateFilter where++instance ToHeaders UpdateFilter where+        toHeaders+          = const+              (mconcat+                 ["Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON UpdateFilter where+        toJSON UpdateFilter'{..}+          = object+              (catMaybes+                 [("findingCriteria" .=) <$> _ufFindingCriteria,+                  ("action" .=) <$> _ufAction,+                  ("description" .=) <$> _ufDescription,+                  ("rank" .=) <$> _ufRank])++instance ToPath UpdateFilter where+        toPath UpdateFilter'{..}+          = mconcat+              ["/detector/", toBS _ufDetectorId, "/filter/",+               toBS _ufFilterName]++instance ToQuery UpdateFilter where+        toQuery = const mempty++-- | /See:/ 'updateFilterResponse' smart constructor.+data UpdateFilterResponse = UpdateFilterResponse'+  { _ufrsName           :: !(Maybe Text)+  , _ufrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'UpdateFilterResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ufrsName' - The name of the filter.+--+-- * 'ufrsResponseStatus' - -- | The response status code.+updateFilterResponse+    :: Int -- ^ 'ufrsResponseStatus'+    -> UpdateFilterResponse+updateFilterResponse pResponseStatus_ =+  UpdateFilterResponse'+    {_ufrsName = Nothing, _ufrsResponseStatus = pResponseStatus_}+++-- | The name of the filter.+ufrsName :: Lens' UpdateFilterResponse (Maybe Text)+ufrsName = lens _ufrsName (\ s a -> s{_ufrsName = a})++-- | -- | The response status code.+ufrsResponseStatus :: Lens' UpdateFilterResponse Int+ufrsResponseStatus = lens _ufrsResponseStatus (\ s a -> s{_ufrsResponseStatus = a})++instance NFData UpdateFilterResponse where
+ gen/Network/AWS/GuardDuty/UpdateFindingsFeedback.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.GuardDuty.UpdateFindingsFeedback+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Marks specified Amazon GuardDuty findings as useful or not useful.+module Network.AWS.GuardDuty.UpdateFindingsFeedback+    (+    -- * Creating a Request+      updateFindingsFeedback+    , UpdateFindingsFeedback+    -- * Request Lenses+    , uffFindingIds+    , uffComments+    , uffFeedback+    , uffDetectorId++    -- * Destructuring the Response+    , updateFindingsFeedbackResponse+    , UpdateFindingsFeedbackResponse+    -- * Response Lenses+    , uffrsResponseStatus+    ) where++import Network.AWS.GuardDuty.Types+import Network.AWS.GuardDuty.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | UpdateFindingsFeedback request body.+--+-- /See:/ 'updateFindingsFeedback' smart constructor.+data UpdateFindingsFeedback = UpdateFindingsFeedback'+  { _uffFindingIds :: !(Maybe [Text])+  , _uffComments   :: !(Maybe Text)+  , _uffFeedback   :: !(Maybe Feedback)+  , _uffDetectorId :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'UpdateFindingsFeedback' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'uffFindingIds' - IDs of the findings that you want to mark as useful or not useful.+--+-- * 'uffComments' - Additional feedback about the GuardDuty findings.+--+-- * 'uffFeedback' - Valid values: USEFUL | NOT_USEFUL+--+-- * 'uffDetectorId' - The ID of the detector that specifies the GuardDuty service whose findings you want to mark as useful or not useful.+updateFindingsFeedback+    :: Text -- ^ 'uffDetectorId'+    -> UpdateFindingsFeedback+updateFindingsFeedback pDetectorId_ =+  UpdateFindingsFeedback'+    { _uffFindingIds = Nothing+    , _uffComments = Nothing+    , _uffFeedback = Nothing+    , _uffDetectorId = pDetectorId_+    }+++-- | IDs of the findings that you want to mark as useful or not useful.+uffFindingIds :: Lens' UpdateFindingsFeedback [Text]+uffFindingIds = lens _uffFindingIds (\ s a -> s{_uffFindingIds = a}) . _Default . _Coerce++-- | Additional feedback about the GuardDuty findings.+uffComments :: Lens' UpdateFindingsFeedback (Maybe Text)+uffComments = lens _uffComments (\ s a -> s{_uffComments = a})++-- | Valid values: USEFUL | NOT_USEFUL+uffFeedback :: Lens' UpdateFindingsFeedback (Maybe Feedback)+uffFeedback = lens _uffFeedback (\ s a -> s{_uffFeedback = a})++-- | The ID of the detector that specifies the GuardDuty service whose findings you want to mark as useful or not useful.+uffDetectorId :: Lens' UpdateFindingsFeedback Text+uffDetectorId = lens _uffDetectorId (\ s a -> s{_uffDetectorId = a})++instance AWSRequest UpdateFindingsFeedback where+        type Rs UpdateFindingsFeedback =+             UpdateFindingsFeedbackResponse+        request = postJSON guardDuty+        response+          = receiveEmpty+              (\ s h x ->+                 UpdateFindingsFeedbackResponse' <$>+                   (pure (fromEnum s)))++instance Hashable UpdateFindingsFeedback where++instance NFData UpdateFindingsFeedback where++instance ToHeaders UpdateFindingsFeedback where+        toHeaders+          = const+              (mconcat+                 ["Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON UpdateFindingsFeedback where+        toJSON UpdateFindingsFeedback'{..}+          = object+              (catMaybes+                 [("findingIds" .=) <$> _uffFindingIds,+                  ("comments" .=) <$> _uffComments,+                  ("feedback" .=) <$> _uffFeedback])++instance ToPath UpdateFindingsFeedback where+        toPath UpdateFindingsFeedback'{..}+          = mconcat+              ["/detector/", toBS _uffDetectorId,+               "/findings/feedback"]++instance ToQuery UpdateFindingsFeedback where+        toQuery = const mempty++-- | /See:/ 'updateFindingsFeedbackResponse' smart constructor.+newtype UpdateFindingsFeedbackResponse = UpdateFindingsFeedbackResponse'+  { _uffrsResponseStatus :: Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'UpdateFindingsFeedbackResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'uffrsResponseStatus' - -- | The response status code.+updateFindingsFeedbackResponse+    :: Int -- ^ 'uffrsResponseStatus'+    -> UpdateFindingsFeedbackResponse+updateFindingsFeedbackResponse pResponseStatus_ =+  UpdateFindingsFeedbackResponse' {_uffrsResponseStatus = pResponseStatus_}+++-- | -- | The response status code.+uffrsResponseStatus :: Lens' UpdateFindingsFeedbackResponse Int+uffrsResponseStatus = lens _uffrsResponseStatus (\ s a -> s{_uffrsResponseStatus = a})++instance NFData UpdateFindingsFeedbackResponse where
+ gen/Network/AWS/GuardDuty/UpdateIPSet.hs view
@@ -0,0 +1,165 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.GuardDuty.UpdateIPSet+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates the IPSet specified by the IPSet ID.+module Network.AWS.GuardDuty.UpdateIPSet+    (+    -- * Creating a Request+      updateIPSet+    , UpdateIPSet+    -- * Request Lenses+    , uisLocation+    , uisActivate+    , uisName+    , uisDetectorId+    , uisIPSetId++    -- * Destructuring the Response+    , updateIPSetResponse+    , UpdateIPSetResponse+    -- * Response Lenses+    , uisrsResponseStatus+    ) where++import Network.AWS.GuardDuty.Types+import Network.AWS.GuardDuty.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | UpdateIPSet request body.+--+-- /See:/ 'updateIPSet' smart constructor.+data UpdateIPSet = UpdateIPSet'+  { _uisLocation   :: !(Maybe Text)+  , _uisActivate   :: !(Maybe Bool)+  , _uisName       :: !(Maybe Text)+  , _uisDetectorId :: !Text+  , _uisIPSetId    :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'UpdateIPSet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'uisLocation' - The updated URI of the file that contains the IPSet. For example (https://s3.us-west-2.amazonaws.com/my-bucket/my-object-key).+--+-- * 'uisActivate' - The updated boolean value that specifies whether the IPSet is active or not.+--+-- * 'uisName' - The unique ID that specifies the IPSet that you want to update.+--+-- * 'uisDetectorId' - The detectorID that specifies the GuardDuty service whose IPSet you want to update.+--+-- * 'uisIPSetId' - The unique ID that specifies the IPSet that you want to update.+updateIPSet+    :: Text -- ^ 'uisDetectorId'+    -> Text -- ^ 'uisIPSetId'+    -> UpdateIPSet+updateIPSet pDetectorId_ pIPSetId_ =+  UpdateIPSet'+    { _uisLocation = Nothing+    , _uisActivate = Nothing+    , _uisName = Nothing+    , _uisDetectorId = pDetectorId_+    , _uisIPSetId = pIPSetId_+    }+++-- | The updated URI of the file that contains the IPSet. For example (https://s3.us-west-2.amazonaws.com/my-bucket/my-object-key).+uisLocation :: Lens' UpdateIPSet (Maybe Text)+uisLocation = lens _uisLocation (\ s a -> s{_uisLocation = a})++-- | The updated boolean value that specifies whether the IPSet is active or not.+uisActivate :: Lens' UpdateIPSet (Maybe Bool)+uisActivate = lens _uisActivate (\ s a -> s{_uisActivate = a})++-- | The unique ID that specifies the IPSet that you want to update.+uisName :: Lens' UpdateIPSet (Maybe Text)+uisName = lens _uisName (\ s a -> s{_uisName = a})++-- | The detectorID that specifies the GuardDuty service whose IPSet you want to update.+uisDetectorId :: Lens' UpdateIPSet Text+uisDetectorId = lens _uisDetectorId (\ s a -> s{_uisDetectorId = a})++-- | The unique ID that specifies the IPSet that you want to update.+uisIPSetId :: Lens' UpdateIPSet Text+uisIPSetId = lens _uisIPSetId (\ s a -> s{_uisIPSetId = a})++instance AWSRequest UpdateIPSet where+        type Rs UpdateIPSet = UpdateIPSetResponse+        request = postJSON guardDuty+        response+          = receiveEmpty+              (\ s h x ->+                 UpdateIPSetResponse' <$> (pure (fromEnum s)))++instance Hashable UpdateIPSet where++instance NFData UpdateIPSet where++instance ToHeaders UpdateIPSet where+        toHeaders+          = const+              (mconcat+                 ["Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON UpdateIPSet where+        toJSON UpdateIPSet'{..}+          = object+              (catMaybes+                 [("location" .=) <$> _uisLocation,+                  ("activate" .=) <$> _uisActivate,+                  ("name" .=) <$> _uisName])++instance ToPath UpdateIPSet where+        toPath UpdateIPSet'{..}+          = mconcat+              ["/detector/", toBS _uisDetectorId, "/ipset/",+               toBS _uisIPSetId]++instance ToQuery UpdateIPSet where+        toQuery = const mempty++-- | /See:/ 'updateIPSetResponse' smart constructor.+newtype UpdateIPSetResponse = UpdateIPSetResponse'+  { _uisrsResponseStatus :: Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'UpdateIPSetResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'uisrsResponseStatus' - -- | The response status code.+updateIPSetResponse+    :: Int -- ^ 'uisrsResponseStatus'+    -> UpdateIPSetResponse+updateIPSetResponse pResponseStatus_ =+  UpdateIPSetResponse' {_uisrsResponseStatus = pResponseStatus_}+++-- | -- | The response status code.+uisrsResponseStatus :: Lens' UpdateIPSetResponse Int+uisrsResponseStatus = lens _uisrsResponseStatus (\ s a -> s{_uisrsResponseStatus = a})++instance NFData UpdateIPSetResponse where
+ gen/Network/AWS/GuardDuty/UpdateThreatIntelSet.hs view
@@ -0,0 +1,167 @@+{-# 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.GuardDuty.UpdateThreatIntelSet+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates the ThreatIntelSet specified by ThreatIntelSet ID.+module Network.AWS.GuardDuty.UpdateThreatIntelSet+    (+    -- * Creating a Request+      updateThreatIntelSet+    , UpdateThreatIntelSet+    -- * Request Lenses+    , utisLocation+    , utisActivate+    , utisName+    , utisThreatIntelSetId+    , utisDetectorId++    -- * Destructuring the Response+    , updateThreatIntelSetResponse+    , UpdateThreatIntelSetResponse+    -- * Response Lenses+    , utisrsResponseStatus+    ) where++import Network.AWS.GuardDuty.Types+import Network.AWS.GuardDuty.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | UpdateThreatIntelSet request body.+--+-- /See:/ 'updateThreatIntelSet' smart constructor.+data UpdateThreatIntelSet = UpdateThreatIntelSet'+  { _utisLocation         :: !(Maybe Text)+  , _utisActivate         :: !(Maybe Bool)+  , _utisName             :: !(Maybe Text)+  , _utisThreatIntelSetId :: !Text+  , _utisDetectorId       :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'UpdateThreatIntelSet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'utisLocation' - The updated URI of the file that contains the ThreateIntelSet. For example (https://s3.us-west-2.amazonaws.com/my-bucket/my-object-key)+--+-- * 'utisActivate' - The updated boolean value that specifies whether the ThreateIntelSet is active or not.+--+-- * 'utisName' - The unique ID that specifies the ThreatIntelSet that you want to update.+--+-- * 'utisThreatIntelSetId' - The unique ID that specifies the ThreatIntelSet that you want to update.+--+-- * 'utisDetectorId' - The detectorID that specifies the GuardDuty service whose ThreatIntelSet you want to update.+updateThreatIntelSet+    :: Text -- ^ 'utisThreatIntelSetId'+    -> Text -- ^ 'utisDetectorId'+    -> UpdateThreatIntelSet+updateThreatIntelSet pThreatIntelSetId_ pDetectorId_ =+  UpdateThreatIntelSet'+    { _utisLocation = Nothing+    , _utisActivate = Nothing+    , _utisName = Nothing+    , _utisThreatIntelSetId = pThreatIntelSetId_+    , _utisDetectorId = pDetectorId_+    }+++-- | The updated URI of the file that contains the ThreateIntelSet. For example (https://s3.us-west-2.amazonaws.com/my-bucket/my-object-key)+utisLocation :: Lens' UpdateThreatIntelSet (Maybe Text)+utisLocation = lens _utisLocation (\ s a -> s{_utisLocation = a})++-- | The updated boolean value that specifies whether the ThreateIntelSet is active or not.+utisActivate :: Lens' UpdateThreatIntelSet (Maybe Bool)+utisActivate = lens _utisActivate (\ s a -> s{_utisActivate = a})++-- | The unique ID that specifies the ThreatIntelSet that you want to update.+utisName :: Lens' UpdateThreatIntelSet (Maybe Text)+utisName = lens _utisName (\ s a -> s{_utisName = a})++-- | The unique ID that specifies the ThreatIntelSet that you want to update.+utisThreatIntelSetId :: Lens' UpdateThreatIntelSet Text+utisThreatIntelSetId = lens _utisThreatIntelSetId (\ s a -> s{_utisThreatIntelSetId = a})++-- | The detectorID that specifies the GuardDuty service whose ThreatIntelSet you want to update.+utisDetectorId :: Lens' UpdateThreatIntelSet Text+utisDetectorId = lens _utisDetectorId (\ s a -> s{_utisDetectorId = a})++instance AWSRequest UpdateThreatIntelSet where+        type Rs UpdateThreatIntelSet =+             UpdateThreatIntelSetResponse+        request = postJSON guardDuty+        response+          = receiveEmpty+              (\ s h x ->+                 UpdateThreatIntelSetResponse' <$>+                   (pure (fromEnum s)))++instance Hashable UpdateThreatIntelSet where++instance NFData UpdateThreatIntelSet where++instance ToHeaders UpdateThreatIntelSet where+        toHeaders+          = const+              (mconcat+                 ["Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON UpdateThreatIntelSet where+        toJSON UpdateThreatIntelSet'{..}+          = object+              (catMaybes+                 [("location" .=) <$> _utisLocation,+                  ("activate" .=) <$> _utisActivate,+                  ("name" .=) <$> _utisName])++instance ToPath UpdateThreatIntelSet where+        toPath UpdateThreatIntelSet'{..}+          = mconcat+              ["/detector/", toBS _utisDetectorId,+               "/threatintelset/", toBS _utisThreatIntelSetId]++instance ToQuery UpdateThreatIntelSet where+        toQuery = const mempty++-- | /See:/ 'updateThreatIntelSetResponse' smart constructor.+newtype UpdateThreatIntelSetResponse = UpdateThreatIntelSetResponse'+  { _utisrsResponseStatus :: Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'UpdateThreatIntelSetResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'utisrsResponseStatus' - -- | The response status code.+updateThreatIntelSetResponse+    :: Int -- ^ 'utisrsResponseStatus'+    -> UpdateThreatIntelSetResponse+updateThreatIntelSetResponse pResponseStatus_ =+  UpdateThreatIntelSetResponse' {_utisrsResponseStatus = pResponseStatus_}+++-- | -- | The response status code.+utisrsResponseStatus :: Lens' UpdateThreatIntelSetResponse Int+utisrsResponseStatus = lens _utisrsResponseStatus (\ s a -> s{_utisrsResponseStatus = a})++instance NFData UpdateThreatIntelSetResponse where
+ gen/Network/AWS/GuardDuty/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.GuardDuty.Waiters+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Network.AWS.GuardDuty.Waiters where++import Network.AWS.GuardDuty.Types+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Waiter
+ src/.gitkeep view
+ test/Main.hs view
@@ -0,0 +1,21 @@+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module      : Main+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Main (main) where++import Test.Tasty+import Test.AWS.GuardDuty+import Test.AWS.GuardDuty.Internal++main :: IO ()+main = defaultMain $ testGroup "GuardDuty"+    [ testGroup "tests"    tests+    , testGroup "fixtures" fixtures+    ]
+ test/Test/AWS/Gen/GuardDuty.hs view
@@ -0,0 +1,795 @@+{-# 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.GuardDuty+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Test.AWS.Gen.GuardDuty where++import Data.Proxy+import Network.AWS.GuardDuty+import Test.AWS.Fixture+import Test.AWS.GuardDuty.Internal+import Test.AWS.Prelude+import Test.Tasty++-- Auto-generated: the actual test selection needs to be manually placed into+-- the top-level so that real test data can be incrementally added.+--+-- This commented snippet is what the entire set should look like:++-- fixtures :: TestTree+-- fixtures =+--     [ testGroup "request"+--         [ requestCreateFilter $+--             createFilter+--+--         , requestListFindings $+--             listFindings+--+--         , requestCreateIPSet $+--             createIPSet+--+--         , requestDeleteThreatIntelSet $+--             deleteThreatIntelSet+--+--         , requestUpdateThreatIntelSet $+--             updateThreatIntelSet+--+--         , requestStopMonitoringMembers $+--             stopMonitoringMembers+--+--         , requestListThreatIntelSets $+--             listThreatIntelSets+--+--         , requestCreateThreatIntelSet $+--             createThreatIntelSet+--+--         , requestDeleteMembers $+--             deleteMembers+--+--         , requestGetFindingsStatistics $+--             getFindingsStatistics+--+--         , requestGetIPSet $+--             getIPSet+--+--         , requestListInvitations $+--             listInvitations+--+--         , requestGetThreatIntelSet $+--             getThreatIntelSet+--+--         , requestDeleteInvitations $+--             deleteInvitations+--+--         , requestGetMasterAccount $+--             getMasterAccount+--+--         , requestCreateDetector $+--             createDetector+--+--         , requestDeclineInvitations $+--             declineInvitations+--+--         , requestUpdateFilter $+--             updateFilter+--+--         , requestDeleteFilter $+--             deleteFilter+--+--         , requestDisassociateMembers $+--             disassociateMembers+--+--         , requestDisassociateFromMasterAccount $+--             disassociateFromMasterAccount+--+--         , requestAcceptInvitation $+--             acceptInvitation+--+--         , requestListFilters $+--             listFilters+--+--         , requestListMembers $+--             listMembers+--+--         , requestGetDetector $+--             getDetector+--+--         , requestCreateSampleFindings $+--             createSampleFindings+--+--         , requestArchiveFindings $+--             archiveFindings+--+--         , requestCreateMembers $+--             createMembers+--+--         , requestUnarchiveFindings $+--             unarchiveFindings+--+--         , requestGetInvitationsCount $+--             getInvitationsCount+--+--         , requestStartMonitoringMembers $+--             startMonitoringMembers+--+--         , requestInviteMembers $+--             inviteMembers+--+--         , requestDeleteIPSet $+--             deleteIPSet+--+--         , requestUpdateIPSet $+--             updateIPSet+--+--         , requestListIPSets $+--             listIPSets+--+--         , requestGetMembers $+--             getMembers+--+--         , requestGetFindings $+--             getFindings+--+--         , requestListDetectors $+--             listDetectors+--+--         , requestUpdateDetector $+--             updateDetector+--+--         , requestDeleteDetector $+--             deleteDetector+--+--         , requestUpdateFindingsFeedback $+--             updateFindingsFeedback+--+--         , requestGetFilter $+--             getFilter+--+--           ]++--     , testGroup "response"+--         [ responseCreateFilter $+--             createFilterResponse+--+--         , responseListFindings $+--             listFindingsResponse+--+--         , responseCreateIPSet $+--             createIPSetResponse+--+--         , responseDeleteThreatIntelSet $+--             deleteThreatIntelSetResponse+--+--         , responseUpdateThreatIntelSet $+--             updateThreatIntelSetResponse+--+--         , responseStopMonitoringMembers $+--             stopMonitoringMembersResponse+--+--         , responseListThreatIntelSets $+--             listThreatIntelSetsResponse+--+--         , responseCreateThreatIntelSet $+--             createThreatIntelSetResponse+--+--         , responseDeleteMembers $+--             deleteMembersResponse+--+--         , responseGetFindingsStatistics $+--             getFindingsStatisticsResponse+--+--         , responseGetIPSet $+--             getIPSetResponse+--+--         , responseListInvitations $+--             listInvitationsResponse+--+--         , responseGetThreatIntelSet $+--             getThreatIntelSetResponse+--+--         , responseDeleteInvitations $+--             deleteInvitationsResponse+--+--         , responseGetMasterAccount $+--             getMasterAccountResponse+--+--         , responseCreateDetector $+--             createDetectorResponse+--+--         , responseDeclineInvitations $+--             declineInvitationsResponse+--+--         , responseUpdateFilter $+--             updateFilterResponse+--+--         , responseDeleteFilter $+--             deleteFilterResponse+--+--         , responseDisassociateMembers $+--             disassociateMembersResponse+--+--         , responseDisassociateFromMasterAccount $+--             disassociateFromMasterAccountResponse+--+--         , responseAcceptInvitation $+--             acceptInvitationResponse+--+--         , responseListFilters $+--             listFiltersResponse+--+--         , responseListMembers $+--             listMembersResponse+--+--         , responseGetDetector $+--             getDetectorResponse+--+--         , responseCreateSampleFindings $+--             createSampleFindingsResponse+--+--         , responseArchiveFindings $+--             archiveFindingsResponse+--+--         , responseCreateMembers $+--             createMembersResponse+--+--         , responseUnarchiveFindings $+--             unarchiveFindingsResponse+--+--         , responseGetInvitationsCount $+--             getInvitationsCountResponse+--+--         , responseStartMonitoringMembers $+--             startMonitoringMembersResponse+--+--         , responseInviteMembers $+--             inviteMembersResponse+--+--         , responseDeleteIPSet $+--             deleteIPSetResponse+--+--         , responseUpdateIPSet $+--             updateIPSetResponse+--+--         , responseListIPSets $+--             listIPSetsResponse+--+--         , responseGetMembers $+--             getMembersResponse+--+--         , responseGetFindings $+--             getFindingsResponse+--+--         , responseListDetectors $+--             listDetectorsResponse+--+--         , responseUpdateDetector $+--             updateDetectorResponse+--+--         , responseDeleteDetector $+--             deleteDetectorResponse+--+--         , responseUpdateFindingsFeedback $+--             updateFindingsFeedbackResponse+--+--         , responseGetFilter $+--             getFilterResponse+--+--           ]+--     ]++-- Requests++requestCreateFilter :: CreateFilter -> TestTree+requestCreateFilter = req+    "CreateFilter"+    "fixture/CreateFilter.yaml"++requestListFindings :: ListFindings -> TestTree+requestListFindings = req+    "ListFindings"+    "fixture/ListFindings.yaml"++requestCreateIPSet :: CreateIPSet -> TestTree+requestCreateIPSet = req+    "CreateIPSet"+    "fixture/CreateIPSet.yaml"++requestDeleteThreatIntelSet :: DeleteThreatIntelSet -> TestTree+requestDeleteThreatIntelSet = req+    "DeleteThreatIntelSet"+    "fixture/DeleteThreatIntelSet.yaml"++requestUpdateThreatIntelSet :: UpdateThreatIntelSet -> TestTree+requestUpdateThreatIntelSet = req+    "UpdateThreatIntelSet"+    "fixture/UpdateThreatIntelSet.yaml"++requestStopMonitoringMembers :: StopMonitoringMembers -> TestTree+requestStopMonitoringMembers = req+    "StopMonitoringMembers"+    "fixture/StopMonitoringMembers.yaml"++requestListThreatIntelSets :: ListThreatIntelSets -> TestTree+requestListThreatIntelSets = req+    "ListThreatIntelSets"+    "fixture/ListThreatIntelSets.yaml"++requestCreateThreatIntelSet :: CreateThreatIntelSet -> TestTree+requestCreateThreatIntelSet = req+    "CreateThreatIntelSet"+    "fixture/CreateThreatIntelSet.yaml"++requestDeleteMembers :: DeleteMembers -> TestTree+requestDeleteMembers = req+    "DeleteMembers"+    "fixture/DeleteMembers.yaml"++requestGetFindingsStatistics :: GetFindingsStatistics -> TestTree+requestGetFindingsStatistics = req+    "GetFindingsStatistics"+    "fixture/GetFindingsStatistics.yaml"++requestGetIPSet :: GetIPSet -> TestTree+requestGetIPSet = req+    "GetIPSet"+    "fixture/GetIPSet.yaml"++requestListInvitations :: ListInvitations -> TestTree+requestListInvitations = req+    "ListInvitations"+    "fixture/ListInvitations.yaml"++requestGetThreatIntelSet :: GetThreatIntelSet -> TestTree+requestGetThreatIntelSet = req+    "GetThreatIntelSet"+    "fixture/GetThreatIntelSet.yaml"++requestDeleteInvitations :: DeleteInvitations -> TestTree+requestDeleteInvitations = req+    "DeleteInvitations"+    "fixture/DeleteInvitations.yaml"++requestGetMasterAccount :: GetMasterAccount -> TestTree+requestGetMasterAccount = req+    "GetMasterAccount"+    "fixture/GetMasterAccount.yaml"++requestCreateDetector :: CreateDetector -> TestTree+requestCreateDetector = req+    "CreateDetector"+    "fixture/CreateDetector.yaml"++requestDeclineInvitations :: DeclineInvitations -> TestTree+requestDeclineInvitations = req+    "DeclineInvitations"+    "fixture/DeclineInvitations.yaml"++requestUpdateFilter :: UpdateFilter -> TestTree+requestUpdateFilter = req+    "UpdateFilter"+    "fixture/UpdateFilter.yaml"++requestDeleteFilter :: DeleteFilter -> TestTree+requestDeleteFilter = req+    "DeleteFilter"+    "fixture/DeleteFilter.yaml"++requestDisassociateMembers :: DisassociateMembers -> TestTree+requestDisassociateMembers = req+    "DisassociateMembers"+    "fixture/DisassociateMembers.yaml"++requestDisassociateFromMasterAccount :: DisassociateFromMasterAccount -> TestTree+requestDisassociateFromMasterAccount = req+    "DisassociateFromMasterAccount"+    "fixture/DisassociateFromMasterAccount.yaml"++requestAcceptInvitation :: AcceptInvitation -> TestTree+requestAcceptInvitation = req+    "AcceptInvitation"+    "fixture/AcceptInvitation.yaml"++requestListFilters :: ListFilters -> TestTree+requestListFilters = req+    "ListFilters"+    "fixture/ListFilters.yaml"++requestListMembers :: ListMembers -> TestTree+requestListMembers = req+    "ListMembers"+    "fixture/ListMembers.yaml"++requestGetDetector :: GetDetector -> TestTree+requestGetDetector = req+    "GetDetector"+    "fixture/GetDetector.yaml"++requestCreateSampleFindings :: CreateSampleFindings -> TestTree+requestCreateSampleFindings = req+    "CreateSampleFindings"+    "fixture/CreateSampleFindings.yaml"++requestArchiveFindings :: ArchiveFindings -> TestTree+requestArchiveFindings = req+    "ArchiveFindings"+    "fixture/ArchiveFindings.yaml"++requestCreateMembers :: CreateMembers -> TestTree+requestCreateMembers = req+    "CreateMembers"+    "fixture/CreateMembers.yaml"++requestUnarchiveFindings :: UnarchiveFindings -> TestTree+requestUnarchiveFindings = req+    "UnarchiveFindings"+    "fixture/UnarchiveFindings.yaml"++requestGetInvitationsCount :: GetInvitationsCount -> TestTree+requestGetInvitationsCount = req+    "GetInvitationsCount"+    "fixture/GetInvitationsCount.yaml"++requestStartMonitoringMembers :: StartMonitoringMembers -> TestTree+requestStartMonitoringMembers = req+    "StartMonitoringMembers"+    "fixture/StartMonitoringMembers.yaml"++requestInviteMembers :: InviteMembers -> TestTree+requestInviteMembers = req+    "InviteMembers"+    "fixture/InviteMembers.yaml"++requestDeleteIPSet :: DeleteIPSet -> TestTree+requestDeleteIPSet = req+    "DeleteIPSet"+    "fixture/DeleteIPSet.yaml"++requestUpdateIPSet :: UpdateIPSet -> TestTree+requestUpdateIPSet = req+    "UpdateIPSet"+    "fixture/UpdateIPSet.yaml"++requestListIPSets :: ListIPSets -> TestTree+requestListIPSets = req+    "ListIPSets"+    "fixture/ListIPSets.yaml"++requestGetMembers :: GetMembers -> TestTree+requestGetMembers = req+    "GetMembers"+    "fixture/GetMembers.yaml"++requestGetFindings :: GetFindings -> TestTree+requestGetFindings = req+    "GetFindings"+    "fixture/GetFindings.yaml"++requestListDetectors :: ListDetectors -> TestTree+requestListDetectors = req+    "ListDetectors"+    "fixture/ListDetectors.yaml"++requestUpdateDetector :: UpdateDetector -> TestTree+requestUpdateDetector = req+    "UpdateDetector"+    "fixture/UpdateDetector.yaml"++requestDeleteDetector :: DeleteDetector -> TestTree+requestDeleteDetector = req+    "DeleteDetector"+    "fixture/DeleteDetector.yaml"++requestUpdateFindingsFeedback :: UpdateFindingsFeedback -> TestTree+requestUpdateFindingsFeedback = req+    "UpdateFindingsFeedback"+    "fixture/UpdateFindingsFeedback.yaml"++requestGetFilter :: GetFilter -> TestTree+requestGetFilter = req+    "GetFilter"+    "fixture/GetFilter.yaml"++-- Responses++responseCreateFilter :: CreateFilterResponse -> TestTree+responseCreateFilter = res+    "CreateFilterResponse"+    "fixture/CreateFilterResponse.proto"+    guardDuty+    (Proxy :: Proxy CreateFilter)++responseListFindings :: ListFindingsResponse -> TestTree+responseListFindings = res+    "ListFindingsResponse"+    "fixture/ListFindingsResponse.proto"+    guardDuty+    (Proxy :: Proxy ListFindings)++responseCreateIPSet :: CreateIPSetResponse -> TestTree+responseCreateIPSet = res+    "CreateIPSetResponse"+    "fixture/CreateIPSetResponse.proto"+    guardDuty+    (Proxy :: Proxy CreateIPSet)++responseDeleteThreatIntelSet :: DeleteThreatIntelSetResponse -> TestTree+responseDeleteThreatIntelSet = res+    "DeleteThreatIntelSetResponse"+    "fixture/DeleteThreatIntelSetResponse.proto"+    guardDuty+    (Proxy :: Proxy DeleteThreatIntelSet)++responseUpdateThreatIntelSet :: UpdateThreatIntelSetResponse -> TestTree+responseUpdateThreatIntelSet = res+    "UpdateThreatIntelSetResponse"+    "fixture/UpdateThreatIntelSetResponse.proto"+    guardDuty+    (Proxy :: Proxy UpdateThreatIntelSet)++responseStopMonitoringMembers :: StopMonitoringMembersResponse -> TestTree+responseStopMonitoringMembers = res+    "StopMonitoringMembersResponse"+    "fixture/StopMonitoringMembersResponse.proto"+    guardDuty+    (Proxy :: Proxy StopMonitoringMembers)++responseListThreatIntelSets :: ListThreatIntelSetsResponse -> TestTree+responseListThreatIntelSets = res+    "ListThreatIntelSetsResponse"+    "fixture/ListThreatIntelSetsResponse.proto"+    guardDuty+    (Proxy :: Proxy ListThreatIntelSets)++responseCreateThreatIntelSet :: CreateThreatIntelSetResponse -> TestTree+responseCreateThreatIntelSet = res+    "CreateThreatIntelSetResponse"+    "fixture/CreateThreatIntelSetResponse.proto"+    guardDuty+    (Proxy :: Proxy CreateThreatIntelSet)++responseDeleteMembers :: DeleteMembersResponse -> TestTree+responseDeleteMembers = res+    "DeleteMembersResponse"+    "fixture/DeleteMembersResponse.proto"+    guardDuty+    (Proxy :: Proxy DeleteMembers)++responseGetFindingsStatistics :: GetFindingsStatisticsResponse -> TestTree+responseGetFindingsStatistics = res+    "GetFindingsStatisticsResponse"+    "fixture/GetFindingsStatisticsResponse.proto"+    guardDuty+    (Proxy :: Proxy GetFindingsStatistics)++responseGetIPSet :: GetIPSetResponse -> TestTree+responseGetIPSet = res+    "GetIPSetResponse"+    "fixture/GetIPSetResponse.proto"+    guardDuty+    (Proxy :: Proxy GetIPSet)++responseListInvitations :: ListInvitationsResponse -> TestTree+responseListInvitations = res+    "ListInvitationsResponse"+    "fixture/ListInvitationsResponse.proto"+    guardDuty+    (Proxy :: Proxy ListInvitations)++responseGetThreatIntelSet :: GetThreatIntelSetResponse -> TestTree+responseGetThreatIntelSet = res+    "GetThreatIntelSetResponse"+    "fixture/GetThreatIntelSetResponse.proto"+    guardDuty+    (Proxy :: Proxy GetThreatIntelSet)++responseDeleteInvitations :: DeleteInvitationsResponse -> TestTree+responseDeleteInvitations = res+    "DeleteInvitationsResponse"+    "fixture/DeleteInvitationsResponse.proto"+    guardDuty+    (Proxy :: Proxy DeleteInvitations)++responseGetMasterAccount :: GetMasterAccountResponse -> TestTree+responseGetMasterAccount = res+    "GetMasterAccountResponse"+    "fixture/GetMasterAccountResponse.proto"+    guardDuty+    (Proxy :: Proxy GetMasterAccount)++responseCreateDetector :: CreateDetectorResponse -> TestTree+responseCreateDetector = res+    "CreateDetectorResponse"+    "fixture/CreateDetectorResponse.proto"+    guardDuty+    (Proxy :: Proxy CreateDetector)++responseDeclineInvitations :: DeclineInvitationsResponse -> TestTree+responseDeclineInvitations = res+    "DeclineInvitationsResponse"+    "fixture/DeclineInvitationsResponse.proto"+    guardDuty+    (Proxy :: Proxy DeclineInvitations)++responseUpdateFilter :: UpdateFilterResponse -> TestTree+responseUpdateFilter = res+    "UpdateFilterResponse"+    "fixture/UpdateFilterResponse.proto"+    guardDuty+    (Proxy :: Proxy UpdateFilter)++responseDeleteFilter :: DeleteFilterResponse -> TestTree+responseDeleteFilter = res+    "DeleteFilterResponse"+    "fixture/DeleteFilterResponse.proto"+    guardDuty+    (Proxy :: Proxy DeleteFilter)++responseDisassociateMembers :: DisassociateMembersResponse -> TestTree+responseDisassociateMembers = res+    "DisassociateMembersResponse"+    "fixture/DisassociateMembersResponse.proto"+    guardDuty+    (Proxy :: Proxy DisassociateMembers)++responseDisassociateFromMasterAccount :: DisassociateFromMasterAccountResponse -> TestTree+responseDisassociateFromMasterAccount = res+    "DisassociateFromMasterAccountResponse"+    "fixture/DisassociateFromMasterAccountResponse.proto"+    guardDuty+    (Proxy :: Proxy DisassociateFromMasterAccount)++responseAcceptInvitation :: AcceptInvitationResponse -> TestTree+responseAcceptInvitation = res+    "AcceptInvitationResponse"+    "fixture/AcceptInvitationResponse.proto"+    guardDuty+    (Proxy :: Proxy AcceptInvitation)++responseListFilters :: ListFiltersResponse -> TestTree+responseListFilters = res+    "ListFiltersResponse"+    "fixture/ListFiltersResponse.proto"+    guardDuty+    (Proxy :: Proxy ListFilters)++responseListMembers :: ListMembersResponse -> TestTree+responseListMembers = res+    "ListMembersResponse"+    "fixture/ListMembersResponse.proto"+    guardDuty+    (Proxy :: Proxy ListMembers)++responseGetDetector :: GetDetectorResponse -> TestTree+responseGetDetector = res+    "GetDetectorResponse"+    "fixture/GetDetectorResponse.proto"+    guardDuty+    (Proxy :: Proxy GetDetector)++responseCreateSampleFindings :: CreateSampleFindingsResponse -> TestTree+responseCreateSampleFindings = res+    "CreateSampleFindingsResponse"+    "fixture/CreateSampleFindingsResponse.proto"+    guardDuty+    (Proxy :: Proxy CreateSampleFindings)++responseArchiveFindings :: ArchiveFindingsResponse -> TestTree+responseArchiveFindings = res+    "ArchiveFindingsResponse"+    "fixture/ArchiveFindingsResponse.proto"+    guardDuty+    (Proxy :: Proxy ArchiveFindings)++responseCreateMembers :: CreateMembersResponse -> TestTree+responseCreateMembers = res+    "CreateMembersResponse"+    "fixture/CreateMembersResponse.proto"+    guardDuty+    (Proxy :: Proxy CreateMembers)++responseUnarchiveFindings :: UnarchiveFindingsResponse -> TestTree+responseUnarchiveFindings = res+    "UnarchiveFindingsResponse"+    "fixture/UnarchiveFindingsResponse.proto"+    guardDuty+    (Proxy :: Proxy UnarchiveFindings)++responseGetInvitationsCount :: GetInvitationsCountResponse -> TestTree+responseGetInvitationsCount = res+    "GetInvitationsCountResponse"+    "fixture/GetInvitationsCountResponse.proto"+    guardDuty+    (Proxy :: Proxy GetInvitationsCount)++responseStartMonitoringMembers :: StartMonitoringMembersResponse -> TestTree+responseStartMonitoringMembers = res+    "StartMonitoringMembersResponse"+    "fixture/StartMonitoringMembersResponse.proto"+    guardDuty+    (Proxy :: Proxy StartMonitoringMembers)++responseInviteMembers :: InviteMembersResponse -> TestTree+responseInviteMembers = res+    "InviteMembersResponse"+    "fixture/InviteMembersResponse.proto"+    guardDuty+    (Proxy :: Proxy InviteMembers)++responseDeleteIPSet :: DeleteIPSetResponse -> TestTree+responseDeleteIPSet = res+    "DeleteIPSetResponse"+    "fixture/DeleteIPSetResponse.proto"+    guardDuty+    (Proxy :: Proxy DeleteIPSet)++responseUpdateIPSet :: UpdateIPSetResponse -> TestTree+responseUpdateIPSet = res+    "UpdateIPSetResponse"+    "fixture/UpdateIPSetResponse.proto"+    guardDuty+    (Proxy :: Proxy UpdateIPSet)++responseListIPSets :: ListIPSetsResponse -> TestTree+responseListIPSets = res+    "ListIPSetsResponse"+    "fixture/ListIPSetsResponse.proto"+    guardDuty+    (Proxy :: Proxy ListIPSets)++responseGetMembers :: GetMembersResponse -> TestTree+responseGetMembers = res+    "GetMembersResponse"+    "fixture/GetMembersResponse.proto"+    guardDuty+    (Proxy :: Proxy GetMembers)++responseGetFindings :: GetFindingsResponse -> TestTree+responseGetFindings = res+    "GetFindingsResponse"+    "fixture/GetFindingsResponse.proto"+    guardDuty+    (Proxy :: Proxy GetFindings)++responseListDetectors :: ListDetectorsResponse -> TestTree+responseListDetectors = res+    "ListDetectorsResponse"+    "fixture/ListDetectorsResponse.proto"+    guardDuty+    (Proxy :: Proxy ListDetectors)++responseUpdateDetector :: UpdateDetectorResponse -> TestTree+responseUpdateDetector = res+    "UpdateDetectorResponse"+    "fixture/UpdateDetectorResponse.proto"+    guardDuty+    (Proxy :: Proxy UpdateDetector)++responseDeleteDetector :: DeleteDetectorResponse -> TestTree+responseDeleteDetector = res+    "DeleteDetectorResponse"+    "fixture/DeleteDetectorResponse.proto"+    guardDuty+    (Proxy :: Proxy DeleteDetector)++responseUpdateFindingsFeedback :: UpdateFindingsFeedbackResponse -> TestTree+responseUpdateFindingsFeedback = res+    "UpdateFindingsFeedbackResponse"+    "fixture/UpdateFindingsFeedbackResponse.proto"+    guardDuty+    (Proxy :: Proxy UpdateFindingsFeedback)++responseGetFilter :: GetFilterResponse -> TestTree+responseGetFilter = res+    "GetFilterResponse"+    "fixture/GetFilterResponse.proto"+    guardDuty+    (Proxy :: Proxy GetFilter)
+ test/Test/AWS/GuardDuty.hs view
@@ -0,0 +1,20 @@+-- |+-- Module      : Test.AWS.GuardDuty+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Test.AWS.GuardDuty+    ( tests+    , fixtures+    ) where++import Test.Tasty (TestTree)++tests :: [TestTree]+tests = []++fixtures :: [TestTree]+fixtures = []
+ test/Test/AWS/GuardDuty/Internal.hs view
@@ -0,0 +1,9 @@+-- |+-- Module      : Test.AWS.GuardDuty.Internal+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Test.AWS.GuardDuty.Internal where