packages feed

amazonka-codeguru-reviewer (empty) → 2.0

raw patch · 91 files changed

+10607/−0 lines, 91 filesdep +amazonka-codeguru-reviewerdep +amazonka-coredep +amazonka-test

Dependencies added: amazonka-codeguru-reviewer, amazonka-core, amazonka-test, base, bytestring, case-insensitive, 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,44 @@+# Amazon CodeGuru Reviewer SDK++* [Version](#version)+* [Description](#description)+* [Contribute](#contribute)+* [Licence](#licence)+++## Version+ +`2.0` - Derived from API version @2019-09-19@ of the AWS service descriptions, licensed under Apache 2.0.++## Description++Documentation is available via [Hackage](http://hackage.haskell.org/package/amazonka-codeguru-reviewer)+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 [Amazonka.CodeGuruReviewer](http://hackage.haskell.org/package/amazonka-codeguru-reviewer/docs/Amazonka-CodeGuruReviewer.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-codeguru-reviewer` 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.
+ amazonka-codeguru-reviewer.cabal view
@@ -0,0 +1,134 @@+cabal-version:      2.2+name:               amazonka-codeguru-reviewer+version:            2.0+synopsis:           Amazon CodeGuru Reviewer 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>, Jack Kelly <jack@jackkelly.name>++copyright:          Copyright (c) 2013-2023 Brendan Hay+category:           AWS+build-type:         Simple+extra-source-files:+  fixture/*.proto+  fixture/*.yaml+  README.md+  src/.gitkeep++description:+  Derived from API version @2019-09-19@ of the AWS service descriptions, licensed under Apache 2.0.+  .+  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.+  .+  It is recommended to use generic lenses or optics from packages such as <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify optional fields and deconstruct responses.+  .+  Generated lenses can be found in "Amazonka.CodeGuruReviewer.Lens" and are+  suitable for use with a lens package such as <http://hackage.haskell.org/package/lens lens> or <http://hackage.haskell.org/package/lens-family-core lens-family-core>.+  .+  See "Amazonka.CodeGuruReviewer" and the <https://aws.amazon.com/documentation/ AWS documentation> to get started.++source-repository head+  type:     git+  location: git://github.com/brendanhay/amazonka.git+  subdir:   amazonka-codeguru-reviewer++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:+    Amazonka.CodeGuruReviewer+    Amazonka.CodeGuruReviewer.AssociateRepository+    Amazonka.CodeGuruReviewer.CreateCodeReview+    Amazonka.CodeGuruReviewer.DescribeCodeReview+    Amazonka.CodeGuruReviewer.DescribeRecommendationFeedback+    Amazonka.CodeGuruReviewer.DescribeRepositoryAssociation+    Amazonka.CodeGuruReviewer.DisassociateRepository+    Amazonka.CodeGuruReviewer.Lens+    Amazonka.CodeGuruReviewer.ListCodeReviews+    Amazonka.CodeGuruReviewer.ListRecommendationFeedback+    Amazonka.CodeGuruReviewer.ListRecommendations+    Amazonka.CodeGuruReviewer.ListRepositoryAssociations+    Amazonka.CodeGuruReviewer.ListTagsForResource+    Amazonka.CodeGuruReviewer.PutRecommendationFeedback+    Amazonka.CodeGuruReviewer.TagResource+    Amazonka.CodeGuruReviewer.Types+    Amazonka.CodeGuruReviewer.Types.AnalysisType+    Amazonka.CodeGuruReviewer.Types.BranchDiffSourceCodeType+    Amazonka.CodeGuruReviewer.Types.CodeArtifacts+    Amazonka.CodeGuruReviewer.Types.CodeCommitRepository+    Amazonka.CodeGuruReviewer.Types.CodeReview+    Amazonka.CodeGuruReviewer.Types.CodeReviewSummary+    Amazonka.CodeGuruReviewer.Types.CodeReviewType+    Amazonka.CodeGuruReviewer.Types.CommitDiffSourceCodeType+    Amazonka.CodeGuruReviewer.Types.ConfigFileState+    Amazonka.CodeGuruReviewer.Types.EncryptionOption+    Amazonka.CodeGuruReviewer.Types.EventInfo+    Amazonka.CodeGuruReviewer.Types.JobState+    Amazonka.CodeGuruReviewer.Types.KMSKeyDetails+    Amazonka.CodeGuruReviewer.Types.Metrics+    Amazonka.CodeGuruReviewer.Types.MetricsSummary+    Amazonka.CodeGuruReviewer.Types.ProviderType+    Amazonka.CodeGuruReviewer.Types.Reaction+    Amazonka.CodeGuruReviewer.Types.RecommendationCategory+    Amazonka.CodeGuruReviewer.Types.RecommendationFeedback+    Amazonka.CodeGuruReviewer.Types.RecommendationFeedbackSummary+    Amazonka.CodeGuruReviewer.Types.RecommendationSummary+    Amazonka.CodeGuruReviewer.Types.Repository+    Amazonka.CodeGuruReviewer.Types.RepositoryAnalysis+    Amazonka.CodeGuruReviewer.Types.RepositoryAssociation+    Amazonka.CodeGuruReviewer.Types.RepositoryAssociationState+    Amazonka.CodeGuruReviewer.Types.RepositoryAssociationSummary+    Amazonka.CodeGuruReviewer.Types.RepositoryHeadSourceCodeType+    Amazonka.CodeGuruReviewer.Types.RequestMetadata+    Amazonka.CodeGuruReviewer.Types.RuleMetadata+    Amazonka.CodeGuruReviewer.Types.S3BucketRepository+    Amazonka.CodeGuruReviewer.Types.S3Repository+    Amazonka.CodeGuruReviewer.Types.S3RepositoryDetails+    Amazonka.CodeGuruReviewer.Types.Severity+    Amazonka.CodeGuruReviewer.Types.SourceCodeType+    Amazonka.CodeGuruReviewer.Types.ThirdPartySourceRepository+    Amazonka.CodeGuruReviewer.Types.Type+    Amazonka.CodeGuruReviewer.Types.VendorName+    Amazonka.CodeGuruReviewer.UntagResource+    Amazonka.CodeGuruReviewer.Waiters++  build-depends:+    , amazonka-core  >=2.0  && <2.1+    , base           >=4.12 && <5++test-suite amazonka-codeguru-reviewer-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.Amazonka.CodeGuruReviewer+    Test.Amazonka.CodeGuruReviewer.Internal+    Test.Amazonka.Gen.CodeGuruReviewer++  build-depends:+    , amazonka-codeguru-reviewer+    , amazonka-core               >=2.0 && <2.1+    , amazonka-test               >=2.0 && <2.1+    , base+    , bytestring+    , case-insensitive+    , tasty+    , tasty-hunit+    , text+    , time+    , unordered-containers
+ fixture/AssociateRepository.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/codeguru-reviewer/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  codeguru-reviewer.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/AssociateRepositoryResponse.proto view
+ fixture/CreateCodeReview.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/codeguru-reviewer/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  codeguru-reviewer.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/CreateCodeReviewResponse.proto view
+ fixture/DescribeCodeReview.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/codeguru-reviewer/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  codeguru-reviewer.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/DescribeCodeReviewResponse.proto view
+ fixture/DescribeRecommendationFeedback.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/codeguru-reviewer/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  codeguru-reviewer.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/DescribeRecommendationFeedbackResponse.proto view
+ fixture/DescribeRepositoryAssociation.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/codeguru-reviewer/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  codeguru-reviewer.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/DescribeRepositoryAssociationResponse.proto view
+ fixture/DisassociateRepository.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/codeguru-reviewer/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  codeguru-reviewer.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/DisassociateRepositoryResponse.proto view
+ fixture/ListCodeReviews.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/codeguru-reviewer/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  codeguru-reviewer.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/ListCodeReviewsResponse.proto view
+ fixture/ListRecommendationFeedback.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/codeguru-reviewer/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  codeguru-reviewer.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/ListRecommendationFeedbackResponse.proto view
+ fixture/ListRecommendations.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/codeguru-reviewer/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  codeguru-reviewer.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/ListRecommendationsResponse.proto view
+ fixture/ListRepositoryAssociations.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/codeguru-reviewer/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  codeguru-reviewer.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/ListRepositoryAssociationsResponse.proto view
+ fixture/ListTagsForResource.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/codeguru-reviewer/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  codeguru-reviewer.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/ListTagsForResourceResponse.proto view
+ fixture/PutRecommendationFeedback.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/codeguru-reviewer/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  codeguru-reviewer.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/PutRecommendationFeedbackResponse.proto view
+ fixture/TagResource.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/codeguru-reviewer/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  codeguru-reviewer.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/TagResourceResponse.proto view
+ fixture/UntagResource.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/codeguru-reviewer/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  codeguru-reviewer.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/UntagResourceResponse.proto view
+ gen/Amazonka/CodeGuruReviewer.hs view
@@ -0,0 +1,338 @@+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module      : Amazonka.CodeGuruReviewer+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Derived from API version @2019-09-19@ of the AWS service descriptions, licensed under Apache 2.0.+--+-- This section provides documentation for the Amazon CodeGuru Reviewer API+-- operations. CodeGuru Reviewer is a service that uses program analysis+-- and machine learning to detect potential defects that are difficult for+-- developers to find and recommends fixes in your Java and Python code.+--+-- By proactively detecting and providing recommendations for addressing+-- code defects and implementing best practices, CodeGuru Reviewer improves+-- the overall quality and maintainability of your code base during the+-- code review stage. For more information about CodeGuru Reviewer, see the+-- /<https://docs.aws.amazon.com/codeguru/latest/reviewer-ug/welcome.html Amazon CodeGuru Reviewer User Guide>./+--+-- To improve the security of your CodeGuru Reviewer API calls, you can+-- establish a private connection between your VPC and CodeGuru Reviewer by+-- creating an /interface VPC endpoint/. For more information, see+-- <https://docs.aws.amazon.com/codeguru/latest/reviewer-ug/vpc-interface-endpoints.html CodeGuru Reviewer and interface VPC endpoints (Amazon Web Services PrivateLink)>+-- in the /Amazon CodeGuru Reviewer User Guide/.+module Amazonka.CodeGuruReviewer+  ( -- * Service Configuration+    defaultService,++    -- * Errors+    -- $errors++    -- ** AccessDeniedException+    _AccessDeniedException,++    -- ** ConflictException+    _ConflictException,++    -- ** InternalServerException+    _InternalServerException,++    -- ** NotFoundException+    _NotFoundException,++    -- ** ResourceNotFoundException+    _ResourceNotFoundException,++    -- ** ThrottlingException+    _ThrottlingException,++    -- ** ValidationException+    _ValidationException,++    -- * Waiters+    -- $waiters++    -- ** CodeReviewCompleted+    newCodeReviewCompleted,++    -- ** RepositoryAssociationSucceeded+    newRepositoryAssociationSucceeded,++    -- * Operations+    -- $operations++    -- ** AssociateRepository+    AssociateRepository (AssociateRepository'),+    newAssociateRepository,+    AssociateRepositoryResponse (AssociateRepositoryResponse'),+    newAssociateRepositoryResponse,++    -- ** CreateCodeReview+    CreateCodeReview (CreateCodeReview'),+    newCreateCodeReview,+    CreateCodeReviewResponse (CreateCodeReviewResponse'),+    newCreateCodeReviewResponse,++    -- ** DescribeCodeReview+    DescribeCodeReview (DescribeCodeReview'),+    newDescribeCodeReview,+    DescribeCodeReviewResponse (DescribeCodeReviewResponse'),+    newDescribeCodeReviewResponse,++    -- ** DescribeRecommendationFeedback+    DescribeRecommendationFeedback (DescribeRecommendationFeedback'),+    newDescribeRecommendationFeedback,+    DescribeRecommendationFeedbackResponse (DescribeRecommendationFeedbackResponse'),+    newDescribeRecommendationFeedbackResponse,++    -- ** DescribeRepositoryAssociation+    DescribeRepositoryAssociation (DescribeRepositoryAssociation'),+    newDescribeRepositoryAssociation,+    DescribeRepositoryAssociationResponse (DescribeRepositoryAssociationResponse'),+    newDescribeRepositoryAssociationResponse,++    -- ** DisassociateRepository+    DisassociateRepository (DisassociateRepository'),+    newDisassociateRepository,+    DisassociateRepositoryResponse (DisassociateRepositoryResponse'),+    newDisassociateRepositoryResponse,++    -- ** ListCodeReviews+    ListCodeReviews (ListCodeReviews'),+    newListCodeReviews,+    ListCodeReviewsResponse (ListCodeReviewsResponse'),+    newListCodeReviewsResponse,++    -- ** ListRecommendationFeedback+    ListRecommendationFeedback (ListRecommendationFeedback'),+    newListRecommendationFeedback,+    ListRecommendationFeedbackResponse (ListRecommendationFeedbackResponse'),+    newListRecommendationFeedbackResponse,++    -- ** ListRecommendations+    ListRecommendations (ListRecommendations'),+    newListRecommendations,+    ListRecommendationsResponse (ListRecommendationsResponse'),+    newListRecommendationsResponse,++    -- ** ListRepositoryAssociations (Paginated)+    ListRepositoryAssociations (ListRepositoryAssociations'),+    newListRepositoryAssociations,+    ListRepositoryAssociationsResponse (ListRepositoryAssociationsResponse'),+    newListRepositoryAssociationsResponse,++    -- ** ListTagsForResource+    ListTagsForResource (ListTagsForResource'),+    newListTagsForResource,+    ListTagsForResourceResponse (ListTagsForResourceResponse'),+    newListTagsForResourceResponse,++    -- ** PutRecommendationFeedback+    PutRecommendationFeedback (PutRecommendationFeedback'),+    newPutRecommendationFeedback,+    PutRecommendationFeedbackResponse (PutRecommendationFeedbackResponse'),+    newPutRecommendationFeedbackResponse,++    -- ** TagResource+    TagResource (TagResource'),+    newTagResource,+    TagResourceResponse (TagResourceResponse'),+    newTagResourceResponse,++    -- ** UntagResource+    UntagResource (UntagResource'),+    newUntagResource,+    UntagResourceResponse (UntagResourceResponse'),+    newUntagResourceResponse,++    -- * Types++    -- ** AnalysisType+    AnalysisType (..),++    -- ** ConfigFileState+    ConfigFileState (..),++    -- ** EncryptionOption+    EncryptionOption (..),++    -- ** JobState+    JobState (..),++    -- ** ProviderType+    ProviderType (..),++    -- ** Reaction+    Reaction (..),++    -- ** RecommendationCategory+    RecommendationCategory (..),++    -- ** RepositoryAssociationState+    RepositoryAssociationState (..),++    -- ** Severity+    Severity (..),++    -- ** Type+    Type (..),++    -- ** VendorName+    VendorName (..),++    -- ** BranchDiffSourceCodeType+    BranchDiffSourceCodeType (BranchDiffSourceCodeType'),+    newBranchDiffSourceCodeType,++    -- ** CodeArtifacts+    CodeArtifacts (CodeArtifacts'),+    newCodeArtifacts,++    -- ** CodeCommitRepository+    CodeCommitRepository (CodeCommitRepository'),+    newCodeCommitRepository,++    -- ** CodeReview+    CodeReview (CodeReview'),+    newCodeReview,++    -- ** CodeReviewSummary+    CodeReviewSummary (CodeReviewSummary'),+    newCodeReviewSummary,++    -- ** CodeReviewType+    CodeReviewType (CodeReviewType'),+    newCodeReviewType,++    -- ** CommitDiffSourceCodeType+    CommitDiffSourceCodeType (CommitDiffSourceCodeType'),+    newCommitDiffSourceCodeType,++    -- ** EventInfo+    EventInfo (EventInfo'),+    newEventInfo,++    -- ** KMSKeyDetails+    KMSKeyDetails (KMSKeyDetails'),+    newKMSKeyDetails,++    -- ** Metrics+    Metrics (Metrics'),+    newMetrics,++    -- ** MetricsSummary+    MetricsSummary (MetricsSummary'),+    newMetricsSummary,++    -- ** RecommendationFeedback+    RecommendationFeedback (RecommendationFeedback'),+    newRecommendationFeedback,++    -- ** RecommendationFeedbackSummary+    RecommendationFeedbackSummary (RecommendationFeedbackSummary'),+    newRecommendationFeedbackSummary,++    -- ** RecommendationSummary+    RecommendationSummary (RecommendationSummary'),+    newRecommendationSummary,++    -- ** Repository+    Repository (Repository'),+    newRepository,++    -- ** RepositoryAnalysis+    RepositoryAnalysis (RepositoryAnalysis'),+    newRepositoryAnalysis,++    -- ** RepositoryAssociation+    RepositoryAssociation (RepositoryAssociation'),+    newRepositoryAssociation,++    -- ** RepositoryAssociationSummary+    RepositoryAssociationSummary (RepositoryAssociationSummary'),+    newRepositoryAssociationSummary,++    -- ** RepositoryHeadSourceCodeType+    RepositoryHeadSourceCodeType (RepositoryHeadSourceCodeType'),+    newRepositoryHeadSourceCodeType,++    -- ** RequestMetadata+    RequestMetadata (RequestMetadata'),+    newRequestMetadata,++    -- ** RuleMetadata+    RuleMetadata (RuleMetadata'),+    newRuleMetadata,++    -- ** S3BucketRepository+    S3BucketRepository (S3BucketRepository'),+    newS3BucketRepository,++    -- ** S3Repository+    S3Repository (S3Repository'),+    newS3Repository,++    -- ** S3RepositoryDetails+    S3RepositoryDetails (S3RepositoryDetails'),+    newS3RepositoryDetails,++    -- ** SourceCodeType+    SourceCodeType (SourceCodeType'),+    newSourceCodeType,++    -- ** ThirdPartySourceRepository+    ThirdPartySourceRepository (ThirdPartySourceRepository'),+    newThirdPartySourceRepository,+  )+where++import Amazonka.CodeGuruReviewer.AssociateRepository+import Amazonka.CodeGuruReviewer.CreateCodeReview+import Amazonka.CodeGuruReviewer.DescribeCodeReview+import Amazonka.CodeGuruReviewer.DescribeRecommendationFeedback+import Amazonka.CodeGuruReviewer.DescribeRepositoryAssociation+import Amazonka.CodeGuruReviewer.DisassociateRepository+import Amazonka.CodeGuruReviewer.Lens+import Amazonka.CodeGuruReviewer.ListCodeReviews+import Amazonka.CodeGuruReviewer.ListRecommendationFeedback+import Amazonka.CodeGuruReviewer.ListRecommendations+import Amazonka.CodeGuruReviewer.ListRepositoryAssociations+import Amazonka.CodeGuruReviewer.ListTagsForResource+import Amazonka.CodeGuruReviewer.PutRecommendationFeedback+import Amazonka.CodeGuruReviewer.TagResource+import Amazonka.CodeGuruReviewer.Types+import Amazonka.CodeGuruReviewer.UntagResource+import Amazonka.CodeGuruReviewer.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 'CodeGuruReviewer'.++-- $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/Amazonka/CodeGuruReviewer/AssociateRepository.hs view
@@ -0,0 +1,327 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CodeGuruReviewer.AssociateRepository+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Use to associate an Amazon Web Services CodeCommit repository or a+-- repository managed by Amazon Web Services CodeStar Connections with+-- Amazon CodeGuru Reviewer. When you associate a repository, CodeGuru+-- Reviewer reviews source code changes in the repository\'s pull requests+-- and provides automatic recommendations. You can view recommendations+-- using the CodeGuru Reviewer console. For more information, see+-- <https://docs.aws.amazon.com/codeguru/latest/reviewer-ug/recommendations.html Recommendations in Amazon CodeGuru Reviewer>+-- in the /Amazon CodeGuru Reviewer User Guide./+--+-- If you associate a CodeCommit or S3 repository, it must be in the same+-- Amazon Web Services Region and Amazon Web Services account where its+-- CodeGuru Reviewer code reviews are configured.+--+-- Bitbucket and GitHub Enterprise Server repositories are managed by+-- Amazon Web Services CodeStar Connections to connect to CodeGuru+-- Reviewer. For more information, see+-- <https://docs.aws.amazon.com/codeguru/latest/reviewer-ug/getting-started-associate-repository.html Associate a repository>+-- in the /Amazon CodeGuru Reviewer User Guide./+--+-- You cannot use the CodeGuru Reviewer SDK or the Amazon Web Services CLI+-- to associate a GitHub repository with Amazon CodeGuru Reviewer. To+-- associate a GitHub repository, use the console. For more information,+-- see+-- <https://docs.aws.amazon.com/codeguru/latest/reviewer-ug/getting-started-with-guru.html Getting started with CodeGuru Reviewer>+-- in the /CodeGuru Reviewer User Guide./+module Amazonka.CodeGuruReviewer.AssociateRepository+  ( -- * Creating a Request+    AssociateRepository (..),+    newAssociateRepository,++    -- * Request Lenses+    associateRepository_clientRequestToken,+    associateRepository_kmsKeyDetails,+    associateRepository_tags,+    associateRepository_repository,++    -- * Destructuring the Response+    AssociateRepositoryResponse (..),+    newAssociateRepositoryResponse,++    -- * Response Lenses+    associateRepositoryResponse_repositoryAssociation,+    associateRepositoryResponse_tags,+    associateRepositoryResponse_httpStatus,+  )+where++import Amazonka.CodeGuruReviewer.Types+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newAssociateRepository' smart constructor.+data AssociateRepository = AssociateRepository'+  { -- | Amazon CodeGuru Reviewer uses this value to prevent the accidental+    -- creation of duplicate repository associations if there are failures and+    -- retries.+    clientRequestToken :: Prelude.Maybe Prelude.Text,+    -- | A @KMSKeyDetails@ object that contains:+    --+    -- -   The encryption option for this repository association. It is either+    --     owned by Amazon Web Services Key Management Service (KMS)+    --     (@AWS_OWNED_CMK@) or customer managed (@CUSTOMER_MANAGED_CMK@).+    --+    -- -   The ID of the Amazon Web Services KMS key that is associated with+    --     this repository association.+    kmsKeyDetails :: Prelude.Maybe KMSKeyDetails,+    -- | An array of key-value pairs used to tag an associated repository. A tag+    -- is a custom attribute label with two parts:+    --+    -- -   A /tag key/ (for example, @CostCenter@, @Environment@, @Project@, or+    --     @Secret@). Tag keys are case sensitive.+    --+    -- -   An optional field known as a /tag value/ (for example,+    --     @111122223333@, @Production@, or a team name). Omitting the tag+    --     value is the same as using an empty string. Like tag keys, tag+    --     values are case sensitive.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The repository to associate.+    repository :: Repository+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AssociateRepository' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientRequestToken', 'associateRepository_clientRequestToken' - Amazon CodeGuru Reviewer uses this value to prevent the accidental+-- creation of duplicate repository associations if there are failures and+-- retries.+--+-- 'kmsKeyDetails', 'associateRepository_kmsKeyDetails' - A @KMSKeyDetails@ object that contains:+--+-- -   The encryption option for this repository association. It is either+--     owned by Amazon Web Services Key Management Service (KMS)+--     (@AWS_OWNED_CMK@) or customer managed (@CUSTOMER_MANAGED_CMK@).+--+-- -   The ID of the Amazon Web Services KMS key that is associated with+--     this repository association.+--+-- 'tags', 'associateRepository_tags' - An array of key-value pairs used to tag an associated repository. A tag+-- is a custom attribute label with two parts:+--+-- -   A /tag key/ (for example, @CostCenter@, @Environment@, @Project@, or+--     @Secret@). Tag keys are case sensitive.+--+-- -   An optional field known as a /tag value/ (for example,+--     @111122223333@, @Production@, or a team name). Omitting the tag+--     value is the same as using an empty string. Like tag keys, tag+--     values are case sensitive.+--+-- 'repository', 'associateRepository_repository' - The repository to associate.+newAssociateRepository ::+  -- | 'repository'+  Repository ->+  AssociateRepository+newAssociateRepository pRepository_ =+  AssociateRepository'+    { clientRequestToken =+        Prelude.Nothing,+      kmsKeyDetails = Prelude.Nothing,+      tags = Prelude.Nothing,+      repository = pRepository_+    }++-- | Amazon CodeGuru Reviewer uses this value to prevent the accidental+-- creation of duplicate repository associations if there are failures and+-- retries.+associateRepository_clientRequestToken :: Lens.Lens' AssociateRepository (Prelude.Maybe Prelude.Text)+associateRepository_clientRequestToken = Lens.lens (\AssociateRepository' {clientRequestToken} -> clientRequestToken) (\s@AssociateRepository' {} a -> s {clientRequestToken = a} :: AssociateRepository)++-- | A @KMSKeyDetails@ object that contains:+--+-- -   The encryption option for this repository association. It is either+--     owned by Amazon Web Services Key Management Service (KMS)+--     (@AWS_OWNED_CMK@) or customer managed (@CUSTOMER_MANAGED_CMK@).+--+-- -   The ID of the Amazon Web Services KMS key that is associated with+--     this repository association.+associateRepository_kmsKeyDetails :: Lens.Lens' AssociateRepository (Prelude.Maybe KMSKeyDetails)+associateRepository_kmsKeyDetails = Lens.lens (\AssociateRepository' {kmsKeyDetails} -> kmsKeyDetails) (\s@AssociateRepository' {} a -> s {kmsKeyDetails = a} :: AssociateRepository)++-- | An array of key-value pairs used to tag an associated repository. A tag+-- is a custom attribute label with two parts:+--+-- -   A /tag key/ (for example, @CostCenter@, @Environment@, @Project@, or+--     @Secret@). Tag keys are case sensitive.+--+-- -   An optional field known as a /tag value/ (for example,+--     @111122223333@, @Production@, or a team name). Omitting the tag+--     value is the same as using an empty string. Like tag keys, tag+--     values are case sensitive.+associateRepository_tags :: Lens.Lens' AssociateRepository (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+associateRepository_tags = Lens.lens (\AssociateRepository' {tags} -> tags) (\s@AssociateRepository' {} a -> s {tags = a} :: AssociateRepository) Prelude.. Lens.mapping Lens.coerced++-- | The repository to associate.+associateRepository_repository :: Lens.Lens' AssociateRepository Repository+associateRepository_repository = Lens.lens (\AssociateRepository' {repository} -> repository) (\s@AssociateRepository' {} a -> s {repository = a} :: AssociateRepository)++instance Core.AWSRequest AssociateRepository where+  type+    AWSResponse AssociateRepository =+      AssociateRepositoryResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          AssociateRepositoryResponse'+            Prelude.<$> (x Data..?> "RepositoryAssociation")+            Prelude.<*> (x Data..?> "Tags" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable AssociateRepository where+  hashWithSalt _salt AssociateRepository' {..} =+    _salt+      `Prelude.hashWithSalt` clientRequestToken+      `Prelude.hashWithSalt` kmsKeyDetails+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` repository++instance Prelude.NFData AssociateRepository where+  rnf AssociateRepository' {..} =+    Prelude.rnf clientRequestToken+      `Prelude.seq` Prelude.rnf kmsKeyDetails+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf repository++instance Data.ToHeaders AssociateRepository where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON AssociateRepository where+  toJSON AssociateRepository' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("ClientRequestToken" Data..=)+              Prelude.<$> clientRequestToken,+            ("KMSKeyDetails" Data..=) Prelude.<$> kmsKeyDetails,+            ("Tags" Data..=) Prelude.<$> tags,+            Prelude.Just ("Repository" Data..= repository)+          ]+      )++instance Data.ToPath AssociateRepository where+  toPath = Prelude.const "/associations"++instance Data.ToQuery AssociateRepository where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newAssociateRepositoryResponse' smart constructor.+data AssociateRepositoryResponse = AssociateRepositoryResponse'+  { -- | Information about the repository association.+    repositoryAssociation :: Prelude.Maybe RepositoryAssociation,+    -- | An array of key-value pairs used to tag an associated repository. A tag+    -- is a custom attribute label with two parts:+    --+    -- -   A /tag key/ (for example, @CostCenter@, @Environment@, @Project@, or+    --     @Secret@). Tag keys are case sensitive.+    --+    -- -   An optional field known as a /tag value/ (for example,+    --     @111122223333@, @Production@, or a team name). Omitting the tag+    --     value is the same as using an empty string. Like tag keys, tag+    --     values are case sensitive.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AssociateRepositoryResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'repositoryAssociation', 'associateRepositoryResponse_repositoryAssociation' - Information about the repository association.+--+-- 'tags', 'associateRepositoryResponse_tags' - An array of key-value pairs used to tag an associated repository. A tag+-- is a custom attribute label with two parts:+--+-- -   A /tag key/ (for example, @CostCenter@, @Environment@, @Project@, or+--     @Secret@). Tag keys are case sensitive.+--+-- -   An optional field known as a /tag value/ (for example,+--     @111122223333@, @Production@, or a team name). Omitting the tag+--     value is the same as using an empty string. Like tag keys, tag+--     values are case sensitive.+--+-- 'httpStatus', 'associateRepositoryResponse_httpStatus' - The response's http status code.+newAssociateRepositoryResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  AssociateRepositoryResponse+newAssociateRepositoryResponse pHttpStatus_ =+  AssociateRepositoryResponse'+    { repositoryAssociation =+        Prelude.Nothing,+      tags = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Information about the repository association.+associateRepositoryResponse_repositoryAssociation :: Lens.Lens' AssociateRepositoryResponse (Prelude.Maybe RepositoryAssociation)+associateRepositoryResponse_repositoryAssociation = Lens.lens (\AssociateRepositoryResponse' {repositoryAssociation} -> repositoryAssociation) (\s@AssociateRepositoryResponse' {} a -> s {repositoryAssociation = a} :: AssociateRepositoryResponse)++-- | An array of key-value pairs used to tag an associated repository. A tag+-- is a custom attribute label with two parts:+--+-- -   A /tag key/ (for example, @CostCenter@, @Environment@, @Project@, or+--     @Secret@). Tag keys are case sensitive.+--+-- -   An optional field known as a /tag value/ (for example,+--     @111122223333@, @Production@, or a team name). Omitting the tag+--     value is the same as using an empty string. Like tag keys, tag+--     values are case sensitive.+associateRepositoryResponse_tags :: Lens.Lens' AssociateRepositoryResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+associateRepositoryResponse_tags = Lens.lens (\AssociateRepositoryResponse' {tags} -> tags) (\s@AssociateRepositoryResponse' {} a -> s {tags = a} :: AssociateRepositoryResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+associateRepositoryResponse_httpStatus :: Lens.Lens' AssociateRepositoryResponse Prelude.Int+associateRepositoryResponse_httpStatus = Lens.lens (\AssociateRepositoryResponse' {httpStatus} -> httpStatus) (\s@AssociateRepositoryResponse' {} a -> s {httpStatus = a} :: AssociateRepositoryResponse)++instance Prelude.NFData AssociateRepositoryResponse where+  rnf AssociateRepositoryResponse' {..} =+    Prelude.rnf repositoryAssociation+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/CodeGuruReviewer/CreateCodeReview.hs view
@@ -0,0 +1,254 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CodeGuruReviewer.CreateCodeReview+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Use to create a code review with a+-- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_CodeReviewType.html CodeReviewType>+-- of @RepositoryAnalysis@. This type of code review analyzes all code+-- under a specified branch in an associated repository. @PullRequest@ code+-- reviews are automatically triggered by a pull request.+module Amazonka.CodeGuruReviewer.CreateCodeReview+  ( -- * Creating a Request+    CreateCodeReview (..),+    newCreateCodeReview,++    -- * Request Lenses+    createCodeReview_clientRequestToken,+    createCodeReview_name,+    createCodeReview_repositoryAssociationArn,+    createCodeReview_type,++    -- * Destructuring the Response+    CreateCodeReviewResponse (..),+    newCreateCodeReviewResponse,++    -- * Response Lenses+    createCodeReviewResponse_codeReview,+    createCodeReviewResponse_httpStatus,+  )+where++import Amazonka.CodeGuruReviewer.Types+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateCodeReview' smart constructor.+data CreateCodeReview = CreateCodeReview'+  { -- | Amazon CodeGuru Reviewer uses this value to prevent the accidental+    -- creation of duplicate code reviews if there are failures and retries.+    clientRequestToken :: Prelude.Maybe Prelude.Text,+    -- | The name of the code review. The name of each code review in your Amazon+    -- Web Services account must be unique.+    name :: Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the+    -- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_RepositoryAssociation.html RepositoryAssociation>+    -- object. You can retrieve this ARN by calling+    -- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_ListRepositoryAssociations.html ListRepositoryAssociations>.+    --+    -- A code review can only be created on an associated repository. This is+    -- the ARN of the associated repository.+    repositoryAssociationArn :: Prelude.Text,+    -- | The type of code review to create. This is specified using a+    -- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_CodeReviewType.html CodeReviewType>+    -- object. You can create a code review only of type @RepositoryAnalysis@.+    type' :: CodeReviewType+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateCodeReview' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientRequestToken', 'createCodeReview_clientRequestToken' - Amazon CodeGuru Reviewer uses this value to prevent the accidental+-- creation of duplicate code reviews if there are failures and retries.+--+-- 'name', 'createCodeReview_name' - The name of the code review. The name of each code review in your Amazon+-- Web Services account must be unique.+--+-- 'repositoryAssociationArn', 'createCodeReview_repositoryAssociationArn' - The Amazon Resource Name (ARN) of the+-- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_RepositoryAssociation.html RepositoryAssociation>+-- object. You can retrieve this ARN by calling+-- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_ListRepositoryAssociations.html ListRepositoryAssociations>.+--+-- A code review can only be created on an associated repository. This is+-- the ARN of the associated repository.+--+-- 'type'', 'createCodeReview_type' - The type of code review to create. This is specified using a+-- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_CodeReviewType.html CodeReviewType>+-- object. You can create a code review only of type @RepositoryAnalysis@.+newCreateCodeReview ::+  -- | 'name'+  Prelude.Text ->+  -- | 'repositoryAssociationArn'+  Prelude.Text ->+  -- | 'type''+  CodeReviewType ->+  CreateCodeReview+newCreateCodeReview+  pName_+  pRepositoryAssociationArn_+  pType_ =+    CreateCodeReview'+      { clientRequestToken =+          Prelude.Nothing,+        name = pName_,+        repositoryAssociationArn =+          pRepositoryAssociationArn_,+        type' = pType_+      }++-- | Amazon CodeGuru Reviewer uses this value to prevent the accidental+-- creation of duplicate code reviews if there are failures and retries.+createCodeReview_clientRequestToken :: Lens.Lens' CreateCodeReview (Prelude.Maybe Prelude.Text)+createCodeReview_clientRequestToken = Lens.lens (\CreateCodeReview' {clientRequestToken} -> clientRequestToken) (\s@CreateCodeReview' {} a -> s {clientRequestToken = a} :: CreateCodeReview)++-- | The name of the code review. The name of each code review in your Amazon+-- Web Services account must be unique.+createCodeReview_name :: Lens.Lens' CreateCodeReview Prelude.Text+createCodeReview_name = Lens.lens (\CreateCodeReview' {name} -> name) (\s@CreateCodeReview' {} a -> s {name = a} :: CreateCodeReview)++-- | The Amazon Resource Name (ARN) of the+-- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_RepositoryAssociation.html RepositoryAssociation>+-- object. You can retrieve this ARN by calling+-- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_ListRepositoryAssociations.html ListRepositoryAssociations>.+--+-- A code review can only be created on an associated repository. This is+-- the ARN of the associated repository.+createCodeReview_repositoryAssociationArn :: Lens.Lens' CreateCodeReview Prelude.Text+createCodeReview_repositoryAssociationArn = Lens.lens (\CreateCodeReview' {repositoryAssociationArn} -> repositoryAssociationArn) (\s@CreateCodeReview' {} a -> s {repositoryAssociationArn = a} :: CreateCodeReview)++-- | The type of code review to create. This is specified using a+-- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_CodeReviewType.html CodeReviewType>+-- object. You can create a code review only of type @RepositoryAnalysis@.+createCodeReview_type :: Lens.Lens' CreateCodeReview CodeReviewType+createCodeReview_type = Lens.lens (\CreateCodeReview' {type'} -> type') (\s@CreateCodeReview' {} a -> s {type' = a} :: CreateCodeReview)++instance Core.AWSRequest CreateCodeReview where+  type+    AWSResponse CreateCodeReview =+      CreateCodeReviewResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateCodeReviewResponse'+            Prelude.<$> (x Data..?> "CodeReview")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateCodeReview where+  hashWithSalt _salt CreateCodeReview' {..} =+    _salt+      `Prelude.hashWithSalt` clientRequestToken+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` repositoryAssociationArn+      `Prelude.hashWithSalt` type'++instance Prelude.NFData CreateCodeReview where+  rnf CreateCodeReview' {..} =+    Prelude.rnf clientRequestToken+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf repositoryAssociationArn+      `Prelude.seq` Prelude.rnf type'++instance Data.ToHeaders CreateCodeReview where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateCodeReview where+  toJSON CreateCodeReview' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("ClientRequestToken" Data..=)+              Prelude.<$> clientRequestToken,+            Prelude.Just ("Name" Data..= name),+            Prelude.Just+              ( "RepositoryAssociationArn"+                  Data..= repositoryAssociationArn+              ),+            Prelude.Just ("Type" Data..= type')+          ]+      )++instance Data.ToPath CreateCodeReview where+  toPath = Prelude.const "/codereviews"++instance Data.ToQuery CreateCodeReview where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateCodeReviewResponse' smart constructor.+data CreateCodeReviewResponse = CreateCodeReviewResponse'+  { codeReview :: Prelude.Maybe CodeReview,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateCodeReviewResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'codeReview', 'createCodeReviewResponse_codeReview' - Undocumented member.+--+-- 'httpStatus', 'createCodeReviewResponse_httpStatus' - The response's http status code.+newCreateCodeReviewResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateCodeReviewResponse+newCreateCodeReviewResponse pHttpStatus_ =+  CreateCodeReviewResponse'+    { codeReview =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Undocumented member.+createCodeReviewResponse_codeReview :: Lens.Lens' CreateCodeReviewResponse (Prelude.Maybe CodeReview)+createCodeReviewResponse_codeReview = Lens.lens (\CreateCodeReviewResponse' {codeReview} -> codeReview) (\s@CreateCodeReviewResponse' {} a -> s {codeReview = a} :: CreateCodeReviewResponse)++-- | The response's http status code.+createCodeReviewResponse_httpStatus :: Lens.Lens' CreateCodeReviewResponse Prelude.Int+createCodeReviewResponse_httpStatus = Lens.lens (\CreateCodeReviewResponse' {httpStatus} -> httpStatus) (\s@CreateCodeReviewResponse' {} a -> s {httpStatus = a} :: CreateCodeReviewResponse)++instance Prelude.NFData CreateCodeReviewResponse where+  rnf CreateCodeReviewResponse' {..} =+    Prelude.rnf codeReview+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/CodeGuruReviewer/DescribeCodeReview.hs view
@@ -0,0 +1,170 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CodeGuruReviewer.DescribeCodeReview+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns the metadata associated with the code review along with its+-- status.+module Amazonka.CodeGuruReviewer.DescribeCodeReview+  ( -- * Creating a Request+    DescribeCodeReview (..),+    newDescribeCodeReview,++    -- * Request Lenses+    describeCodeReview_codeReviewArn,++    -- * Destructuring the Response+    DescribeCodeReviewResponse (..),+    newDescribeCodeReviewResponse,++    -- * Response Lenses+    describeCodeReviewResponse_codeReview,+    describeCodeReviewResponse_httpStatus,+  )+where++import Amazonka.CodeGuruReviewer.Types+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeCodeReview' smart constructor.+data DescribeCodeReview = DescribeCodeReview'+  { -- | The Amazon Resource Name (ARN) of the+    -- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_CodeReview.html CodeReview>+    -- object.+    codeReviewArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeCodeReview' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'codeReviewArn', 'describeCodeReview_codeReviewArn' - The Amazon Resource Name (ARN) of the+-- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_CodeReview.html CodeReview>+-- object.+newDescribeCodeReview ::+  -- | 'codeReviewArn'+  Prelude.Text ->+  DescribeCodeReview+newDescribeCodeReview pCodeReviewArn_ =+  DescribeCodeReview'+    { codeReviewArn =+        pCodeReviewArn_+    }++-- | The Amazon Resource Name (ARN) of the+-- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_CodeReview.html CodeReview>+-- object.+describeCodeReview_codeReviewArn :: Lens.Lens' DescribeCodeReview Prelude.Text+describeCodeReview_codeReviewArn = Lens.lens (\DescribeCodeReview' {codeReviewArn} -> codeReviewArn) (\s@DescribeCodeReview' {} a -> s {codeReviewArn = a} :: DescribeCodeReview)++instance Core.AWSRequest DescribeCodeReview where+  type+    AWSResponse DescribeCodeReview =+      DescribeCodeReviewResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeCodeReviewResponse'+            Prelude.<$> (x Data..?> "CodeReview")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribeCodeReview where+  hashWithSalt _salt DescribeCodeReview' {..} =+    _salt `Prelude.hashWithSalt` codeReviewArn++instance Prelude.NFData DescribeCodeReview where+  rnf DescribeCodeReview' {..} =+    Prelude.rnf codeReviewArn++instance Data.ToHeaders DescribeCodeReview where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DescribeCodeReview where+  toPath DescribeCodeReview' {..} =+    Prelude.mconcat+      ["/codereviews/", Data.toBS codeReviewArn]++instance Data.ToQuery DescribeCodeReview where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeCodeReviewResponse' smart constructor.+data DescribeCodeReviewResponse = DescribeCodeReviewResponse'+  { -- | Information about the code review.+    codeReview :: Prelude.Maybe CodeReview,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeCodeReviewResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'codeReview', 'describeCodeReviewResponse_codeReview' - Information about the code review.+--+-- 'httpStatus', 'describeCodeReviewResponse_httpStatus' - The response's http status code.+newDescribeCodeReviewResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeCodeReviewResponse+newDescribeCodeReviewResponse pHttpStatus_ =+  DescribeCodeReviewResponse'+    { codeReview =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Information about the code review.+describeCodeReviewResponse_codeReview :: Lens.Lens' DescribeCodeReviewResponse (Prelude.Maybe CodeReview)+describeCodeReviewResponse_codeReview = Lens.lens (\DescribeCodeReviewResponse' {codeReview} -> codeReview) (\s@DescribeCodeReviewResponse' {} a -> s {codeReview = a} :: DescribeCodeReviewResponse)++-- | The response's http status code.+describeCodeReviewResponse_httpStatus :: Lens.Lens' DescribeCodeReviewResponse Prelude.Int+describeCodeReviewResponse_httpStatus = Lens.lens (\DescribeCodeReviewResponse' {httpStatus} -> httpStatus) (\s@DescribeCodeReviewResponse' {} a -> s {httpStatus = a} :: DescribeCodeReviewResponse)++instance Prelude.NFData DescribeCodeReviewResponse where+  rnf DescribeCodeReviewResponse' {..} =+    Prelude.rnf codeReview+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/CodeGuruReviewer/DescribeRecommendationFeedback.hs view
@@ -0,0 +1,244 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CodeGuruReviewer.DescribeRecommendationFeedback+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Describes the customer feedback for a CodeGuru Reviewer recommendation.+module Amazonka.CodeGuruReviewer.DescribeRecommendationFeedback+  ( -- * Creating a Request+    DescribeRecommendationFeedback (..),+    newDescribeRecommendationFeedback,++    -- * Request Lenses+    describeRecommendationFeedback_userId,+    describeRecommendationFeedback_codeReviewArn,+    describeRecommendationFeedback_recommendationId,++    -- * Destructuring the Response+    DescribeRecommendationFeedbackResponse (..),+    newDescribeRecommendationFeedbackResponse,++    -- * Response Lenses+    describeRecommendationFeedbackResponse_recommendationFeedback,+    describeRecommendationFeedbackResponse_httpStatus,+  )+where++import Amazonka.CodeGuruReviewer.Types+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeRecommendationFeedback' smart constructor.+data DescribeRecommendationFeedback = DescribeRecommendationFeedback'+  { -- | Optional parameter to describe the feedback for a given user. If this is+    -- not supplied, it defaults to the user making the request.+    --+    -- The @UserId@ is an IAM principal that can be specified as an Amazon Web+    -- Services account ID or an Amazon Resource Name (ARN). For more+    -- information, see+    -- <https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#Principal_specifying Specifying a Principal>+    -- in the /Amazon Web Services Identity and Access Management User Guide/.+    userId :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the+    -- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_CodeReview.html CodeReview>+    -- object.+    codeReviewArn :: Prelude.Text,+    -- | The recommendation ID that can be used to track the provided+    -- recommendations and then to collect the feedback.+    recommendationId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeRecommendationFeedback' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'userId', 'describeRecommendationFeedback_userId' - Optional parameter to describe the feedback for a given user. If this is+-- not supplied, it defaults to the user making the request.+--+-- The @UserId@ is an IAM principal that can be specified as an Amazon Web+-- Services account ID or an Amazon Resource Name (ARN). For more+-- information, see+-- <https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#Principal_specifying Specifying a Principal>+-- in the /Amazon Web Services Identity and Access Management User Guide/.+--+-- 'codeReviewArn', 'describeRecommendationFeedback_codeReviewArn' - The Amazon Resource Name (ARN) of the+-- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_CodeReview.html CodeReview>+-- object.+--+-- 'recommendationId', 'describeRecommendationFeedback_recommendationId' - The recommendation ID that can be used to track the provided+-- recommendations and then to collect the feedback.+newDescribeRecommendationFeedback ::+  -- | 'codeReviewArn'+  Prelude.Text ->+  -- | 'recommendationId'+  Prelude.Text ->+  DescribeRecommendationFeedback+newDescribeRecommendationFeedback+  pCodeReviewArn_+  pRecommendationId_ =+    DescribeRecommendationFeedback'+      { userId =+          Prelude.Nothing,+        codeReviewArn = pCodeReviewArn_,+        recommendationId = pRecommendationId_+      }++-- | Optional parameter to describe the feedback for a given user. If this is+-- not supplied, it defaults to the user making the request.+--+-- The @UserId@ is an IAM principal that can be specified as an Amazon Web+-- Services account ID or an Amazon Resource Name (ARN). For more+-- information, see+-- <https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#Principal_specifying Specifying a Principal>+-- in the /Amazon Web Services Identity and Access Management User Guide/.+describeRecommendationFeedback_userId :: Lens.Lens' DescribeRecommendationFeedback (Prelude.Maybe Prelude.Text)+describeRecommendationFeedback_userId = Lens.lens (\DescribeRecommendationFeedback' {userId} -> userId) (\s@DescribeRecommendationFeedback' {} a -> s {userId = a} :: DescribeRecommendationFeedback)++-- | The Amazon Resource Name (ARN) of the+-- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_CodeReview.html CodeReview>+-- object.+describeRecommendationFeedback_codeReviewArn :: Lens.Lens' DescribeRecommendationFeedback Prelude.Text+describeRecommendationFeedback_codeReviewArn = Lens.lens (\DescribeRecommendationFeedback' {codeReviewArn} -> codeReviewArn) (\s@DescribeRecommendationFeedback' {} a -> s {codeReviewArn = a} :: DescribeRecommendationFeedback)++-- | The recommendation ID that can be used to track the provided+-- recommendations and then to collect the feedback.+describeRecommendationFeedback_recommendationId :: Lens.Lens' DescribeRecommendationFeedback Prelude.Text+describeRecommendationFeedback_recommendationId = Lens.lens (\DescribeRecommendationFeedback' {recommendationId} -> recommendationId) (\s@DescribeRecommendationFeedback' {} a -> s {recommendationId = a} :: DescribeRecommendationFeedback)++instance+  Core.AWSRequest+    DescribeRecommendationFeedback+  where+  type+    AWSResponse DescribeRecommendationFeedback =+      DescribeRecommendationFeedbackResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeRecommendationFeedbackResponse'+            Prelude.<$> (x Data..?> "RecommendationFeedback")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance+  Prelude.Hashable+    DescribeRecommendationFeedback+  where+  hashWithSalt+    _salt+    DescribeRecommendationFeedback' {..} =+      _salt+        `Prelude.hashWithSalt` userId+        `Prelude.hashWithSalt` codeReviewArn+        `Prelude.hashWithSalt` recommendationId++instance+  Prelude.NFData+    DescribeRecommendationFeedback+  where+  rnf DescribeRecommendationFeedback' {..} =+    Prelude.rnf userId+      `Prelude.seq` Prelude.rnf codeReviewArn+      `Prelude.seq` Prelude.rnf recommendationId++instance+  Data.ToHeaders+    DescribeRecommendationFeedback+  where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DescribeRecommendationFeedback where+  toPath DescribeRecommendationFeedback' {..} =+    Prelude.mconcat+      ["/feedback/", Data.toBS codeReviewArn]++instance Data.ToQuery DescribeRecommendationFeedback where+  toQuery DescribeRecommendationFeedback' {..} =+    Prelude.mconcat+      [ "UserId" Data.=: userId,+        "RecommendationId" Data.=: recommendationId+      ]++-- | /See:/ 'newDescribeRecommendationFeedbackResponse' smart constructor.+data DescribeRecommendationFeedbackResponse = DescribeRecommendationFeedbackResponse'+  { -- | The recommendation feedback given by the user.+    recommendationFeedback :: Prelude.Maybe RecommendationFeedback,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeRecommendationFeedbackResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'recommendationFeedback', 'describeRecommendationFeedbackResponse_recommendationFeedback' - The recommendation feedback given by the user.+--+-- 'httpStatus', 'describeRecommendationFeedbackResponse_httpStatus' - The response's http status code.+newDescribeRecommendationFeedbackResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeRecommendationFeedbackResponse+newDescribeRecommendationFeedbackResponse+  pHttpStatus_ =+    DescribeRecommendationFeedbackResponse'+      { recommendationFeedback =+          Prelude.Nothing,+        httpStatus = pHttpStatus_+      }++-- | The recommendation feedback given by the user.+describeRecommendationFeedbackResponse_recommendationFeedback :: Lens.Lens' DescribeRecommendationFeedbackResponse (Prelude.Maybe RecommendationFeedback)+describeRecommendationFeedbackResponse_recommendationFeedback = Lens.lens (\DescribeRecommendationFeedbackResponse' {recommendationFeedback} -> recommendationFeedback) (\s@DescribeRecommendationFeedbackResponse' {} a -> s {recommendationFeedback = a} :: DescribeRecommendationFeedbackResponse)++-- | The response's http status code.+describeRecommendationFeedbackResponse_httpStatus :: Lens.Lens' DescribeRecommendationFeedbackResponse Prelude.Int+describeRecommendationFeedbackResponse_httpStatus = Lens.lens (\DescribeRecommendationFeedbackResponse' {httpStatus} -> httpStatus) (\s@DescribeRecommendationFeedbackResponse' {} a -> s {httpStatus = a} :: DescribeRecommendationFeedbackResponse)++instance+  Prelude.NFData+    DescribeRecommendationFeedbackResponse+  where+  rnf DescribeRecommendationFeedbackResponse' {..} =+    Prelude.rnf recommendationFeedback+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/CodeGuruReviewer/DescribeRepositoryAssociation.hs view
@@ -0,0 +1,223 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CodeGuruReviewer.DescribeRepositoryAssociation+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns a+-- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_RepositoryAssociation.html RepositoryAssociation>+-- object that contains information about the requested repository+-- association.+module Amazonka.CodeGuruReviewer.DescribeRepositoryAssociation+  ( -- * Creating a Request+    DescribeRepositoryAssociation (..),+    newDescribeRepositoryAssociation,++    -- * Request Lenses+    describeRepositoryAssociation_associationArn,++    -- * Destructuring the Response+    DescribeRepositoryAssociationResponse (..),+    newDescribeRepositoryAssociationResponse,++    -- * Response Lenses+    describeRepositoryAssociationResponse_repositoryAssociation,+    describeRepositoryAssociationResponse_tags,+    describeRepositoryAssociationResponse_httpStatus,+  )+where++import Amazonka.CodeGuruReviewer.Types+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeRepositoryAssociation' smart constructor.+data DescribeRepositoryAssociation = DescribeRepositoryAssociation'+  { -- | The Amazon Resource Name (ARN) of the+    -- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_RepositoryAssociation.html RepositoryAssociation>+    -- object. You can retrieve this ARN by calling+    -- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_ListRepositoryAssociations.html ListRepositoryAssociations>.+    associationArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeRepositoryAssociation' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'associationArn', 'describeRepositoryAssociation_associationArn' - The Amazon Resource Name (ARN) of the+-- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_RepositoryAssociation.html RepositoryAssociation>+-- object. You can retrieve this ARN by calling+-- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_ListRepositoryAssociations.html ListRepositoryAssociations>.+newDescribeRepositoryAssociation ::+  -- | 'associationArn'+  Prelude.Text ->+  DescribeRepositoryAssociation+newDescribeRepositoryAssociation pAssociationArn_ =+  DescribeRepositoryAssociation'+    { associationArn =+        pAssociationArn_+    }++-- | The Amazon Resource Name (ARN) of the+-- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_RepositoryAssociation.html RepositoryAssociation>+-- object. You can retrieve this ARN by calling+-- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_ListRepositoryAssociations.html ListRepositoryAssociations>.+describeRepositoryAssociation_associationArn :: Lens.Lens' DescribeRepositoryAssociation Prelude.Text+describeRepositoryAssociation_associationArn = Lens.lens (\DescribeRepositoryAssociation' {associationArn} -> associationArn) (\s@DescribeRepositoryAssociation' {} a -> s {associationArn = a} :: DescribeRepositoryAssociation)++instance+  Core.AWSRequest+    DescribeRepositoryAssociation+  where+  type+    AWSResponse DescribeRepositoryAssociation =+      DescribeRepositoryAssociationResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeRepositoryAssociationResponse'+            Prelude.<$> (x Data..?> "RepositoryAssociation")+            Prelude.<*> (x Data..?> "Tags" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance+  Prelude.Hashable+    DescribeRepositoryAssociation+  where+  hashWithSalt _salt DescribeRepositoryAssociation' {..} =+    _salt `Prelude.hashWithSalt` associationArn++instance Prelude.NFData DescribeRepositoryAssociation where+  rnf DescribeRepositoryAssociation' {..} =+    Prelude.rnf associationArn++instance Data.ToHeaders DescribeRepositoryAssociation where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DescribeRepositoryAssociation where+  toPath DescribeRepositoryAssociation' {..} =+    Prelude.mconcat+      ["/associations/", Data.toBS associationArn]++instance Data.ToQuery DescribeRepositoryAssociation where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeRepositoryAssociationResponse' smart constructor.+data DescribeRepositoryAssociationResponse = DescribeRepositoryAssociationResponse'+  { -- | Information about the repository association.+    repositoryAssociation :: Prelude.Maybe RepositoryAssociation,+    -- | An array of key-value pairs used to tag an associated repository. A tag+    -- is a custom attribute label with two parts:+    --+    -- -   A /tag key/ (for example, @CostCenter@, @Environment@, @Project@, or+    --     @Secret@). Tag keys are case sensitive.+    --+    -- -   An optional field known as a /tag value/ (for example,+    --     @111122223333@, @Production@, or a team name). Omitting the tag+    --     value is the same as using an empty string. Like tag keys, tag+    --     values are case sensitive.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeRepositoryAssociationResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'repositoryAssociation', 'describeRepositoryAssociationResponse_repositoryAssociation' - Information about the repository association.+--+-- 'tags', 'describeRepositoryAssociationResponse_tags' - An array of key-value pairs used to tag an associated repository. A tag+-- is a custom attribute label with two parts:+--+-- -   A /tag key/ (for example, @CostCenter@, @Environment@, @Project@, or+--     @Secret@). Tag keys are case sensitive.+--+-- -   An optional field known as a /tag value/ (for example,+--     @111122223333@, @Production@, or a team name). Omitting the tag+--     value is the same as using an empty string. Like tag keys, tag+--     values are case sensitive.+--+-- 'httpStatus', 'describeRepositoryAssociationResponse_httpStatus' - The response's http status code.+newDescribeRepositoryAssociationResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeRepositoryAssociationResponse+newDescribeRepositoryAssociationResponse pHttpStatus_ =+  DescribeRepositoryAssociationResponse'+    { repositoryAssociation =+        Prelude.Nothing,+      tags = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Information about the repository association.+describeRepositoryAssociationResponse_repositoryAssociation :: Lens.Lens' DescribeRepositoryAssociationResponse (Prelude.Maybe RepositoryAssociation)+describeRepositoryAssociationResponse_repositoryAssociation = Lens.lens (\DescribeRepositoryAssociationResponse' {repositoryAssociation} -> repositoryAssociation) (\s@DescribeRepositoryAssociationResponse' {} a -> s {repositoryAssociation = a} :: DescribeRepositoryAssociationResponse)++-- | An array of key-value pairs used to tag an associated repository. A tag+-- is a custom attribute label with two parts:+--+-- -   A /tag key/ (for example, @CostCenter@, @Environment@, @Project@, or+--     @Secret@). Tag keys are case sensitive.+--+-- -   An optional field known as a /tag value/ (for example,+--     @111122223333@, @Production@, or a team name). Omitting the tag+--     value is the same as using an empty string. Like tag keys, tag+--     values are case sensitive.+describeRepositoryAssociationResponse_tags :: Lens.Lens' DescribeRepositoryAssociationResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+describeRepositoryAssociationResponse_tags = Lens.lens (\DescribeRepositoryAssociationResponse' {tags} -> tags) (\s@DescribeRepositoryAssociationResponse' {} a -> s {tags = a} :: DescribeRepositoryAssociationResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+describeRepositoryAssociationResponse_httpStatus :: Lens.Lens' DescribeRepositoryAssociationResponse Prelude.Int+describeRepositoryAssociationResponse_httpStatus = Lens.lens (\DescribeRepositoryAssociationResponse' {httpStatus} -> httpStatus) (\s@DescribeRepositoryAssociationResponse' {} a -> s {httpStatus = a} :: DescribeRepositoryAssociationResponse)++instance+  Prelude.NFData+    DescribeRepositoryAssociationResponse+  where+  rnf DescribeRepositoryAssociationResponse' {..} =+    Prelude.rnf repositoryAssociation+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/CodeGuruReviewer/DisassociateRepository.hs view
@@ -0,0 +1,215 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CodeGuruReviewer.DisassociateRepository+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Removes the association between Amazon CodeGuru Reviewer and a+-- repository.+module Amazonka.CodeGuruReviewer.DisassociateRepository+  ( -- * Creating a Request+    DisassociateRepository (..),+    newDisassociateRepository,++    -- * Request Lenses+    disassociateRepository_associationArn,++    -- * Destructuring the Response+    DisassociateRepositoryResponse (..),+    newDisassociateRepositoryResponse,++    -- * Response Lenses+    disassociateRepositoryResponse_repositoryAssociation,+    disassociateRepositoryResponse_tags,+    disassociateRepositoryResponse_httpStatus,+  )+where++import Amazonka.CodeGuruReviewer.Types+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDisassociateRepository' smart constructor.+data DisassociateRepository = DisassociateRepository'+  { -- | The Amazon Resource Name (ARN) of the+    -- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_RepositoryAssociation.html RepositoryAssociation>+    -- object. You can retrieve this ARN by calling+    -- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_ListRepositoryAssociations.html ListRepositoryAssociations>.+    associationArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DisassociateRepository' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'associationArn', 'disassociateRepository_associationArn' - The Amazon Resource Name (ARN) of the+-- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_RepositoryAssociation.html RepositoryAssociation>+-- object. You can retrieve this ARN by calling+-- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_ListRepositoryAssociations.html ListRepositoryAssociations>.+newDisassociateRepository ::+  -- | 'associationArn'+  Prelude.Text ->+  DisassociateRepository+newDisassociateRepository pAssociationArn_ =+  DisassociateRepository'+    { associationArn =+        pAssociationArn_+    }++-- | The Amazon Resource Name (ARN) of the+-- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_RepositoryAssociation.html RepositoryAssociation>+-- object. You can retrieve this ARN by calling+-- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_ListRepositoryAssociations.html ListRepositoryAssociations>.+disassociateRepository_associationArn :: Lens.Lens' DisassociateRepository Prelude.Text+disassociateRepository_associationArn = Lens.lens (\DisassociateRepository' {associationArn} -> associationArn) (\s@DisassociateRepository' {} a -> s {associationArn = a} :: DisassociateRepository)++instance Core.AWSRequest DisassociateRepository where+  type+    AWSResponse DisassociateRepository =+      DisassociateRepositoryResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DisassociateRepositoryResponse'+            Prelude.<$> (x Data..?> "RepositoryAssociation")+            Prelude.<*> (x Data..?> "Tags" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DisassociateRepository where+  hashWithSalt _salt DisassociateRepository' {..} =+    _salt `Prelude.hashWithSalt` associationArn++instance Prelude.NFData DisassociateRepository where+  rnf DisassociateRepository' {..} =+    Prelude.rnf associationArn++instance Data.ToHeaders DisassociateRepository where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DisassociateRepository where+  toPath DisassociateRepository' {..} =+    Prelude.mconcat+      ["/associations/", Data.toBS associationArn]++instance Data.ToQuery DisassociateRepository where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDisassociateRepositoryResponse' smart constructor.+data DisassociateRepositoryResponse = DisassociateRepositoryResponse'+  { -- | Information about the disassociated repository.+    repositoryAssociation :: Prelude.Maybe RepositoryAssociation,+    -- | An array of key-value pairs used to tag an associated repository. A tag+    -- is a custom attribute label with two parts:+    --+    -- -   A /tag key/ (for example, @CostCenter@, @Environment@, @Project@, or+    --     @Secret@). Tag keys are case sensitive.+    --+    -- -   An optional field known as a /tag value/ (for example,+    --     @111122223333@, @Production@, or a team name). Omitting the tag+    --     value is the same as using an empty string. Like tag keys, tag+    --     values are case sensitive.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DisassociateRepositoryResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'repositoryAssociation', 'disassociateRepositoryResponse_repositoryAssociation' - Information about the disassociated repository.+--+-- 'tags', 'disassociateRepositoryResponse_tags' - An array of key-value pairs used to tag an associated repository. A tag+-- is a custom attribute label with two parts:+--+-- -   A /tag key/ (for example, @CostCenter@, @Environment@, @Project@, or+--     @Secret@). Tag keys are case sensitive.+--+-- -   An optional field known as a /tag value/ (for example,+--     @111122223333@, @Production@, or a team name). Omitting the tag+--     value is the same as using an empty string. Like tag keys, tag+--     values are case sensitive.+--+-- 'httpStatus', 'disassociateRepositoryResponse_httpStatus' - The response's http status code.+newDisassociateRepositoryResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DisassociateRepositoryResponse+newDisassociateRepositoryResponse pHttpStatus_ =+  DisassociateRepositoryResponse'+    { repositoryAssociation =+        Prelude.Nothing,+      tags = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Information about the disassociated repository.+disassociateRepositoryResponse_repositoryAssociation :: Lens.Lens' DisassociateRepositoryResponse (Prelude.Maybe RepositoryAssociation)+disassociateRepositoryResponse_repositoryAssociation = Lens.lens (\DisassociateRepositoryResponse' {repositoryAssociation} -> repositoryAssociation) (\s@DisassociateRepositoryResponse' {} a -> s {repositoryAssociation = a} :: DisassociateRepositoryResponse)++-- | An array of key-value pairs used to tag an associated repository. A tag+-- is a custom attribute label with two parts:+--+-- -   A /tag key/ (for example, @CostCenter@, @Environment@, @Project@, or+--     @Secret@). Tag keys are case sensitive.+--+-- -   An optional field known as a /tag value/ (for example,+--     @111122223333@, @Production@, or a team name). Omitting the tag+--     value is the same as using an empty string. Like tag keys, tag+--     values are case sensitive.+disassociateRepositoryResponse_tags :: Lens.Lens' DisassociateRepositoryResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+disassociateRepositoryResponse_tags = Lens.lens (\DisassociateRepositoryResponse' {tags} -> tags) (\s@DisassociateRepositoryResponse' {} a -> s {tags = a} :: DisassociateRepositoryResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+disassociateRepositoryResponse_httpStatus :: Lens.Lens' DisassociateRepositoryResponse Prelude.Int+disassociateRepositoryResponse_httpStatus = Lens.lens (\DisassociateRepositoryResponse' {httpStatus} -> httpStatus) (\s@DisassociateRepositoryResponse' {} a -> s {httpStatus = a} :: DisassociateRepositoryResponse)++instance+  Prelude.NFData+    DisassociateRepositoryResponse+  where+  rnf DisassociateRepositoryResponse' {..} =+    Prelude.rnf repositoryAssociation+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/CodeGuruReviewer/Lens.hs view
@@ -0,0 +1,329 @@+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CodeGuruReviewer.Lens+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.CodeGuruReviewer.Lens+  ( -- * Operations++    -- ** AssociateRepository+    associateRepository_clientRequestToken,+    associateRepository_kmsKeyDetails,+    associateRepository_tags,+    associateRepository_repository,+    associateRepositoryResponse_repositoryAssociation,+    associateRepositoryResponse_tags,+    associateRepositoryResponse_httpStatus,++    -- ** CreateCodeReview+    createCodeReview_clientRequestToken,+    createCodeReview_name,+    createCodeReview_repositoryAssociationArn,+    createCodeReview_type,+    createCodeReviewResponse_codeReview,+    createCodeReviewResponse_httpStatus,++    -- ** DescribeCodeReview+    describeCodeReview_codeReviewArn,+    describeCodeReviewResponse_codeReview,+    describeCodeReviewResponse_httpStatus,++    -- ** DescribeRecommendationFeedback+    describeRecommendationFeedback_userId,+    describeRecommendationFeedback_codeReviewArn,+    describeRecommendationFeedback_recommendationId,+    describeRecommendationFeedbackResponse_recommendationFeedback,+    describeRecommendationFeedbackResponse_httpStatus,++    -- ** DescribeRepositoryAssociation+    describeRepositoryAssociation_associationArn,+    describeRepositoryAssociationResponse_repositoryAssociation,+    describeRepositoryAssociationResponse_tags,+    describeRepositoryAssociationResponse_httpStatus,++    -- ** DisassociateRepository+    disassociateRepository_associationArn,+    disassociateRepositoryResponse_repositoryAssociation,+    disassociateRepositoryResponse_tags,+    disassociateRepositoryResponse_httpStatus,++    -- ** ListCodeReviews+    listCodeReviews_maxResults,+    listCodeReviews_nextToken,+    listCodeReviews_providerTypes,+    listCodeReviews_repositoryNames,+    listCodeReviews_states,+    listCodeReviews_type,+    listCodeReviewsResponse_codeReviewSummaries,+    listCodeReviewsResponse_nextToken,+    listCodeReviewsResponse_httpStatus,++    -- ** ListRecommendationFeedback+    listRecommendationFeedback_maxResults,+    listRecommendationFeedback_nextToken,+    listRecommendationFeedback_recommendationIds,+    listRecommendationFeedback_userIds,+    listRecommendationFeedback_codeReviewArn,+    listRecommendationFeedbackResponse_nextToken,+    listRecommendationFeedbackResponse_recommendationFeedbackSummaries,+    listRecommendationFeedbackResponse_httpStatus,++    -- ** ListRecommendations+    listRecommendations_maxResults,+    listRecommendations_nextToken,+    listRecommendations_codeReviewArn,+    listRecommendationsResponse_nextToken,+    listRecommendationsResponse_recommendationSummaries,+    listRecommendationsResponse_httpStatus,++    -- ** ListRepositoryAssociations+    listRepositoryAssociations_maxResults,+    listRepositoryAssociations_names,+    listRepositoryAssociations_nextToken,+    listRepositoryAssociations_owners,+    listRepositoryAssociations_providerTypes,+    listRepositoryAssociations_states,+    listRepositoryAssociationsResponse_nextToken,+    listRepositoryAssociationsResponse_repositoryAssociationSummaries,+    listRepositoryAssociationsResponse_httpStatus,++    -- ** ListTagsForResource+    listTagsForResource_resourceArn,+    listTagsForResourceResponse_tags,+    listTagsForResourceResponse_httpStatus,++    -- ** PutRecommendationFeedback+    putRecommendationFeedback_codeReviewArn,+    putRecommendationFeedback_recommendationId,+    putRecommendationFeedback_reactions,+    putRecommendationFeedbackResponse_httpStatus,++    -- ** TagResource+    tagResource_resourceArn,+    tagResource_tags,+    tagResourceResponse_httpStatus,++    -- ** UntagResource+    untagResource_resourceArn,+    untagResource_tagKeys,+    untagResourceResponse_httpStatus,++    -- * Types++    -- ** BranchDiffSourceCodeType+    branchDiffSourceCodeType_sourceBranchName,+    branchDiffSourceCodeType_destinationBranchName,++    -- ** CodeArtifacts+    codeArtifacts_buildArtifactsObjectKey,+    codeArtifacts_sourceCodeArtifactsObjectKey,++    -- ** CodeCommitRepository+    codeCommitRepository_name,++    -- ** CodeReview+    codeReview_analysisTypes,+    codeReview_associationArn,+    codeReview_codeReviewArn,+    codeReview_configFileState,+    codeReview_createdTimeStamp,+    codeReview_lastUpdatedTimeStamp,+    codeReview_metrics,+    codeReview_name,+    codeReview_owner,+    codeReview_providerType,+    codeReview_pullRequestId,+    codeReview_repositoryName,+    codeReview_sourceCodeType,+    codeReview_state,+    codeReview_stateReason,+    codeReview_type,++    -- ** CodeReviewSummary+    codeReviewSummary_codeReviewArn,+    codeReviewSummary_createdTimeStamp,+    codeReviewSummary_lastUpdatedTimeStamp,+    codeReviewSummary_metricsSummary,+    codeReviewSummary_name,+    codeReviewSummary_owner,+    codeReviewSummary_providerType,+    codeReviewSummary_pullRequestId,+    codeReviewSummary_repositoryName,+    codeReviewSummary_sourceCodeType,+    codeReviewSummary_state,+    codeReviewSummary_type,++    -- ** CodeReviewType+    codeReviewType_analysisTypes,+    codeReviewType_repositoryAnalysis,++    -- ** CommitDiffSourceCodeType+    commitDiffSourceCodeType_destinationCommit,+    commitDiffSourceCodeType_mergeBaseCommit,+    commitDiffSourceCodeType_sourceCommit,++    -- ** EventInfo+    eventInfo_name,+    eventInfo_state,++    -- ** KMSKeyDetails+    kmsKeyDetails_encryptionOption,+    kmsKeyDetails_kmsKeyId,++    -- ** Metrics+    metrics_findingsCount,+    metrics_meteredLinesOfCodeCount,+    metrics_suppressedLinesOfCodeCount,++    -- ** MetricsSummary+    metricsSummary_findingsCount,+    metricsSummary_meteredLinesOfCodeCount,+    metricsSummary_suppressedLinesOfCodeCount,++    -- ** RecommendationFeedback+    recommendationFeedback_codeReviewArn,+    recommendationFeedback_createdTimeStamp,+    recommendationFeedback_lastUpdatedTimeStamp,+    recommendationFeedback_reactions,+    recommendationFeedback_recommendationId,+    recommendationFeedback_userId,++    -- ** RecommendationFeedbackSummary+    recommendationFeedbackSummary_reactions,+    recommendationFeedbackSummary_recommendationId,+    recommendationFeedbackSummary_userId,++    -- ** RecommendationSummary+    recommendationSummary_description,+    recommendationSummary_endLine,+    recommendationSummary_filePath,+    recommendationSummary_recommendationCategory,+    recommendationSummary_recommendationId,+    recommendationSummary_ruleMetadata,+    recommendationSummary_severity,+    recommendationSummary_startLine,++    -- ** Repository+    repository_bitbucket,+    repository_codeCommit,+    repository_gitHubEnterpriseServer,+    repository_s3Bucket,++    -- ** RepositoryAnalysis+    repositoryAnalysis_repositoryHead,+    repositoryAnalysis_sourceCodeType,++    -- ** RepositoryAssociation+    repositoryAssociation_associationArn,+    repositoryAssociation_associationId,+    repositoryAssociation_connectionArn,+    repositoryAssociation_createdTimeStamp,+    repositoryAssociation_kmsKeyDetails,+    repositoryAssociation_lastUpdatedTimeStamp,+    repositoryAssociation_name,+    repositoryAssociation_owner,+    repositoryAssociation_providerType,+    repositoryAssociation_s3RepositoryDetails,+    repositoryAssociation_state,+    repositoryAssociation_stateReason,++    -- ** RepositoryAssociationSummary+    repositoryAssociationSummary_associationArn,+    repositoryAssociationSummary_associationId,+    repositoryAssociationSummary_connectionArn,+    repositoryAssociationSummary_lastUpdatedTimeStamp,+    repositoryAssociationSummary_name,+    repositoryAssociationSummary_owner,+    repositoryAssociationSummary_providerType,+    repositoryAssociationSummary_state,++    -- ** RepositoryHeadSourceCodeType+    repositoryHeadSourceCodeType_branchName,++    -- ** RequestMetadata+    requestMetadata_eventInfo,+    requestMetadata_requestId,+    requestMetadata_requester,+    requestMetadata_vendorName,++    -- ** RuleMetadata+    ruleMetadata_longDescription,+    ruleMetadata_ruleId,+    ruleMetadata_ruleName,+    ruleMetadata_ruleTags,+    ruleMetadata_shortDescription,++    -- ** S3BucketRepository+    s3BucketRepository_details,+    s3BucketRepository_name,++    -- ** S3Repository+    s3Repository_name,+    s3Repository_bucketName,++    -- ** S3RepositoryDetails+    s3RepositoryDetails_bucketName,+    s3RepositoryDetails_codeArtifacts,++    -- ** SourceCodeType+    sourceCodeType_branchDiff,+    sourceCodeType_commitDiff,+    sourceCodeType_repositoryHead,+    sourceCodeType_requestMetadata,+    sourceCodeType_s3BucketRepository,++    -- ** ThirdPartySourceRepository+    thirdPartySourceRepository_name,+    thirdPartySourceRepository_connectionArn,+    thirdPartySourceRepository_owner,+  )+where++import Amazonka.CodeGuruReviewer.AssociateRepository+import Amazonka.CodeGuruReviewer.CreateCodeReview+import Amazonka.CodeGuruReviewer.DescribeCodeReview+import Amazonka.CodeGuruReviewer.DescribeRecommendationFeedback+import Amazonka.CodeGuruReviewer.DescribeRepositoryAssociation+import Amazonka.CodeGuruReviewer.DisassociateRepository+import Amazonka.CodeGuruReviewer.ListCodeReviews+import Amazonka.CodeGuruReviewer.ListRecommendationFeedback+import Amazonka.CodeGuruReviewer.ListRecommendations+import Amazonka.CodeGuruReviewer.ListRepositoryAssociations+import Amazonka.CodeGuruReviewer.ListTagsForResource+import Amazonka.CodeGuruReviewer.PutRecommendationFeedback+import Amazonka.CodeGuruReviewer.TagResource+import Amazonka.CodeGuruReviewer.Types.BranchDiffSourceCodeType+import Amazonka.CodeGuruReviewer.Types.CodeArtifacts+import Amazonka.CodeGuruReviewer.Types.CodeCommitRepository+import Amazonka.CodeGuruReviewer.Types.CodeReview+import Amazonka.CodeGuruReviewer.Types.CodeReviewSummary+import Amazonka.CodeGuruReviewer.Types.CodeReviewType+import Amazonka.CodeGuruReviewer.Types.CommitDiffSourceCodeType+import Amazonka.CodeGuruReviewer.Types.EventInfo+import Amazonka.CodeGuruReviewer.Types.KMSKeyDetails+import Amazonka.CodeGuruReviewer.Types.Metrics+import Amazonka.CodeGuruReviewer.Types.MetricsSummary+import Amazonka.CodeGuruReviewer.Types.RecommendationFeedback+import Amazonka.CodeGuruReviewer.Types.RecommendationFeedbackSummary+import Amazonka.CodeGuruReviewer.Types.RecommendationSummary+import Amazonka.CodeGuruReviewer.Types.Repository+import Amazonka.CodeGuruReviewer.Types.RepositoryAnalysis+import Amazonka.CodeGuruReviewer.Types.RepositoryAssociation+import Amazonka.CodeGuruReviewer.Types.RepositoryAssociationSummary+import Amazonka.CodeGuruReviewer.Types.RepositoryHeadSourceCodeType+import Amazonka.CodeGuruReviewer.Types.RequestMetadata+import Amazonka.CodeGuruReviewer.Types.RuleMetadata+import Amazonka.CodeGuruReviewer.Types.S3BucketRepository+import Amazonka.CodeGuruReviewer.Types.S3Repository+import Amazonka.CodeGuruReviewer.Types.S3RepositoryDetails+import Amazonka.CodeGuruReviewer.Types.SourceCodeType+import Amazonka.CodeGuruReviewer.Types.ThirdPartySourceRepository+import Amazonka.CodeGuruReviewer.UntagResource
+ gen/Amazonka/CodeGuruReviewer/ListCodeReviews.hs view
@@ -0,0 +1,312 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CodeGuruReviewer.ListCodeReviews+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists all the code reviews that the customer has created in the past 90+-- days.+module Amazonka.CodeGuruReviewer.ListCodeReviews+  ( -- * Creating a Request+    ListCodeReviews (..),+    newListCodeReviews,++    -- * Request Lenses+    listCodeReviews_maxResults,+    listCodeReviews_nextToken,+    listCodeReviews_providerTypes,+    listCodeReviews_repositoryNames,+    listCodeReviews_states,+    listCodeReviews_type,++    -- * Destructuring the Response+    ListCodeReviewsResponse (..),+    newListCodeReviewsResponse,++    -- * Response Lenses+    listCodeReviewsResponse_codeReviewSummaries,+    listCodeReviewsResponse_nextToken,+    listCodeReviewsResponse_httpStatus,+  )+where++import Amazonka.CodeGuruReviewer.Types+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListCodeReviews' smart constructor.+data ListCodeReviews = ListCodeReviews'+  { -- | The maximum number of results that are returned per call. The default is+    -- 100.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | If @nextToken@ is returned, there are more results available. The value+    -- of @nextToken@ is a unique pagination token for each page. Make the call+    -- again using the returned token to retrieve the next page. Keep all other+    -- arguments unchanged.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | List of provider types for filtering that needs to be applied before+    -- displaying the result. For example, @providerTypes=[GitHub]@ lists code+    -- reviews from GitHub.+    providerTypes :: Prelude.Maybe (Prelude.NonEmpty ProviderType),+    -- | List of repository names for filtering that needs to be applied before+    -- displaying the result.+    repositoryNames :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),+    -- | List of states for filtering that needs to be applied before displaying+    -- the result. For example, @states=[Pending]@ lists code reviews in the+    -- Pending state.+    --+    -- The valid code review states are:+    --+    -- -   @Completed@: The code review is complete.+    --+    -- -   @Pending@: The code review started and has not completed or failed.+    --+    -- -   @Failed@: The code review failed.+    --+    -- -   @Deleting@: The code review is being deleted.+    states :: Prelude.Maybe (Prelude.NonEmpty JobState),+    -- | The type of code reviews to list in the response.+    type' :: Type+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListCodeReviews' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'maxResults', 'listCodeReviews_maxResults' - The maximum number of results that are returned per call. The default is+-- 100.+--+-- 'nextToken', 'listCodeReviews_nextToken' - If @nextToken@ is returned, there are more results available. The value+-- of @nextToken@ is a unique pagination token for each page. Make the call+-- again using the returned token to retrieve the next page. Keep all other+-- arguments unchanged.+--+-- 'providerTypes', 'listCodeReviews_providerTypes' - List of provider types for filtering that needs to be applied before+-- displaying the result. For example, @providerTypes=[GitHub]@ lists code+-- reviews from GitHub.+--+-- 'repositoryNames', 'listCodeReviews_repositoryNames' - List of repository names for filtering that needs to be applied before+-- displaying the result.+--+-- 'states', 'listCodeReviews_states' - List of states for filtering that needs to be applied before displaying+-- the result. For example, @states=[Pending]@ lists code reviews in the+-- Pending state.+--+-- The valid code review states are:+--+-- -   @Completed@: The code review is complete.+--+-- -   @Pending@: The code review started and has not completed or failed.+--+-- -   @Failed@: The code review failed.+--+-- -   @Deleting@: The code review is being deleted.+--+-- 'type'', 'listCodeReviews_type' - The type of code reviews to list in the response.+newListCodeReviews ::+  -- | 'type''+  Type ->+  ListCodeReviews+newListCodeReviews pType_ =+  ListCodeReviews'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      providerTypes = Prelude.Nothing,+      repositoryNames = Prelude.Nothing,+      states = Prelude.Nothing,+      type' = pType_+    }++-- | The maximum number of results that are returned per call. The default is+-- 100.+listCodeReviews_maxResults :: Lens.Lens' ListCodeReviews (Prelude.Maybe Prelude.Natural)+listCodeReviews_maxResults = Lens.lens (\ListCodeReviews' {maxResults} -> maxResults) (\s@ListCodeReviews' {} a -> s {maxResults = a} :: ListCodeReviews)++-- | If @nextToken@ is returned, there are more results available. The value+-- of @nextToken@ is a unique pagination token for each page. Make the call+-- again using the returned token to retrieve the next page. Keep all other+-- arguments unchanged.+listCodeReviews_nextToken :: Lens.Lens' ListCodeReviews (Prelude.Maybe Prelude.Text)+listCodeReviews_nextToken = Lens.lens (\ListCodeReviews' {nextToken} -> nextToken) (\s@ListCodeReviews' {} a -> s {nextToken = a} :: ListCodeReviews)++-- | List of provider types for filtering that needs to be applied before+-- displaying the result. For example, @providerTypes=[GitHub]@ lists code+-- reviews from GitHub.+listCodeReviews_providerTypes :: Lens.Lens' ListCodeReviews (Prelude.Maybe (Prelude.NonEmpty ProviderType))+listCodeReviews_providerTypes = Lens.lens (\ListCodeReviews' {providerTypes} -> providerTypes) (\s@ListCodeReviews' {} a -> s {providerTypes = a} :: ListCodeReviews) Prelude.. Lens.mapping Lens.coerced++-- | List of repository names for filtering that needs to be applied before+-- displaying the result.+listCodeReviews_repositoryNames :: Lens.Lens' ListCodeReviews (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+listCodeReviews_repositoryNames = Lens.lens (\ListCodeReviews' {repositoryNames} -> repositoryNames) (\s@ListCodeReviews' {} a -> s {repositoryNames = a} :: ListCodeReviews) Prelude.. Lens.mapping Lens.coerced++-- | List of states for filtering that needs to be applied before displaying+-- the result. For example, @states=[Pending]@ lists code reviews in the+-- Pending state.+--+-- The valid code review states are:+--+-- -   @Completed@: The code review is complete.+--+-- -   @Pending@: The code review started and has not completed or failed.+--+-- -   @Failed@: The code review failed.+--+-- -   @Deleting@: The code review is being deleted.+listCodeReviews_states :: Lens.Lens' ListCodeReviews (Prelude.Maybe (Prelude.NonEmpty JobState))+listCodeReviews_states = Lens.lens (\ListCodeReviews' {states} -> states) (\s@ListCodeReviews' {} a -> s {states = a} :: ListCodeReviews) Prelude.. Lens.mapping Lens.coerced++-- | The type of code reviews to list in the response.+listCodeReviews_type :: Lens.Lens' ListCodeReviews Type+listCodeReviews_type = Lens.lens (\ListCodeReviews' {type'} -> type') (\s@ListCodeReviews' {} a -> s {type' = a} :: ListCodeReviews)++instance Core.AWSRequest ListCodeReviews where+  type+    AWSResponse ListCodeReviews =+      ListCodeReviewsResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListCodeReviewsResponse'+            Prelude.<$> ( x+                            Data..?> "CodeReviewSummaries"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "NextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListCodeReviews where+  hashWithSalt _salt ListCodeReviews' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` providerTypes+      `Prelude.hashWithSalt` repositoryNames+      `Prelude.hashWithSalt` states+      `Prelude.hashWithSalt` type'++instance Prelude.NFData ListCodeReviews where+  rnf ListCodeReviews' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf providerTypes+      `Prelude.seq` Prelude.rnf repositoryNames+      `Prelude.seq` Prelude.rnf states+      `Prelude.seq` Prelude.rnf type'++instance Data.ToHeaders ListCodeReviews where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ListCodeReviews where+  toPath = Prelude.const "/codereviews"++instance Data.ToQuery ListCodeReviews where+  toQuery ListCodeReviews' {..} =+    Prelude.mconcat+      [ "MaxResults" Data.=: maxResults,+        "NextToken" Data.=: nextToken,+        "ProviderTypes"+          Data.=: Data.toQuery+            ( Data.toQueryList "member"+                Prelude.<$> providerTypes+            ),+        "RepositoryNames"+          Data.=: Data.toQuery+            ( Data.toQueryList "member"+                Prelude.<$> repositoryNames+            ),+        "States"+          Data.=: Data.toQuery+            (Data.toQueryList "member" Prelude.<$> states),+        "Type" Data.=: type'+      ]++-- | /See:/ 'newListCodeReviewsResponse' smart constructor.+data ListCodeReviewsResponse = ListCodeReviewsResponse'+  { -- | A list of code reviews that meet the criteria of the request.+    codeReviewSummaries :: Prelude.Maybe [CodeReviewSummary],+    -- | Pagination token.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListCodeReviewsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'codeReviewSummaries', 'listCodeReviewsResponse_codeReviewSummaries' - A list of code reviews that meet the criteria of the request.+--+-- 'nextToken', 'listCodeReviewsResponse_nextToken' - Pagination token.+--+-- 'httpStatus', 'listCodeReviewsResponse_httpStatus' - The response's http status code.+newListCodeReviewsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListCodeReviewsResponse+newListCodeReviewsResponse pHttpStatus_ =+  ListCodeReviewsResponse'+    { codeReviewSummaries =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | A list of code reviews that meet the criteria of the request.+listCodeReviewsResponse_codeReviewSummaries :: Lens.Lens' ListCodeReviewsResponse (Prelude.Maybe [CodeReviewSummary])+listCodeReviewsResponse_codeReviewSummaries = Lens.lens (\ListCodeReviewsResponse' {codeReviewSummaries} -> codeReviewSummaries) (\s@ListCodeReviewsResponse' {} a -> s {codeReviewSummaries = a} :: ListCodeReviewsResponse) Prelude.. Lens.mapping Lens.coerced++-- | Pagination token.+listCodeReviewsResponse_nextToken :: Lens.Lens' ListCodeReviewsResponse (Prelude.Maybe Prelude.Text)+listCodeReviewsResponse_nextToken = Lens.lens (\ListCodeReviewsResponse' {nextToken} -> nextToken) (\s@ListCodeReviewsResponse' {} a -> s {nextToken = a} :: ListCodeReviewsResponse)++-- | The response's http status code.+listCodeReviewsResponse_httpStatus :: Lens.Lens' ListCodeReviewsResponse Prelude.Int+listCodeReviewsResponse_httpStatus = Lens.lens (\ListCodeReviewsResponse' {httpStatus} -> httpStatus) (\s@ListCodeReviewsResponse' {} a -> s {httpStatus = a} :: ListCodeReviewsResponse)++instance Prelude.NFData ListCodeReviewsResponse where+  rnf ListCodeReviewsResponse' {..} =+    Prelude.rnf codeReviewSummaries+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/CodeGuruReviewer/ListRecommendationFeedback.hs view
@@ -0,0 +1,300 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CodeGuruReviewer.ListRecommendationFeedback+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns a list of+-- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_RecommendationFeedbackSummary.html RecommendationFeedbackSummary>+-- objects that contain customer recommendation feedback for all CodeGuru+-- Reviewer users.+module Amazonka.CodeGuruReviewer.ListRecommendationFeedback+  ( -- * Creating a Request+    ListRecommendationFeedback (..),+    newListRecommendationFeedback,++    -- * Request Lenses+    listRecommendationFeedback_maxResults,+    listRecommendationFeedback_nextToken,+    listRecommendationFeedback_recommendationIds,+    listRecommendationFeedback_userIds,+    listRecommendationFeedback_codeReviewArn,++    -- * Destructuring the Response+    ListRecommendationFeedbackResponse (..),+    newListRecommendationFeedbackResponse,++    -- * Response Lenses+    listRecommendationFeedbackResponse_nextToken,+    listRecommendationFeedbackResponse_recommendationFeedbackSummaries,+    listRecommendationFeedbackResponse_httpStatus,+  )+where++import Amazonka.CodeGuruReviewer.Types+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListRecommendationFeedback' smart constructor.+data ListRecommendationFeedback = ListRecommendationFeedback'+  { -- | The maximum number of results that are returned per call. The default is+    -- 100.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | If @nextToken@ is returned, there are more results available. The value+    -- of @nextToken@ is a unique pagination token for each page. Make the call+    -- again using the returned token to retrieve the next page. Keep all other+    -- arguments unchanged.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | Used to query the recommendation feedback for a given recommendation.+    recommendationIds :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),+    -- | An Amazon Web Services user\'s account ID or Amazon Resource Name (ARN).+    -- Use this ID to query the recommendation feedback for a code review from+    -- that user.+    --+    -- The @UserId@ is an IAM principal that can be specified as an Amazon Web+    -- Services account ID or an Amazon Resource Name (ARN). For more+    -- information, see+    -- <https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#Principal_specifying Specifying a Principal>+    -- in the /Amazon Web Services Identity and Access Management User Guide/.+    userIds :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),+    -- | The Amazon Resource Name (ARN) of the+    -- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_CodeReview.html CodeReview>+    -- object.+    codeReviewArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListRecommendationFeedback' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'maxResults', 'listRecommendationFeedback_maxResults' - The maximum number of results that are returned per call. The default is+-- 100.+--+-- 'nextToken', 'listRecommendationFeedback_nextToken' - If @nextToken@ is returned, there are more results available. The value+-- of @nextToken@ is a unique pagination token for each page. Make the call+-- again using the returned token to retrieve the next page. Keep all other+-- arguments unchanged.+--+-- 'recommendationIds', 'listRecommendationFeedback_recommendationIds' - Used to query the recommendation feedback for a given recommendation.+--+-- 'userIds', 'listRecommendationFeedback_userIds' - An Amazon Web Services user\'s account ID or Amazon Resource Name (ARN).+-- Use this ID to query the recommendation feedback for a code review from+-- that user.+--+-- The @UserId@ is an IAM principal that can be specified as an Amazon Web+-- Services account ID or an Amazon Resource Name (ARN). For more+-- information, see+-- <https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#Principal_specifying Specifying a Principal>+-- in the /Amazon Web Services Identity and Access Management User Guide/.+--+-- 'codeReviewArn', 'listRecommendationFeedback_codeReviewArn' - The Amazon Resource Name (ARN) of the+-- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_CodeReview.html CodeReview>+-- object.+newListRecommendationFeedback ::+  -- | 'codeReviewArn'+  Prelude.Text ->+  ListRecommendationFeedback+newListRecommendationFeedback pCodeReviewArn_ =+  ListRecommendationFeedback'+    { maxResults =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      recommendationIds = Prelude.Nothing,+      userIds = Prelude.Nothing,+      codeReviewArn = pCodeReviewArn_+    }++-- | The maximum number of results that are returned per call. The default is+-- 100.+listRecommendationFeedback_maxResults :: Lens.Lens' ListRecommendationFeedback (Prelude.Maybe Prelude.Natural)+listRecommendationFeedback_maxResults = Lens.lens (\ListRecommendationFeedback' {maxResults} -> maxResults) (\s@ListRecommendationFeedback' {} a -> s {maxResults = a} :: ListRecommendationFeedback)++-- | If @nextToken@ is returned, there are more results available. The value+-- of @nextToken@ is a unique pagination token for each page. Make the call+-- again using the returned token to retrieve the next page. Keep all other+-- arguments unchanged.+listRecommendationFeedback_nextToken :: Lens.Lens' ListRecommendationFeedback (Prelude.Maybe Prelude.Text)+listRecommendationFeedback_nextToken = Lens.lens (\ListRecommendationFeedback' {nextToken} -> nextToken) (\s@ListRecommendationFeedback' {} a -> s {nextToken = a} :: ListRecommendationFeedback)++-- | Used to query the recommendation feedback for a given recommendation.+listRecommendationFeedback_recommendationIds :: Lens.Lens' ListRecommendationFeedback (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+listRecommendationFeedback_recommendationIds = Lens.lens (\ListRecommendationFeedback' {recommendationIds} -> recommendationIds) (\s@ListRecommendationFeedback' {} a -> s {recommendationIds = a} :: ListRecommendationFeedback) Prelude.. Lens.mapping Lens.coerced++-- | An Amazon Web Services user\'s account ID or Amazon Resource Name (ARN).+-- Use this ID to query the recommendation feedback for a code review from+-- that user.+--+-- The @UserId@ is an IAM principal that can be specified as an Amazon Web+-- Services account ID or an Amazon Resource Name (ARN). For more+-- information, see+-- <https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#Principal_specifying Specifying a Principal>+-- in the /Amazon Web Services Identity and Access Management User Guide/.+listRecommendationFeedback_userIds :: Lens.Lens' ListRecommendationFeedback (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+listRecommendationFeedback_userIds = Lens.lens (\ListRecommendationFeedback' {userIds} -> userIds) (\s@ListRecommendationFeedback' {} a -> s {userIds = a} :: ListRecommendationFeedback) Prelude.. Lens.mapping Lens.coerced++-- | The Amazon Resource Name (ARN) of the+-- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_CodeReview.html CodeReview>+-- object.+listRecommendationFeedback_codeReviewArn :: Lens.Lens' ListRecommendationFeedback Prelude.Text+listRecommendationFeedback_codeReviewArn = Lens.lens (\ListRecommendationFeedback' {codeReviewArn} -> codeReviewArn) (\s@ListRecommendationFeedback' {} a -> s {codeReviewArn = a} :: ListRecommendationFeedback)++instance Core.AWSRequest ListRecommendationFeedback where+  type+    AWSResponse ListRecommendationFeedback =+      ListRecommendationFeedbackResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListRecommendationFeedbackResponse'+            Prelude.<$> (x Data..?> "NextToken")+            Prelude.<*> ( x+                            Data..?> "RecommendationFeedbackSummaries"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListRecommendationFeedback where+  hashWithSalt _salt ListRecommendationFeedback' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` recommendationIds+      `Prelude.hashWithSalt` userIds+      `Prelude.hashWithSalt` codeReviewArn++instance Prelude.NFData ListRecommendationFeedback where+  rnf ListRecommendationFeedback' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf recommendationIds+      `Prelude.seq` Prelude.rnf userIds+      `Prelude.seq` Prelude.rnf codeReviewArn++instance Data.ToHeaders ListRecommendationFeedback where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ListRecommendationFeedback where+  toPath ListRecommendationFeedback' {..} =+    Prelude.mconcat+      [ "/feedback/",+        Data.toBS codeReviewArn,+        "/RecommendationFeedback"+      ]++instance Data.ToQuery ListRecommendationFeedback where+  toQuery ListRecommendationFeedback' {..} =+    Prelude.mconcat+      [ "MaxResults" Data.=: maxResults,+        "NextToken" Data.=: nextToken,+        "RecommendationIds"+          Data.=: Data.toQuery+            ( Data.toQueryList "member"+                Prelude.<$> recommendationIds+            ),+        "UserIds"+          Data.=: Data.toQuery+            (Data.toQueryList "member" Prelude.<$> userIds)+      ]++-- | /See:/ 'newListRecommendationFeedbackResponse' smart constructor.+data ListRecommendationFeedbackResponse = ListRecommendationFeedbackResponse'+  { -- | If @nextToken@ is returned, there are more results available. The value+    -- of @nextToken@ is a unique pagination token for each page. Make the call+    -- again using the returned token to retrieve the next page. Keep all other+    -- arguments unchanged.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | Recommendation feedback summaries corresponding to the code review ARN.+    recommendationFeedbackSummaries :: Prelude.Maybe [RecommendationFeedbackSummary],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListRecommendationFeedbackResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'nextToken', 'listRecommendationFeedbackResponse_nextToken' - If @nextToken@ is returned, there are more results available. The value+-- of @nextToken@ is a unique pagination token for each page. Make the call+-- again using the returned token to retrieve the next page. Keep all other+-- arguments unchanged.+--+-- 'recommendationFeedbackSummaries', 'listRecommendationFeedbackResponse_recommendationFeedbackSummaries' - Recommendation feedback summaries corresponding to the code review ARN.+--+-- 'httpStatus', 'listRecommendationFeedbackResponse_httpStatus' - The response's http status code.+newListRecommendationFeedbackResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListRecommendationFeedbackResponse+newListRecommendationFeedbackResponse pHttpStatus_ =+  ListRecommendationFeedbackResponse'+    { nextToken =+        Prelude.Nothing,+      recommendationFeedbackSummaries =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | If @nextToken@ is returned, there are more results available. The value+-- of @nextToken@ is a unique pagination token for each page. Make the call+-- again using the returned token to retrieve the next page. Keep all other+-- arguments unchanged.+listRecommendationFeedbackResponse_nextToken :: Lens.Lens' ListRecommendationFeedbackResponse (Prelude.Maybe Prelude.Text)+listRecommendationFeedbackResponse_nextToken = Lens.lens (\ListRecommendationFeedbackResponse' {nextToken} -> nextToken) (\s@ListRecommendationFeedbackResponse' {} a -> s {nextToken = a} :: ListRecommendationFeedbackResponse)++-- | Recommendation feedback summaries corresponding to the code review ARN.+listRecommendationFeedbackResponse_recommendationFeedbackSummaries :: Lens.Lens' ListRecommendationFeedbackResponse (Prelude.Maybe [RecommendationFeedbackSummary])+listRecommendationFeedbackResponse_recommendationFeedbackSummaries = Lens.lens (\ListRecommendationFeedbackResponse' {recommendationFeedbackSummaries} -> recommendationFeedbackSummaries) (\s@ListRecommendationFeedbackResponse' {} a -> s {recommendationFeedbackSummaries = a} :: ListRecommendationFeedbackResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listRecommendationFeedbackResponse_httpStatus :: Lens.Lens' ListRecommendationFeedbackResponse Prelude.Int+listRecommendationFeedbackResponse_httpStatus = Lens.lens (\ListRecommendationFeedbackResponse' {httpStatus} -> httpStatus) (\s@ListRecommendationFeedbackResponse' {} a -> s {httpStatus = a} :: ListRecommendationFeedbackResponse)++instance+  Prelude.NFData+    ListRecommendationFeedbackResponse+  where+  rnf ListRecommendationFeedbackResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf recommendationFeedbackSummaries+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/CodeGuruReviewer/ListRecommendations.hs view
@@ -0,0 +1,218 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CodeGuruReviewer.ListRecommendations+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns the list of all recommendations for a completed code review.+module Amazonka.CodeGuruReviewer.ListRecommendations+  ( -- * Creating a Request+    ListRecommendations (..),+    newListRecommendations,++    -- * Request Lenses+    listRecommendations_maxResults,+    listRecommendations_nextToken,+    listRecommendations_codeReviewArn,++    -- * Destructuring the Response+    ListRecommendationsResponse (..),+    newListRecommendationsResponse,++    -- * Response Lenses+    listRecommendationsResponse_nextToken,+    listRecommendationsResponse_recommendationSummaries,+    listRecommendationsResponse_httpStatus,+  )+where++import Amazonka.CodeGuruReviewer.Types+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListRecommendations' smart constructor.+data ListRecommendations = ListRecommendations'+  { -- | The maximum number of results that are returned per call. The default is+    -- 100.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | Pagination token.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the+    -- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_CodeReview.html CodeReview>+    -- object.+    codeReviewArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListRecommendations' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'maxResults', 'listRecommendations_maxResults' - The maximum number of results that are returned per call. The default is+-- 100.+--+-- 'nextToken', 'listRecommendations_nextToken' - Pagination token.+--+-- 'codeReviewArn', 'listRecommendations_codeReviewArn' - The Amazon Resource Name (ARN) of the+-- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_CodeReview.html CodeReview>+-- object.+newListRecommendations ::+  -- | 'codeReviewArn'+  Prelude.Text ->+  ListRecommendations+newListRecommendations pCodeReviewArn_ =+  ListRecommendations'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      codeReviewArn = pCodeReviewArn_+    }++-- | The maximum number of results that are returned per call. The default is+-- 100.+listRecommendations_maxResults :: Lens.Lens' ListRecommendations (Prelude.Maybe Prelude.Natural)+listRecommendations_maxResults = Lens.lens (\ListRecommendations' {maxResults} -> maxResults) (\s@ListRecommendations' {} a -> s {maxResults = a} :: ListRecommendations)++-- | Pagination token.+listRecommendations_nextToken :: Lens.Lens' ListRecommendations (Prelude.Maybe Prelude.Text)+listRecommendations_nextToken = Lens.lens (\ListRecommendations' {nextToken} -> nextToken) (\s@ListRecommendations' {} a -> s {nextToken = a} :: ListRecommendations)++-- | The Amazon Resource Name (ARN) of the+-- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_CodeReview.html CodeReview>+-- object.+listRecommendations_codeReviewArn :: Lens.Lens' ListRecommendations Prelude.Text+listRecommendations_codeReviewArn = Lens.lens (\ListRecommendations' {codeReviewArn} -> codeReviewArn) (\s@ListRecommendations' {} a -> s {codeReviewArn = a} :: ListRecommendations)++instance Core.AWSRequest ListRecommendations where+  type+    AWSResponse ListRecommendations =+      ListRecommendationsResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListRecommendationsResponse'+            Prelude.<$> (x Data..?> "NextToken")+            Prelude.<*> ( x+                            Data..?> "RecommendationSummaries"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListRecommendations where+  hashWithSalt _salt ListRecommendations' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` codeReviewArn++instance Prelude.NFData ListRecommendations where+  rnf ListRecommendations' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf codeReviewArn++instance Data.ToHeaders ListRecommendations where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ListRecommendations where+  toPath ListRecommendations' {..} =+    Prelude.mconcat+      [ "/codereviews/",+        Data.toBS codeReviewArn,+        "/Recommendations"+      ]++instance Data.ToQuery ListRecommendations where+  toQuery ListRecommendations' {..} =+    Prelude.mconcat+      [ "MaxResults" Data.=: maxResults,+        "NextToken" Data.=: nextToken+      ]++-- | /See:/ 'newListRecommendationsResponse' smart constructor.+data ListRecommendationsResponse = ListRecommendationsResponse'+  { -- | Pagination token.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | List of recommendations for the requested code review.+    recommendationSummaries :: Prelude.Maybe [RecommendationSummary],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListRecommendationsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'nextToken', 'listRecommendationsResponse_nextToken' - Pagination token.+--+-- 'recommendationSummaries', 'listRecommendationsResponse_recommendationSummaries' - List of recommendations for the requested code review.+--+-- 'httpStatus', 'listRecommendationsResponse_httpStatus' - The response's http status code.+newListRecommendationsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListRecommendationsResponse+newListRecommendationsResponse pHttpStatus_ =+  ListRecommendationsResponse'+    { nextToken =+        Prelude.Nothing,+      recommendationSummaries = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Pagination token.+listRecommendationsResponse_nextToken :: Lens.Lens' ListRecommendationsResponse (Prelude.Maybe Prelude.Text)+listRecommendationsResponse_nextToken = Lens.lens (\ListRecommendationsResponse' {nextToken} -> nextToken) (\s@ListRecommendationsResponse' {} a -> s {nextToken = a} :: ListRecommendationsResponse)++-- | List of recommendations for the requested code review.+listRecommendationsResponse_recommendationSummaries :: Lens.Lens' ListRecommendationsResponse (Prelude.Maybe [RecommendationSummary])+listRecommendationsResponse_recommendationSummaries = Lens.lens (\ListRecommendationsResponse' {recommendationSummaries} -> recommendationSummaries) (\s@ListRecommendationsResponse' {} a -> s {recommendationSummaries = a} :: ListRecommendationsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listRecommendationsResponse_httpStatus :: Lens.Lens' ListRecommendationsResponse Prelude.Int+listRecommendationsResponse_httpStatus = Lens.lens (\ListRecommendationsResponse' {httpStatus} -> httpStatus) (\s@ListRecommendationsResponse' {} a -> s {httpStatus = a} :: ListRecommendationsResponse)++instance Prelude.NFData ListRecommendationsResponse where+  rnf ListRecommendationsResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf recommendationSummaries+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/CodeGuruReviewer/ListRepositoryAssociations.hs view
@@ -0,0 +1,445 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CodeGuruReviewer.ListRepositoryAssociations+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns a list of+-- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_RepositoryAssociationSummary.html RepositoryAssociationSummary>+-- objects that contain summary information about a repository association.+-- You can filter the returned list by+-- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_RepositoryAssociationSummary.html#reviewer-Type-RepositoryAssociationSummary-ProviderType ProviderType>,+-- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_RepositoryAssociationSummary.html#reviewer-Type-RepositoryAssociationSummary-Name Name>,+-- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_RepositoryAssociationSummary.html#reviewer-Type-RepositoryAssociationSummary-State State>,+-- and+-- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_RepositoryAssociationSummary.html#reviewer-Type-RepositoryAssociationSummary-Owner Owner>.+--+-- This operation returns paginated results.+module Amazonka.CodeGuruReviewer.ListRepositoryAssociations+  ( -- * Creating a Request+    ListRepositoryAssociations (..),+    newListRepositoryAssociations,++    -- * Request Lenses+    listRepositoryAssociations_maxResults,+    listRepositoryAssociations_names,+    listRepositoryAssociations_nextToken,+    listRepositoryAssociations_owners,+    listRepositoryAssociations_providerTypes,+    listRepositoryAssociations_states,++    -- * Destructuring the Response+    ListRepositoryAssociationsResponse (..),+    newListRepositoryAssociationsResponse,++    -- * Response Lenses+    listRepositoryAssociationsResponse_nextToken,+    listRepositoryAssociationsResponse_repositoryAssociationSummaries,+    listRepositoryAssociationsResponse_httpStatus,+  )+where++import Amazonka.CodeGuruReviewer.Types+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListRepositoryAssociations' smart constructor.+data ListRepositoryAssociations = ListRepositoryAssociations'+  { -- | The maximum number of repository association results returned by+    -- @ListRepositoryAssociations@ in paginated output. When this parameter is+    -- used, @ListRepositoryAssociations@ only returns @maxResults@ results in+    -- a single page with a @nextToken@ response element. The remaining results+    -- of the initial request can be seen by sending another+    -- @ListRepositoryAssociations@ request with the returned @nextToken@+    -- value. This value can be between 1 and 100. If this parameter is not+    -- used, @ListRepositoryAssociations@ returns up to 100 results and a+    -- @nextToken@ value if applicable.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | List of repository names to use as a filter.+    names :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),+    -- | The @nextToken@ value returned from a previous paginated+    -- @ListRepositoryAssociations@ request where @maxResults@ was used and the+    -- results exceeded the value of that parameter. Pagination continues from+    -- the end of the previous results that returned the @nextToken@ value.+    --+    -- Treat this token as an opaque identifier that is only used to retrieve+    -- the next items in a list and not for other programmatic purposes.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | List of owners to use as a filter. For Amazon Web Services CodeCommit,+    -- it is the name of the CodeCommit account that was used to associate the+    -- repository. For other repository source providers, such as Bitbucket and+    -- GitHub Enterprise Server, this is name of the account that was used to+    -- associate the repository.+    owners :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),+    -- | List of provider types to use as a filter.+    providerTypes :: Prelude.Maybe (Prelude.NonEmpty ProviderType),+    -- | List of repository association states to use as a filter.+    --+    -- The valid repository association states are:+    --+    -- -   __Associated__: The repository association is complete.+    --+    -- -   __Associating__: CodeGuru Reviewer is:+    --+    --     -   Setting up pull request notifications. This is required for pull+    --         requests to trigger a CodeGuru Reviewer review.+    --+    --         If your repository @ProviderType@ is @GitHub@,+    --         @GitHub Enterprise Server@, or @Bitbucket@, CodeGuru Reviewer+    --         creates webhooks in your repository to trigger CodeGuru Reviewer+    --         reviews. If you delete these webhooks, reviews of code in your+    --         repository cannot be triggered.+    --+    --     -   Setting up source code access. This is required for CodeGuru+    --         Reviewer to securely clone code in your repository.+    --+    -- -   __Failed__: The repository failed to associate or disassociate.+    --+    -- -   __Disassociating__: CodeGuru Reviewer is removing the repository\'s+    --     pull request notifications and source code access.+    --+    -- -   __Disassociated__: CodeGuru Reviewer successfully disassociated the+    --     repository. You can create a new association with this repository if+    --     you want to review source code in it later. You can control access+    --     to code reviews created in anassociated repository with tags after+    --     it has been disassociated. For more information, see+    --     <https://docs.aws.amazon.com/codeguru/latest/reviewer-ug/auth-and-access-control-using-tags.html Using tags to control access to associated repositories>+    --     in the /Amazon CodeGuru Reviewer User Guide/.+    states :: Prelude.Maybe (Prelude.NonEmpty RepositoryAssociationState)+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListRepositoryAssociations' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'maxResults', 'listRepositoryAssociations_maxResults' - The maximum number of repository association results returned by+-- @ListRepositoryAssociations@ in paginated output. When this parameter is+-- used, @ListRepositoryAssociations@ only returns @maxResults@ results in+-- a single page with a @nextToken@ response element. The remaining results+-- of the initial request can be seen by sending another+-- @ListRepositoryAssociations@ request with the returned @nextToken@+-- value. This value can be between 1 and 100. If this parameter is not+-- used, @ListRepositoryAssociations@ returns up to 100 results and a+-- @nextToken@ value if applicable.+--+-- 'names', 'listRepositoryAssociations_names' - List of repository names to use as a filter.+--+-- 'nextToken', 'listRepositoryAssociations_nextToken' - The @nextToken@ value returned from a previous paginated+-- @ListRepositoryAssociations@ request where @maxResults@ was used and the+-- results exceeded the value of that parameter. Pagination continues from+-- the end of the previous results that returned the @nextToken@ value.+--+-- Treat this token as an opaque identifier that is only used to retrieve+-- the next items in a list and not for other programmatic purposes.+--+-- 'owners', 'listRepositoryAssociations_owners' - List of owners to use as a filter. For Amazon Web Services CodeCommit,+-- it is the name of the CodeCommit account that was used to associate the+-- repository. For other repository source providers, such as Bitbucket and+-- GitHub Enterprise Server, this is name of the account that was used to+-- associate the repository.+--+-- 'providerTypes', 'listRepositoryAssociations_providerTypes' - List of provider types to use as a filter.+--+-- 'states', 'listRepositoryAssociations_states' - List of repository association states to use as a filter.+--+-- The valid repository association states are:+--+-- -   __Associated__: The repository association is complete.+--+-- -   __Associating__: CodeGuru Reviewer is:+--+--     -   Setting up pull request notifications. This is required for pull+--         requests to trigger a CodeGuru Reviewer review.+--+--         If your repository @ProviderType@ is @GitHub@,+--         @GitHub Enterprise Server@, or @Bitbucket@, CodeGuru Reviewer+--         creates webhooks in your repository to trigger CodeGuru Reviewer+--         reviews. If you delete these webhooks, reviews of code in your+--         repository cannot be triggered.+--+--     -   Setting up source code access. This is required for CodeGuru+--         Reviewer to securely clone code in your repository.+--+-- -   __Failed__: The repository failed to associate or disassociate.+--+-- -   __Disassociating__: CodeGuru Reviewer is removing the repository\'s+--     pull request notifications and source code access.+--+-- -   __Disassociated__: CodeGuru Reviewer successfully disassociated the+--     repository. You can create a new association with this repository if+--     you want to review source code in it later. You can control access+--     to code reviews created in anassociated repository with tags after+--     it has been disassociated. For more information, see+--     <https://docs.aws.amazon.com/codeguru/latest/reviewer-ug/auth-and-access-control-using-tags.html Using tags to control access to associated repositories>+--     in the /Amazon CodeGuru Reviewer User Guide/.+newListRepositoryAssociations ::+  ListRepositoryAssociations+newListRepositoryAssociations =+  ListRepositoryAssociations'+    { maxResults =+        Prelude.Nothing,+      names = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      owners = Prelude.Nothing,+      providerTypes = Prelude.Nothing,+      states = Prelude.Nothing+    }++-- | The maximum number of repository association results returned by+-- @ListRepositoryAssociations@ in paginated output. When this parameter is+-- used, @ListRepositoryAssociations@ only returns @maxResults@ results in+-- a single page with a @nextToken@ response element. The remaining results+-- of the initial request can be seen by sending another+-- @ListRepositoryAssociations@ request with the returned @nextToken@+-- value. This value can be between 1 and 100. If this parameter is not+-- used, @ListRepositoryAssociations@ returns up to 100 results and a+-- @nextToken@ value if applicable.+listRepositoryAssociations_maxResults :: Lens.Lens' ListRepositoryAssociations (Prelude.Maybe Prelude.Natural)+listRepositoryAssociations_maxResults = Lens.lens (\ListRepositoryAssociations' {maxResults} -> maxResults) (\s@ListRepositoryAssociations' {} a -> s {maxResults = a} :: ListRepositoryAssociations)++-- | List of repository names to use as a filter.+listRepositoryAssociations_names :: Lens.Lens' ListRepositoryAssociations (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+listRepositoryAssociations_names = Lens.lens (\ListRepositoryAssociations' {names} -> names) (\s@ListRepositoryAssociations' {} a -> s {names = a} :: ListRepositoryAssociations) Prelude.. Lens.mapping Lens.coerced++-- | The @nextToken@ value returned from a previous paginated+-- @ListRepositoryAssociations@ request where @maxResults@ was used and the+-- results exceeded the value of that parameter. Pagination continues from+-- the end of the previous results that returned the @nextToken@ value.+--+-- Treat this token as an opaque identifier that is only used to retrieve+-- the next items in a list and not for other programmatic purposes.+listRepositoryAssociations_nextToken :: Lens.Lens' ListRepositoryAssociations (Prelude.Maybe Prelude.Text)+listRepositoryAssociations_nextToken = Lens.lens (\ListRepositoryAssociations' {nextToken} -> nextToken) (\s@ListRepositoryAssociations' {} a -> s {nextToken = a} :: ListRepositoryAssociations)++-- | List of owners to use as a filter. For Amazon Web Services CodeCommit,+-- it is the name of the CodeCommit account that was used to associate the+-- repository. For other repository source providers, such as Bitbucket and+-- GitHub Enterprise Server, this is name of the account that was used to+-- associate the repository.+listRepositoryAssociations_owners :: Lens.Lens' ListRepositoryAssociations (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+listRepositoryAssociations_owners = Lens.lens (\ListRepositoryAssociations' {owners} -> owners) (\s@ListRepositoryAssociations' {} a -> s {owners = a} :: ListRepositoryAssociations) Prelude.. Lens.mapping Lens.coerced++-- | List of provider types to use as a filter.+listRepositoryAssociations_providerTypes :: Lens.Lens' ListRepositoryAssociations (Prelude.Maybe (Prelude.NonEmpty ProviderType))+listRepositoryAssociations_providerTypes = Lens.lens (\ListRepositoryAssociations' {providerTypes} -> providerTypes) (\s@ListRepositoryAssociations' {} a -> s {providerTypes = a} :: ListRepositoryAssociations) Prelude.. Lens.mapping Lens.coerced++-- | List of repository association states to use as a filter.+--+-- The valid repository association states are:+--+-- -   __Associated__: The repository association is complete.+--+-- -   __Associating__: CodeGuru Reviewer is:+--+--     -   Setting up pull request notifications. This is required for pull+--         requests to trigger a CodeGuru Reviewer review.+--+--         If your repository @ProviderType@ is @GitHub@,+--         @GitHub Enterprise Server@, or @Bitbucket@, CodeGuru Reviewer+--         creates webhooks in your repository to trigger CodeGuru Reviewer+--         reviews. If you delete these webhooks, reviews of code in your+--         repository cannot be triggered.+--+--     -   Setting up source code access. This is required for CodeGuru+--         Reviewer to securely clone code in your repository.+--+-- -   __Failed__: The repository failed to associate or disassociate.+--+-- -   __Disassociating__: CodeGuru Reviewer is removing the repository\'s+--     pull request notifications and source code access.+--+-- -   __Disassociated__: CodeGuru Reviewer successfully disassociated the+--     repository. You can create a new association with this repository if+--     you want to review source code in it later. You can control access+--     to code reviews created in anassociated repository with tags after+--     it has been disassociated. For more information, see+--     <https://docs.aws.amazon.com/codeguru/latest/reviewer-ug/auth-and-access-control-using-tags.html Using tags to control access to associated repositories>+--     in the /Amazon CodeGuru Reviewer User Guide/.+listRepositoryAssociations_states :: Lens.Lens' ListRepositoryAssociations (Prelude.Maybe (Prelude.NonEmpty RepositoryAssociationState))+listRepositoryAssociations_states = Lens.lens (\ListRepositoryAssociations' {states} -> states) (\s@ListRepositoryAssociations' {} a -> s {states = a} :: ListRepositoryAssociations) Prelude.. Lens.mapping Lens.coerced++instance Core.AWSPager ListRepositoryAssociations where+  page rq rs+    | Core.stop+        ( rs+            Lens.^? listRepositoryAssociationsResponse_nextToken+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Core.stop+        ( rs+            Lens.^? listRepositoryAssociationsResponse_repositoryAssociationSummaries+            Prelude.. Lens._Just+        ) =+        Prelude.Nothing+    | Prelude.otherwise =+        Prelude.Just+          Prelude.$ rq+          Prelude.& listRepositoryAssociations_nextToken+          Lens..~ rs+          Lens.^? listRepositoryAssociationsResponse_nextToken+          Prelude.. Lens._Just++instance Core.AWSRequest ListRepositoryAssociations where+  type+    AWSResponse ListRepositoryAssociations =+      ListRepositoryAssociationsResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListRepositoryAssociationsResponse'+            Prelude.<$> (x Data..?> "NextToken")+            Prelude.<*> ( x+                            Data..?> "RepositoryAssociationSummaries"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListRepositoryAssociations where+  hashWithSalt _salt ListRepositoryAssociations' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` names+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` owners+      `Prelude.hashWithSalt` providerTypes+      `Prelude.hashWithSalt` states++instance Prelude.NFData ListRepositoryAssociations where+  rnf ListRepositoryAssociations' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf names+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf owners+      `Prelude.seq` Prelude.rnf providerTypes+      `Prelude.seq` Prelude.rnf states++instance Data.ToHeaders ListRepositoryAssociations where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ListRepositoryAssociations where+  toPath = Prelude.const "/associations"++instance Data.ToQuery ListRepositoryAssociations where+  toQuery ListRepositoryAssociations' {..} =+    Prelude.mconcat+      [ "MaxResults" Data.=: maxResults,+        "Name"+          Data.=: Data.toQuery+            (Data.toQueryList "member" Prelude.<$> names),+        "NextToken" Data.=: nextToken,+        "Owner"+          Data.=: Data.toQuery+            (Data.toQueryList "member" Prelude.<$> owners),+        "ProviderType"+          Data.=: Data.toQuery+            ( Data.toQueryList "member"+                Prelude.<$> providerTypes+            ),+        "State"+          Data.=: Data.toQuery+            (Data.toQueryList "member" Prelude.<$> states)+      ]++-- | /See:/ 'newListRepositoryAssociationsResponse' smart constructor.+data ListRepositoryAssociationsResponse = ListRepositoryAssociationsResponse'+  { -- | The @nextToken@ value to include in a future @ListRecommendations@+    -- request. When the results of a @ListRecommendations@ request exceed+    -- @maxResults@, this value can be used to retrieve the next page of+    -- results. This value is @null@ when there are no more results to return.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | A list of repository associations that meet the criteria of the request.+    repositoryAssociationSummaries :: Prelude.Maybe [RepositoryAssociationSummary],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListRepositoryAssociationsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'nextToken', 'listRepositoryAssociationsResponse_nextToken' - The @nextToken@ value to include in a future @ListRecommendations@+-- request. When the results of a @ListRecommendations@ request exceed+-- @maxResults@, this value can be used to retrieve the next page of+-- results. This value is @null@ when there are no more results to return.+--+-- 'repositoryAssociationSummaries', 'listRepositoryAssociationsResponse_repositoryAssociationSummaries' - A list of repository associations that meet the criteria of the request.+--+-- 'httpStatus', 'listRepositoryAssociationsResponse_httpStatus' - The response's http status code.+newListRepositoryAssociationsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListRepositoryAssociationsResponse+newListRepositoryAssociationsResponse pHttpStatus_ =+  ListRepositoryAssociationsResponse'+    { nextToken =+        Prelude.Nothing,+      repositoryAssociationSummaries =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The @nextToken@ value to include in a future @ListRecommendations@+-- request. When the results of a @ListRecommendations@ request exceed+-- @maxResults@, this value can be used to retrieve the next page of+-- results. This value is @null@ when there are no more results to return.+listRepositoryAssociationsResponse_nextToken :: Lens.Lens' ListRepositoryAssociationsResponse (Prelude.Maybe Prelude.Text)+listRepositoryAssociationsResponse_nextToken = Lens.lens (\ListRepositoryAssociationsResponse' {nextToken} -> nextToken) (\s@ListRepositoryAssociationsResponse' {} a -> s {nextToken = a} :: ListRepositoryAssociationsResponse)++-- | A list of repository associations that meet the criteria of the request.+listRepositoryAssociationsResponse_repositoryAssociationSummaries :: Lens.Lens' ListRepositoryAssociationsResponse (Prelude.Maybe [RepositoryAssociationSummary])+listRepositoryAssociationsResponse_repositoryAssociationSummaries = Lens.lens (\ListRepositoryAssociationsResponse' {repositoryAssociationSummaries} -> repositoryAssociationSummaries) (\s@ListRepositoryAssociationsResponse' {} a -> s {repositoryAssociationSummaries = a} :: ListRepositoryAssociationsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listRepositoryAssociationsResponse_httpStatus :: Lens.Lens' ListRepositoryAssociationsResponse Prelude.Int+listRepositoryAssociationsResponse_httpStatus = Lens.lens (\ListRepositoryAssociationsResponse' {httpStatus} -> httpStatus) (\s@ListRepositoryAssociationsResponse' {} a -> s {httpStatus = a} :: ListRepositoryAssociationsResponse)++instance+  Prelude.NFData+    ListRepositoryAssociationsResponse+  where+  rnf ListRepositoryAssociationsResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf repositoryAssociationSummaries+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/CodeGuruReviewer/ListTagsForResource.hs view
@@ -0,0 +1,196 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CodeGuruReviewer.ListTagsForResource+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns the list of tags associated with an associated repository+-- resource.+module Amazonka.CodeGuruReviewer.ListTagsForResource+  ( -- * Creating a Request+    ListTagsForResource (..),+    newListTagsForResource,++    -- * Request Lenses+    listTagsForResource_resourceArn,++    -- * Destructuring the Response+    ListTagsForResourceResponse (..),+    newListTagsForResourceResponse,++    -- * Response Lenses+    listTagsForResourceResponse_tags,+    listTagsForResourceResponse_httpStatus,+  )+where++import Amazonka.CodeGuruReviewer.Types+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListTagsForResource' smart constructor.+data ListTagsForResource = ListTagsForResource'+  { -- | The Amazon Resource Name (ARN) of the+    -- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_RepositoryAssociation.html RepositoryAssociation>+    -- object. You can retrieve this ARN by calling+    -- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_ListRepositoryAssociations.html ListRepositoryAssociations>.+    resourceArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListTagsForResource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'resourceArn', 'listTagsForResource_resourceArn' - The Amazon Resource Name (ARN) of the+-- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_RepositoryAssociation.html RepositoryAssociation>+-- object. You can retrieve this ARN by calling+-- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_ListRepositoryAssociations.html ListRepositoryAssociations>.+newListTagsForResource ::+  -- | 'resourceArn'+  Prelude.Text ->+  ListTagsForResource+newListTagsForResource pResourceArn_ =+  ListTagsForResource' {resourceArn = pResourceArn_}++-- | The Amazon Resource Name (ARN) of the+-- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_RepositoryAssociation.html RepositoryAssociation>+-- object. You can retrieve this ARN by calling+-- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_ListRepositoryAssociations.html ListRepositoryAssociations>.+listTagsForResource_resourceArn :: Lens.Lens' ListTagsForResource Prelude.Text+listTagsForResource_resourceArn = Lens.lens (\ListTagsForResource' {resourceArn} -> resourceArn) (\s@ListTagsForResource' {} a -> s {resourceArn = a} :: ListTagsForResource)++instance Core.AWSRequest ListTagsForResource where+  type+    AWSResponse ListTagsForResource =+      ListTagsForResourceResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListTagsForResourceResponse'+            Prelude.<$> (x Data..?> "Tags" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListTagsForResource where+  hashWithSalt _salt ListTagsForResource' {..} =+    _salt `Prelude.hashWithSalt` resourceArn++instance Prelude.NFData ListTagsForResource where+  rnf ListTagsForResource' {..} =+    Prelude.rnf resourceArn++instance Data.ToHeaders ListTagsForResource where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ListTagsForResource where+  toPath ListTagsForResource' {..} =+    Prelude.mconcat ["/tags/", Data.toBS resourceArn]++instance Data.ToQuery ListTagsForResource where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListTagsForResourceResponse' smart constructor.+data ListTagsForResourceResponse = ListTagsForResourceResponse'+  { -- | An array of key-value pairs used to tag an associated repository. A tag+    -- is a custom attribute label with two parts:+    --+    -- -   A /tag key/ (for example, @CostCenter@, @Environment@, @Project@, or+    --     @Secret@). Tag keys are case sensitive.+    --+    -- -   An optional field known as a /tag value/ (for example,+    --     @111122223333@, @Production@, or a team name). Omitting the tag+    --     value is the same as using an empty string. Like tag keys, tag+    --     values are case sensitive.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListTagsForResourceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'tags', 'listTagsForResourceResponse_tags' - An array of key-value pairs used to tag an associated repository. A tag+-- is a custom attribute label with two parts:+--+-- -   A /tag key/ (for example, @CostCenter@, @Environment@, @Project@, or+--     @Secret@). Tag keys are case sensitive.+--+-- -   An optional field known as a /tag value/ (for example,+--     @111122223333@, @Production@, or a team name). Omitting the tag+--     value is the same as using an empty string. Like tag keys, tag+--     values are case sensitive.+--+-- 'httpStatus', 'listTagsForResourceResponse_httpStatus' - The response's http status code.+newListTagsForResourceResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListTagsForResourceResponse+newListTagsForResourceResponse pHttpStatus_ =+  ListTagsForResourceResponse'+    { tags =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | An array of key-value pairs used to tag an associated repository. A tag+-- is a custom attribute label with two parts:+--+-- -   A /tag key/ (for example, @CostCenter@, @Environment@, @Project@, or+--     @Secret@). Tag keys are case sensitive.+--+-- -   An optional field known as a /tag value/ (for example,+--     @111122223333@, @Production@, or a team name). Omitting the tag+--     value is the same as using an empty string. Like tag keys, tag+--     values are case sensitive.+listTagsForResourceResponse_tags :: Lens.Lens' ListTagsForResourceResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+listTagsForResourceResponse_tags = Lens.lens (\ListTagsForResourceResponse' {tags} -> tags) (\s@ListTagsForResourceResponse' {} a -> s {tags = a} :: ListTagsForResourceResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listTagsForResourceResponse_httpStatus :: Lens.Lens' ListTagsForResourceResponse Prelude.Int+listTagsForResourceResponse_httpStatus = Lens.lens (\ListTagsForResourceResponse' {httpStatus} -> httpStatus) (\s@ListTagsForResourceResponse' {} a -> s {httpStatus = a} :: ListTagsForResourceResponse)++instance Prelude.NFData ListTagsForResourceResponse where+  rnf ListTagsForResourceResponse' {..} =+    Prelude.rnf tags+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/CodeGuruReviewer/PutRecommendationFeedback.hs view
@@ -0,0 +1,207 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CodeGuruReviewer.PutRecommendationFeedback+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Stores customer feedback for a CodeGuru Reviewer recommendation. When+-- this API is called again with different reactions the previous feedback+-- is overwritten.+module Amazonka.CodeGuruReviewer.PutRecommendationFeedback+  ( -- * Creating a Request+    PutRecommendationFeedback (..),+    newPutRecommendationFeedback,++    -- * Request Lenses+    putRecommendationFeedback_codeReviewArn,+    putRecommendationFeedback_recommendationId,+    putRecommendationFeedback_reactions,++    -- * Destructuring the Response+    PutRecommendationFeedbackResponse (..),+    newPutRecommendationFeedbackResponse,++    -- * Response Lenses+    putRecommendationFeedbackResponse_httpStatus,+  )+where++import Amazonka.CodeGuruReviewer.Types+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newPutRecommendationFeedback' smart constructor.+data PutRecommendationFeedback = PutRecommendationFeedback'+  { -- | The Amazon Resource Name (ARN) of the+    -- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_CodeReview.html CodeReview>+    -- object.+    codeReviewArn :: Prelude.Text,+    -- | The recommendation ID that can be used to track the provided+    -- recommendations and then to collect the feedback.+    recommendationId :: Prelude.Text,+    -- | List for storing reactions. Reactions are utf-8 text code for emojis. If+    -- you send an empty list it clears all your feedback.+    reactions :: [Reaction]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PutRecommendationFeedback' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'codeReviewArn', 'putRecommendationFeedback_codeReviewArn' - The Amazon Resource Name (ARN) of the+-- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_CodeReview.html CodeReview>+-- object.+--+-- 'recommendationId', 'putRecommendationFeedback_recommendationId' - The recommendation ID that can be used to track the provided+-- recommendations and then to collect the feedback.+--+-- 'reactions', 'putRecommendationFeedback_reactions' - List for storing reactions. Reactions are utf-8 text code for emojis. If+-- you send an empty list it clears all your feedback.+newPutRecommendationFeedback ::+  -- | 'codeReviewArn'+  Prelude.Text ->+  -- | 'recommendationId'+  Prelude.Text ->+  PutRecommendationFeedback+newPutRecommendationFeedback+  pCodeReviewArn_+  pRecommendationId_ =+    PutRecommendationFeedback'+      { codeReviewArn =+          pCodeReviewArn_,+        recommendationId = pRecommendationId_,+        reactions = Prelude.mempty+      }++-- | The Amazon Resource Name (ARN) of the+-- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_CodeReview.html CodeReview>+-- object.+putRecommendationFeedback_codeReviewArn :: Lens.Lens' PutRecommendationFeedback Prelude.Text+putRecommendationFeedback_codeReviewArn = Lens.lens (\PutRecommendationFeedback' {codeReviewArn} -> codeReviewArn) (\s@PutRecommendationFeedback' {} a -> s {codeReviewArn = a} :: PutRecommendationFeedback)++-- | The recommendation ID that can be used to track the provided+-- recommendations and then to collect the feedback.+putRecommendationFeedback_recommendationId :: Lens.Lens' PutRecommendationFeedback Prelude.Text+putRecommendationFeedback_recommendationId = Lens.lens (\PutRecommendationFeedback' {recommendationId} -> recommendationId) (\s@PutRecommendationFeedback' {} a -> s {recommendationId = a} :: PutRecommendationFeedback)++-- | List for storing reactions. Reactions are utf-8 text code for emojis. If+-- you send an empty list it clears all your feedback.+putRecommendationFeedback_reactions :: Lens.Lens' PutRecommendationFeedback [Reaction]+putRecommendationFeedback_reactions = Lens.lens (\PutRecommendationFeedback' {reactions} -> reactions) (\s@PutRecommendationFeedback' {} a -> s {reactions = a} :: PutRecommendationFeedback) Prelude.. Lens.coerced++instance Core.AWSRequest PutRecommendationFeedback where+  type+    AWSResponse PutRecommendationFeedback =+      PutRecommendationFeedbackResponse+  request overrides =+    Request.putJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          PutRecommendationFeedbackResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable PutRecommendationFeedback where+  hashWithSalt _salt PutRecommendationFeedback' {..} =+    _salt+      `Prelude.hashWithSalt` codeReviewArn+      `Prelude.hashWithSalt` recommendationId+      `Prelude.hashWithSalt` reactions++instance Prelude.NFData PutRecommendationFeedback where+  rnf PutRecommendationFeedback' {..} =+    Prelude.rnf codeReviewArn+      `Prelude.seq` Prelude.rnf recommendationId+      `Prelude.seq` Prelude.rnf reactions++instance Data.ToHeaders PutRecommendationFeedback where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON PutRecommendationFeedback where+  toJSON PutRecommendationFeedback' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("CodeReviewArn" Data..= codeReviewArn),+            Prelude.Just+              ("RecommendationId" Data..= recommendationId),+            Prelude.Just ("Reactions" Data..= reactions)+          ]+      )++instance Data.ToPath PutRecommendationFeedback where+  toPath = Prelude.const "/feedback"++instance Data.ToQuery PutRecommendationFeedback where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newPutRecommendationFeedbackResponse' smart constructor.+data PutRecommendationFeedbackResponse = PutRecommendationFeedbackResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PutRecommendationFeedbackResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpStatus', 'putRecommendationFeedbackResponse_httpStatus' - The response's http status code.+newPutRecommendationFeedbackResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  PutRecommendationFeedbackResponse+newPutRecommendationFeedbackResponse pHttpStatus_ =+  PutRecommendationFeedbackResponse'+    { httpStatus =+        pHttpStatus_+    }++-- | The response's http status code.+putRecommendationFeedbackResponse_httpStatus :: Lens.Lens' PutRecommendationFeedbackResponse Prelude.Int+putRecommendationFeedbackResponse_httpStatus = Lens.lens (\PutRecommendationFeedbackResponse' {httpStatus} -> httpStatus) (\s@PutRecommendationFeedbackResponse' {} a -> s {httpStatus = a} :: PutRecommendationFeedbackResponse)++instance+  Prelude.NFData+    PutRecommendationFeedbackResponse+  where+  rnf PutRecommendationFeedbackResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/CodeGuruReviewer/TagResource.hs view
@@ -0,0 +1,199 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CodeGuruReviewer.TagResource+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Adds one or more tags to an associated repository.+module Amazonka.CodeGuruReviewer.TagResource+  ( -- * Creating a Request+    TagResource (..),+    newTagResource,++    -- * Request Lenses+    tagResource_resourceArn,+    tagResource_tags,++    -- * Destructuring the Response+    TagResourceResponse (..),+    newTagResourceResponse,++    -- * Response Lenses+    tagResourceResponse_httpStatus,+  )+where++import Amazonka.CodeGuruReviewer.Types+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newTagResource' smart constructor.+data TagResource = TagResource'+  { -- | The Amazon Resource Name (ARN) of the+    -- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_RepositoryAssociation.html RepositoryAssociation>+    -- object. You can retrieve this ARN by calling+    -- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_ListRepositoryAssociations.html ListRepositoryAssociations>.+    resourceArn :: Prelude.Text,+    -- | An array of key-value pairs used to tag an associated repository. A tag+    -- is a custom attribute label with two parts:+    --+    -- -   A /tag key/ (for example, @CostCenter@, @Environment@, @Project@, or+    --     @Secret@). Tag keys are case sensitive.+    --+    -- -   An optional field known as a /tag value/ (for example,+    --     @111122223333@, @Production@, or a team name). Omitting the tag+    --     value is the same as using an empty string. Like tag keys, tag+    --     values are case sensitive.+    tags :: Prelude.HashMap Prelude.Text Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TagResource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'resourceArn', 'tagResource_resourceArn' - The Amazon Resource Name (ARN) of the+-- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_RepositoryAssociation.html RepositoryAssociation>+-- object. You can retrieve this ARN by calling+-- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_ListRepositoryAssociations.html ListRepositoryAssociations>.+--+-- 'tags', 'tagResource_tags' - An array of key-value pairs used to tag an associated repository. A tag+-- is a custom attribute label with two parts:+--+-- -   A /tag key/ (for example, @CostCenter@, @Environment@, @Project@, or+--     @Secret@). Tag keys are case sensitive.+--+-- -   An optional field known as a /tag value/ (for example,+--     @111122223333@, @Production@, or a team name). Omitting the tag+--     value is the same as using an empty string. Like tag keys, tag+--     values are case sensitive.+newTagResource ::+  -- | 'resourceArn'+  Prelude.Text ->+  TagResource+newTagResource pResourceArn_ =+  TagResource'+    { resourceArn = pResourceArn_,+      tags = Prelude.mempty+    }++-- | The Amazon Resource Name (ARN) of the+-- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_RepositoryAssociation.html RepositoryAssociation>+-- object. You can retrieve this ARN by calling+-- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_ListRepositoryAssociations.html ListRepositoryAssociations>.+tagResource_resourceArn :: Lens.Lens' TagResource Prelude.Text+tagResource_resourceArn = Lens.lens (\TagResource' {resourceArn} -> resourceArn) (\s@TagResource' {} a -> s {resourceArn = a} :: TagResource)++-- | An array of key-value pairs used to tag an associated repository. A tag+-- is a custom attribute label with two parts:+--+-- -   A /tag key/ (for example, @CostCenter@, @Environment@, @Project@, or+--     @Secret@). Tag keys are case sensitive.+--+-- -   An optional field known as a /tag value/ (for example,+--     @111122223333@, @Production@, or a team name). Omitting the tag+--     value is the same as using an empty string. Like tag keys, tag+--     values are case sensitive.+tagResource_tags :: Lens.Lens' TagResource (Prelude.HashMap Prelude.Text Prelude.Text)+tagResource_tags = Lens.lens (\TagResource' {tags} -> tags) (\s@TagResource' {} a -> s {tags = a} :: TagResource) Prelude.. Lens.coerced++instance Core.AWSRequest TagResource where+  type AWSResponse TagResource = TagResourceResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          TagResourceResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable TagResource where+  hashWithSalt _salt TagResource' {..} =+    _salt+      `Prelude.hashWithSalt` resourceArn+      `Prelude.hashWithSalt` tags++instance Prelude.NFData TagResource where+  rnf TagResource' {..} =+    Prelude.rnf resourceArn+      `Prelude.seq` Prelude.rnf tags++instance Data.ToHeaders TagResource where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON TagResource where+  toJSON TagResource' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("Tags" Data..= tags)]+      )++instance Data.ToPath TagResource where+  toPath TagResource' {..} =+    Prelude.mconcat ["/tags/", Data.toBS resourceArn]++instance Data.ToQuery TagResource where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newTagResourceResponse' smart constructor.+data TagResourceResponse = TagResourceResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TagResourceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpStatus', 'tagResourceResponse_httpStatus' - The response's http status code.+newTagResourceResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  TagResourceResponse+newTagResourceResponse pHttpStatus_ =+  TagResourceResponse' {httpStatus = pHttpStatus_}++-- | The response's http status code.+tagResourceResponse_httpStatus :: Lens.Lens' TagResourceResponse Prelude.Int+tagResourceResponse_httpStatus = Lens.lens (\TagResourceResponse' {httpStatus} -> httpStatus) (\s@TagResourceResponse' {} a -> s {httpStatus = a} :: TagResourceResponse)++instance Prelude.NFData TagResourceResponse where+  rnf TagResourceResponse' {..} = Prelude.rnf httpStatus
+ gen/Amazonka/CodeGuruReviewer/Types.hs view
@@ -0,0 +1,452 @@+{-# LANGUAGE DisambiguateRecordFields #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CodeGuruReviewer.Types+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.CodeGuruReviewer.Types+  ( -- * Service Configuration+    defaultService,++    -- * Errors+    _AccessDeniedException,+    _ConflictException,+    _InternalServerException,+    _NotFoundException,+    _ResourceNotFoundException,+    _ThrottlingException,+    _ValidationException,++    -- * AnalysisType+    AnalysisType (..),++    -- * ConfigFileState+    ConfigFileState (..),++    -- * EncryptionOption+    EncryptionOption (..),++    -- * JobState+    JobState (..),++    -- * ProviderType+    ProviderType (..),++    -- * Reaction+    Reaction (..),++    -- * RecommendationCategory+    RecommendationCategory (..),++    -- * RepositoryAssociationState+    RepositoryAssociationState (..),++    -- * Severity+    Severity (..),++    -- * Type+    Type (..),++    -- * VendorName+    VendorName (..),++    -- * BranchDiffSourceCodeType+    BranchDiffSourceCodeType (..),+    newBranchDiffSourceCodeType,+    branchDiffSourceCodeType_sourceBranchName,+    branchDiffSourceCodeType_destinationBranchName,++    -- * CodeArtifacts+    CodeArtifacts (..),+    newCodeArtifacts,+    codeArtifacts_buildArtifactsObjectKey,+    codeArtifacts_sourceCodeArtifactsObjectKey,++    -- * CodeCommitRepository+    CodeCommitRepository (..),+    newCodeCommitRepository,+    codeCommitRepository_name,++    -- * CodeReview+    CodeReview (..),+    newCodeReview,+    codeReview_analysisTypes,+    codeReview_associationArn,+    codeReview_codeReviewArn,+    codeReview_configFileState,+    codeReview_createdTimeStamp,+    codeReview_lastUpdatedTimeStamp,+    codeReview_metrics,+    codeReview_name,+    codeReview_owner,+    codeReview_providerType,+    codeReview_pullRequestId,+    codeReview_repositoryName,+    codeReview_sourceCodeType,+    codeReview_state,+    codeReview_stateReason,+    codeReview_type,++    -- * CodeReviewSummary+    CodeReviewSummary (..),+    newCodeReviewSummary,+    codeReviewSummary_codeReviewArn,+    codeReviewSummary_createdTimeStamp,+    codeReviewSummary_lastUpdatedTimeStamp,+    codeReviewSummary_metricsSummary,+    codeReviewSummary_name,+    codeReviewSummary_owner,+    codeReviewSummary_providerType,+    codeReviewSummary_pullRequestId,+    codeReviewSummary_repositoryName,+    codeReviewSummary_sourceCodeType,+    codeReviewSummary_state,+    codeReviewSummary_type,++    -- * CodeReviewType+    CodeReviewType (..),+    newCodeReviewType,+    codeReviewType_analysisTypes,+    codeReviewType_repositoryAnalysis,++    -- * CommitDiffSourceCodeType+    CommitDiffSourceCodeType (..),+    newCommitDiffSourceCodeType,+    commitDiffSourceCodeType_destinationCommit,+    commitDiffSourceCodeType_mergeBaseCommit,+    commitDiffSourceCodeType_sourceCommit,++    -- * EventInfo+    EventInfo (..),+    newEventInfo,+    eventInfo_name,+    eventInfo_state,++    -- * KMSKeyDetails+    KMSKeyDetails (..),+    newKMSKeyDetails,+    kmsKeyDetails_encryptionOption,+    kmsKeyDetails_kmsKeyId,++    -- * Metrics+    Metrics (..),+    newMetrics,+    metrics_findingsCount,+    metrics_meteredLinesOfCodeCount,+    metrics_suppressedLinesOfCodeCount,++    -- * MetricsSummary+    MetricsSummary (..),+    newMetricsSummary,+    metricsSummary_findingsCount,+    metricsSummary_meteredLinesOfCodeCount,+    metricsSummary_suppressedLinesOfCodeCount,++    -- * RecommendationFeedback+    RecommendationFeedback (..),+    newRecommendationFeedback,+    recommendationFeedback_codeReviewArn,+    recommendationFeedback_createdTimeStamp,+    recommendationFeedback_lastUpdatedTimeStamp,+    recommendationFeedback_reactions,+    recommendationFeedback_recommendationId,+    recommendationFeedback_userId,++    -- * RecommendationFeedbackSummary+    RecommendationFeedbackSummary (..),+    newRecommendationFeedbackSummary,+    recommendationFeedbackSummary_reactions,+    recommendationFeedbackSummary_recommendationId,+    recommendationFeedbackSummary_userId,++    -- * RecommendationSummary+    RecommendationSummary (..),+    newRecommendationSummary,+    recommendationSummary_description,+    recommendationSummary_endLine,+    recommendationSummary_filePath,+    recommendationSummary_recommendationCategory,+    recommendationSummary_recommendationId,+    recommendationSummary_ruleMetadata,+    recommendationSummary_severity,+    recommendationSummary_startLine,++    -- * Repository+    Repository (..),+    newRepository,+    repository_bitbucket,+    repository_codeCommit,+    repository_gitHubEnterpriseServer,+    repository_s3Bucket,++    -- * RepositoryAnalysis+    RepositoryAnalysis (..),+    newRepositoryAnalysis,+    repositoryAnalysis_repositoryHead,+    repositoryAnalysis_sourceCodeType,++    -- * RepositoryAssociation+    RepositoryAssociation (..),+    newRepositoryAssociation,+    repositoryAssociation_associationArn,+    repositoryAssociation_associationId,+    repositoryAssociation_connectionArn,+    repositoryAssociation_createdTimeStamp,+    repositoryAssociation_kmsKeyDetails,+    repositoryAssociation_lastUpdatedTimeStamp,+    repositoryAssociation_name,+    repositoryAssociation_owner,+    repositoryAssociation_providerType,+    repositoryAssociation_s3RepositoryDetails,+    repositoryAssociation_state,+    repositoryAssociation_stateReason,++    -- * RepositoryAssociationSummary+    RepositoryAssociationSummary (..),+    newRepositoryAssociationSummary,+    repositoryAssociationSummary_associationArn,+    repositoryAssociationSummary_associationId,+    repositoryAssociationSummary_connectionArn,+    repositoryAssociationSummary_lastUpdatedTimeStamp,+    repositoryAssociationSummary_name,+    repositoryAssociationSummary_owner,+    repositoryAssociationSummary_providerType,+    repositoryAssociationSummary_state,++    -- * RepositoryHeadSourceCodeType+    RepositoryHeadSourceCodeType (..),+    newRepositoryHeadSourceCodeType,+    repositoryHeadSourceCodeType_branchName,++    -- * RequestMetadata+    RequestMetadata (..),+    newRequestMetadata,+    requestMetadata_eventInfo,+    requestMetadata_requestId,+    requestMetadata_requester,+    requestMetadata_vendorName,++    -- * RuleMetadata+    RuleMetadata (..),+    newRuleMetadata,+    ruleMetadata_longDescription,+    ruleMetadata_ruleId,+    ruleMetadata_ruleName,+    ruleMetadata_ruleTags,+    ruleMetadata_shortDescription,++    -- * S3BucketRepository+    S3BucketRepository (..),+    newS3BucketRepository,+    s3BucketRepository_details,+    s3BucketRepository_name,++    -- * S3Repository+    S3Repository (..),+    newS3Repository,+    s3Repository_name,+    s3Repository_bucketName,++    -- * S3RepositoryDetails+    S3RepositoryDetails (..),+    newS3RepositoryDetails,+    s3RepositoryDetails_bucketName,+    s3RepositoryDetails_codeArtifacts,++    -- * SourceCodeType+    SourceCodeType (..),+    newSourceCodeType,+    sourceCodeType_branchDiff,+    sourceCodeType_commitDiff,+    sourceCodeType_repositoryHead,+    sourceCodeType_requestMetadata,+    sourceCodeType_s3BucketRepository,++    -- * ThirdPartySourceRepository+    ThirdPartySourceRepository (..),+    newThirdPartySourceRepository,+    thirdPartySourceRepository_name,+    thirdPartySourceRepository_connectionArn,+    thirdPartySourceRepository_owner,+  )+where++import Amazonka.CodeGuruReviewer.Types.AnalysisType+import Amazonka.CodeGuruReviewer.Types.BranchDiffSourceCodeType+import Amazonka.CodeGuruReviewer.Types.CodeArtifacts+import Amazonka.CodeGuruReviewer.Types.CodeCommitRepository+import Amazonka.CodeGuruReviewer.Types.CodeReview+import Amazonka.CodeGuruReviewer.Types.CodeReviewSummary+import Amazonka.CodeGuruReviewer.Types.CodeReviewType+import Amazonka.CodeGuruReviewer.Types.CommitDiffSourceCodeType+import Amazonka.CodeGuruReviewer.Types.ConfigFileState+import Amazonka.CodeGuruReviewer.Types.EncryptionOption+import Amazonka.CodeGuruReviewer.Types.EventInfo+import Amazonka.CodeGuruReviewer.Types.JobState+import Amazonka.CodeGuruReviewer.Types.KMSKeyDetails+import Amazonka.CodeGuruReviewer.Types.Metrics+import Amazonka.CodeGuruReviewer.Types.MetricsSummary+import Amazonka.CodeGuruReviewer.Types.ProviderType+import Amazonka.CodeGuruReviewer.Types.Reaction+import Amazonka.CodeGuruReviewer.Types.RecommendationCategory+import Amazonka.CodeGuruReviewer.Types.RecommendationFeedback+import Amazonka.CodeGuruReviewer.Types.RecommendationFeedbackSummary+import Amazonka.CodeGuruReviewer.Types.RecommendationSummary+import Amazonka.CodeGuruReviewer.Types.Repository+import Amazonka.CodeGuruReviewer.Types.RepositoryAnalysis+import Amazonka.CodeGuruReviewer.Types.RepositoryAssociation+import Amazonka.CodeGuruReviewer.Types.RepositoryAssociationState+import Amazonka.CodeGuruReviewer.Types.RepositoryAssociationSummary+import Amazonka.CodeGuruReviewer.Types.RepositoryHeadSourceCodeType+import Amazonka.CodeGuruReviewer.Types.RequestMetadata+import Amazonka.CodeGuruReviewer.Types.RuleMetadata+import Amazonka.CodeGuruReviewer.Types.S3BucketRepository+import Amazonka.CodeGuruReviewer.Types.S3Repository+import Amazonka.CodeGuruReviewer.Types.S3RepositoryDetails+import Amazonka.CodeGuruReviewer.Types.Severity+import Amazonka.CodeGuruReviewer.Types.SourceCodeType+import Amazonka.CodeGuruReviewer.Types.ThirdPartySourceRepository+import Amazonka.CodeGuruReviewer.Types.Type+import Amazonka.CodeGuruReviewer.Types.VendorName+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Sign.V4 as Sign++-- | API version @2019-09-19@ of the Amazon CodeGuru Reviewer SDK configuration.+defaultService :: Core.Service+defaultService =+  Core.Service+    { Core.abbrev = "CodeGuruReviewer",+      Core.signer = Sign.v4,+      Core.endpointPrefix = "codeguru-reviewer",+      Core.signingName = "codeguru-reviewer",+      Core.version = "2019-09-19",+      Core.s3AddressingStyle = Core.S3AddressingStyleAuto,+      Core.endpoint = Core.defaultEndpoint defaultService,+      Core.timeout = Prelude.Just 70,+      Core.check = Core.statusSuccess,+      Core.error = Core.parseJSONError "CodeGuruReviewer",+      Core.retry = retry+    }+  where+    retry =+      Core.Exponential+        { Core.base = 5.0e-2,+          Core.growth = 2,+          Core.attempts = 5,+          Core.check = check+        }+    check e+      | Lens.has (Core.hasStatus 502) e =+          Prelude.Just "bad_gateway"+      | Lens.has (Core.hasStatus 504) e =+          Prelude.Just "gateway_timeout"+      | Lens.has (Core.hasStatus 500) e =+          Prelude.Just "general_server_error"+      | Lens.has (Core.hasStatus 509) e =+          Prelude.Just "limit_exceeded"+      | Lens.has+          ( Core.hasCode "RequestThrottledException"+              Prelude.. Core.hasStatus 400+          )+          e =+          Prelude.Just "request_throttled_exception"+      | Lens.has (Core.hasStatus 503) e =+          Prelude.Just "service_unavailable"+      | Lens.has+          ( Core.hasCode "ThrottledException"+              Prelude.. Core.hasStatus 400+          )+          e =+          Prelude.Just "throttled_exception"+      | Lens.has+          ( Core.hasCode "Throttling"+              Prelude.. Core.hasStatus 400+          )+          e =+          Prelude.Just "throttling"+      | Lens.has+          ( Core.hasCode "ThrottlingException"+              Prelude.. Core.hasStatus 400+          )+          e =+          Prelude.Just "throttling_exception"+      | Lens.has+          ( Core.hasCode+              "ProvisionedThroughputExceededException"+              Prelude.. Core.hasStatus 400+          )+          e =+          Prelude.Just "throughput_exceeded"+      | Lens.has (Core.hasStatus 429) e =+          Prelude.Just "too_many_requests"+      | Prelude.otherwise = Prelude.Nothing++-- | You do not have sufficient access to perform this action.+_AccessDeniedException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_AccessDeniedException =+  Core._MatchServiceError+    defaultService+    "AccessDeniedException"+    Prelude.. Core.hasStatus 403++-- | The requested operation would cause a conflict with the current state of+-- a service resource associated with the request. Resolve the conflict+-- before retrying this request.+_ConflictException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ConflictException =+  Core._MatchServiceError+    defaultService+    "ConflictException"+    Prelude.. Core.hasStatus 409++-- | The server encountered an internal error and is unable to complete the+-- request.+_InternalServerException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InternalServerException =+  Core._MatchServiceError+    defaultService+    "InternalServerException"+    Prelude.. Core.hasStatus 500++-- | The resource specified in the request was not found.+_NotFoundException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_NotFoundException =+  Core._MatchServiceError+    defaultService+    "NotFoundException"+    Prelude.. Core.hasStatus 404++-- | The resource specified in the request was not found.+_ResourceNotFoundException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ResourceNotFoundException =+  Core._MatchServiceError+    defaultService+    "ResourceNotFoundException"+    Prelude.. Core.hasStatus 404++-- | The request was denied due to request throttling.+_ThrottlingException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ThrottlingException =+  Core._MatchServiceError+    defaultService+    "ThrottlingException"+    Prelude.. Core.hasStatus 429++-- | The input fails to satisfy the specified constraints.+_ValidationException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ValidationException =+  Core._MatchServiceError+    defaultService+    "ValidationException"+    Prelude.. Core.hasStatus 400
+ gen/Amazonka/CodeGuruReviewer/Types/AnalysisType.hs view
@@ -0,0 +1,71 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CodeGuruReviewer.Types.AnalysisType+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.CodeGuruReviewer.Types.AnalysisType+  ( AnalysisType+      ( ..,+        AnalysisType_CodeQuality,+        AnalysisType_Security+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype AnalysisType = AnalysisType'+  { fromAnalysisType ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern AnalysisType_CodeQuality :: AnalysisType+pattern AnalysisType_CodeQuality = AnalysisType' "CodeQuality"++pattern AnalysisType_Security :: AnalysisType+pattern AnalysisType_Security = AnalysisType' "Security"++{-# COMPLETE+  AnalysisType_CodeQuality,+  AnalysisType_Security,+  AnalysisType'+  #-}
+ gen/Amazonka/CodeGuruReviewer/Types/BranchDiffSourceCodeType.hs view
@@ -0,0 +1,107 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CodeGuruReviewer.Types.BranchDiffSourceCodeType+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.CodeGuruReviewer.Types.BranchDiffSourceCodeType where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | A type of+-- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_SourceCodeType SourceCodeType>+-- that specifies a code diff between a source and destination branch in an+-- associated repository.+--+-- /See:/ 'newBranchDiffSourceCodeType' smart constructor.+data BranchDiffSourceCodeType = BranchDiffSourceCodeType'+  { -- | The source branch for a diff in an associated repository.+    sourceBranchName :: Prelude.Text,+    -- | The destination branch for a diff in an associated repository.+    destinationBranchName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BranchDiffSourceCodeType' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'sourceBranchName', 'branchDiffSourceCodeType_sourceBranchName' - The source branch for a diff in an associated repository.+--+-- 'destinationBranchName', 'branchDiffSourceCodeType_destinationBranchName' - The destination branch for a diff in an associated repository.+newBranchDiffSourceCodeType ::+  -- | 'sourceBranchName'+  Prelude.Text ->+  -- | 'destinationBranchName'+  Prelude.Text ->+  BranchDiffSourceCodeType+newBranchDiffSourceCodeType+  pSourceBranchName_+  pDestinationBranchName_ =+    BranchDiffSourceCodeType'+      { sourceBranchName =+          pSourceBranchName_,+        destinationBranchName = pDestinationBranchName_+      }++-- | The source branch for a diff in an associated repository.+branchDiffSourceCodeType_sourceBranchName :: Lens.Lens' BranchDiffSourceCodeType Prelude.Text+branchDiffSourceCodeType_sourceBranchName = Lens.lens (\BranchDiffSourceCodeType' {sourceBranchName} -> sourceBranchName) (\s@BranchDiffSourceCodeType' {} a -> s {sourceBranchName = a} :: BranchDiffSourceCodeType)++-- | The destination branch for a diff in an associated repository.+branchDiffSourceCodeType_destinationBranchName :: Lens.Lens' BranchDiffSourceCodeType Prelude.Text+branchDiffSourceCodeType_destinationBranchName = Lens.lens (\BranchDiffSourceCodeType' {destinationBranchName} -> destinationBranchName) (\s@BranchDiffSourceCodeType' {} a -> s {destinationBranchName = a} :: BranchDiffSourceCodeType)++instance Data.FromJSON BranchDiffSourceCodeType where+  parseJSON =+    Data.withObject+      "BranchDiffSourceCodeType"+      ( \x ->+          BranchDiffSourceCodeType'+            Prelude.<$> (x Data..: "SourceBranchName")+            Prelude.<*> (x Data..: "DestinationBranchName")+      )++instance Prelude.Hashable BranchDiffSourceCodeType where+  hashWithSalt _salt BranchDiffSourceCodeType' {..} =+    _salt+      `Prelude.hashWithSalt` sourceBranchName+      `Prelude.hashWithSalt` destinationBranchName++instance Prelude.NFData BranchDiffSourceCodeType where+  rnf BranchDiffSourceCodeType' {..} =+    Prelude.rnf sourceBranchName+      `Prelude.seq` Prelude.rnf destinationBranchName++instance Data.ToJSON BranchDiffSourceCodeType where+  toJSON BranchDiffSourceCodeType' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("SourceBranchName" Data..= sourceBranchName),+            Prelude.Just+              ( "DestinationBranchName"+                  Data..= destinationBranchName+              )+          ]+      )
+ gen/Amazonka/CodeGuruReviewer/Types/CodeArtifacts.hs view
@@ -0,0 +1,123 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CodeGuruReviewer.Types.CodeArtifacts+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.CodeGuruReviewer.Types.CodeArtifacts where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Code artifacts are source code artifacts and build artifacts used in a+-- repository analysis or a pull request review.+--+-- -   Source code artifacts are source code files in a Git repository that+--     are compressed into a .zip file.+--+-- -   Build artifacts are .jar or .class files that are compressed in a+--     .zip file.+--+-- /See:/ 'newCodeArtifacts' smart constructor.+data CodeArtifacts = CodeArtifacts'+  { -- | The S3 object key for a build artifacts .zip file that contains .jar or+    -- .class files. This is required for a code review with security analysis.+    -- For more information, see+    -- <https://docs.aws.amazon.com/codeguru/latest/reviewer-ug/working-with-cicd.html Create code reviews with GitHub Actions>+    -- in the /Amazon CodeGuru Reviewer User Guide/.+    buildArtifactsObjectKey :: Prelude.Maybe Prelude.Text,+    -- | The S3 object key for a source code .zip file. This is required for all+    -- code reviews.+    sourceCodeArtifactsObjectKey :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CodeArtifacts' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'buildArtifactsObjectKey', 'codeArtifacts_buildArtifactsObjectKey' - The S3 object key for a build artifacts .zip file that contains .jar or+-- .class files. This is required for a code review with security analysis.+-- For more information, see+-- <https://docs.aws.amazon.com/codeguru/latest/reviewer-ug/working-with-cicd.html Create code reviews with GitHub Actions>+-- in the /Amazon CodeGuru Reviewer User Guide/.+--+-- 'sourceCodeArtifactsObjectKey', 'codeArtifacts_sourceCodeArtifactsObjectKey' - The S3 object key for a source code .zip file. This is required for all+-- code reviews.+newCodeArtifacts ::+  -- | 'sourceCodeArtifactsObjectKey'+  Prelude.Text ->+  CodeArtifacts+newCodeArtifacts pSourceCodeArtifactsObjectKey_ =+  CodeArtifacts'+    { buildArtifactsObjectKey =+        Prelude.Nothing,+      sourceCodeArtifactsObjectKey =+        pSourceCodeArtifactsObjectKey_+    }++-- | The S3 object key for a build artifacts .zip file that contains .jar or+-- .class files. This is required for a code review with security analysis.+-- For more information, see+-- <https://docs.aws.amazon.com/codeguru/latest/reviewer-ug/working-with-cicd.html Create code reviews with GitHub Actions>+-- in the /Amazon CodeGuru Reviewer User Guide/.+codeArtifacts_buildArtifactsObjectKey :: Lens.Lens' CodeArtifacts (Prelude.Maybe Prelude.Text)+codeArtifacts_buildArtifactsObjectKey = Lens.lens (\CodeArtifacts' {buildArtifactsObjectKey} -> buildArtifactsObjectKey) (\s@CodeArtifacts' {} a -> s {buildArtifactsObjectKey = a} :: CodeArtifacts)++-- | The S3 object key for a source code .zip file. This is required for all+-- code reviews.+codeArtifacts_sourceCodeArtifactsObjectKey :: Lens.Lens' CodeArtifacts Prelude.Text+codeArtifacts_sourceCodeArtifactsObjectKey = Lens.lens (\CodeArtifacts' {sourceCodeArtifactsObjectKey} -> sourceCodeArtifactsObjectKey) (\s@CodeArtifacts' {} a -> s {sourceCodeArtifactsObjectKey = a} :: CodeArtifacts)++instance Data.FromJSON CodeArtifacts where+  parseJSON =+    Data.withObject+      "CodeArtifacts"+      ( \x ->+          CodeArtifacts'+            Prelude.<$> (x Data..:? "BuildArtifactsObjectKey")+            Prelude.<*> (x Data..: "SourceCodeArtifactsObjectKey")+      )++instance Prelude.Hashable CodeArtifacts where+  hashWithSalt _salt CodeArtifacts' {..} =+    _salt+      `Prelude.hashWithSalt` buildArtifactsObjectKey+      `Prelude.hashWithSalt` sourceCodeArtifactsObjectKey++instance Prelude.NFData CodeArtifacts where+  rnf CodeArtifacts' {..} =+    Prelude.rnf buildArtifactsObjectKey+      `Prelude.seq` Prelude.rnf sourceCodeArtifactsObjectKey++instance Data.ToJSON CodeArtifacts where+  toJSON CodeArtifacts' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("BuildArtifactsObjectKey" Data..=)+              Prelude.<$> buildArtifactsObjectKey,+            Prelude.Just+              ( "SourceCodeArtifactsObjectKey"+                  Data..= sourceCodeArtifactsObjectKey+              )+          ]+      )
+ gen/Amazonka/CodeGuruReviewer/Types/CodeCommitRepository.hs view
@@ -0,0 +1,80 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CodeGuruReviewer.Types.CodeCommitRepository+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.CodeGuruReviewer.Types.CodeCommitRepository where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Information about an Amazon Web Services CodeCommit repository. The+-- CodeCommit repository must be in the same Amazon Web Services Region and+-- Amazon Web Services account where its CodeGuru Reviewer code reviews are+-- configured.+--+-- /See:/ 'newCodeCommitRepository' smart constructor.+data CodeCommitRepository = CodeCommitRepository'+  { -- | The name of the Amazon Web Services CodeCommit repository. For more+    -- information, see+    -- <https://docs.aws.amazon.com/codecommit/latest/APIReference/API_GetRepository.html#CodeCommit-GetRepository-request-repositoryName repositoryName>+    -- in the /Amazon Web Services CodeCommit API Reference/.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CodeCommitRepository' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'name', 'codeCommitRepository_name' - The name of the Amazon Web Services CodeCommit repository. For more+-- information, see+-- <https://docs.aws.amazon.com/codecommit/latest/APIReference/API_GetRepository.html#CodeCommit-GetRepository-request-repositoryName repositoryName>+-- in the /Amazon Web Services CodeCommit API Reference/.+newCodeCommitRepository ::+  -- | 'name'+  Prelude.Text ->+  CodeCommitRepository+newCodeCommitRepository pName_ =+  CodeCommitRepository' {name = pName_}++-- | The name of the Amazon Web Services CodeCommit repository. For more+-- information, see+-- <https://docs.aws.amazon.com/codecommit/latest/APIReference/API_GetRepository.html#CodeCommit-GetRepository-request-repositoryName repositoryName>+-- in the /Amazon Web Services CodeCommit API Reference/.+codeCommitRepository_name :: Lens.Lens' CodeCommitRepository Prelude.Text+codeCommitRepository_name = Lens.lens (\CodeCommitRepository' {name} -> name) (\s@CodeCommitRepository' {} a -> s {name = a} :: CodeCommitRepository)++instance Prelude.Hashable CodeCommitRepository where+  hashWithSalt _salt CodeCommitRepository' {..} =+    _salt `Prelude.hashWithSalt` name++instance Prelude.NFData CodeCommitRepository where+  rnf CodeCommitRepository' {..} = Prelude.rnf name++instance Data.ToJSON CodeCommitRepository where+  toJSON CodeCommitRepository' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("Name" Data..= name)]+      )
+ gen/Amazonka/CodeGuruReviewer/Types/CodeReview.hs view
@@ -0,0 +1,341 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CodeGuruReviewer.Types.CodeReview+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.CodeGuruReviewer.Types.CodeReview where++import Amazonka.CodeGuruReviewer.Types.AnalysisType+import Amazonka.CodeGuruReviewer.Types.ConfigFileState+import Amazonka.CodeGuruReviewer.Types.JobState+import Amazonka.CodeGuruReviewer.Types.Metrics+import Amazonka.CodeGuruReviewer.Types.ProviderType+import Amazonka.CodeGuruReviewer.Types.SourceCodeType+import Amazonka.CodeGuruReviewer.Types.Type+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Information about a code review. A code review belongs to the associated+-- repository that contains the reviewed code.+--+-- /See:/ 'newCodeReview' smart constructor.+data CodeReview = CodeReview'+  { -- | The types of analysis performed during a repository analysis or a pull+    -- request review. You can specify either @Security@, @CodeQuality@, or+    -- both.+    analysisTypes :: Prelude.Maybe [AnalysisType],+    -- | The Amazon Resource Name (ARN) of the+    -- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_RepositoryAssociation.html RepositoryAssociation>+    -- that contains the reviewed source code. You can retrieve associated+    -- repository ARNs by calling+    -- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_ListRepositoryAssociations.html ListRepositoryAssociations>.+    associationArn :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the+    -- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_CodeReview.html CodeReview>+    -- object.+    codeReviewArn :: Prelude.Maybe Prelude.Text,+    -- | The state of the @aws-codeguru-reviewer.yml@ configuration file that+    -- allows the configuration of the CodeGuru Reviewer analysis. The file+    -- either exists, doesn\'t exist, or exists with errors at the root+    -- directory of your repository.+    configFileState :: Prelude.Maybe ConfigFileState,+    -- | The time, in milliseconds since the epoch, when the code review was+    -- created.+    createdTimeStamp :: Prelude.Maybe Data.POSIX,+    -- | The time, in milliseconds since the epoch, when the code review was last+    -- updated.+    lastUpdatedTimeStamp :: Prelude.Maybe Data.POSIX,+    -- | The statistics from the code review.+    metrics :: Prelude.Maybe Metrics,+    -- | The name of the code review.+    name :: Prelude.Maybe Prelude.Text,+    -- | The owner of the repository. For an Amazon Web Services CodeCommit+    -- repository, this is the Amazon Web Services account ID of the account+    -- that owns the repository. For a GitHub, GitHub Enterprise Server, or+    -- Bitbucket repository, this is the username for the account that owns the+    -- repository. For an S3 repository, it can be the username or Amazon Web+    -- Services account ID.+    owner :: Prelude.Maybe Prelude.Text,+    -- | The type of repository that contains the reviewed code (for example,+    -- GitHub or Bitbucket).+    providerType :: Prelude.Maybe ProviderType,+    -- | The pull request ID for the code review.+    pullRequestId :: Prelude.Maybe Prelude.Text,+    -- | The name of the repository.+    repositoryName :: Prelude.Maybe Prelude.Text,+    -- | The type of the source code for the code review.+    sourceCodeType :: Prelude.Maybe SourceCodeType,+    -- | The valid code review states are:+    --+    -- -   @Completed@: The code review is complete.+    --+    -- -   @Pending@: The code review started and has not completed or failed.+    --+    -- -   @Failed@: The code review failed.+    --+    -- -   @Deleting@: The code review is being deleted.+    state :: Prelude.Maybe JobState,+    -- | The reason for the state of the code review.+    stateReason :: Prelude.Maybe Prelude.Text,+    -- | The type of code review.+    type' :: Prelude.Maybe Type+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CodeReview' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'analysisTypes', 'codeReview_analysisTypes' - The types of analysis performed during a repository analysis or a pull+-- request review. You can specify either @Security@, @CodeQuality@, or+-- both.+--+-- 'associationArn', 'codeReview_associationArn' - The Amazon Resource Name (ARN) of the+-- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_RepositoryAssociation.html RepositoryAssociation>+-- that contains the reviewed source code. You can retrieve associated+-- repository ARNs by calling+-- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_ListRepositoryAssociations.html ListRepositoryAssociations>.+--+-- 'codeReviewArn', 'codeReview_codeReviewArn' - The Amazon Resource Name (ARN) of the+-- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_CodeReview.html CodeReview>+-- object.+--+-- 'configFileState', 'codeReview_configFileState' - The state of the @aws-codeguru-reviewer.yml@ configuration file that+-- allows the configuration of the CodeGuru Reviewer analysis. The file+-- either exists, doesn\'t exist, or exists with errors at the root+-- directory of your repository.+--+-- 'createdTimeStamp', 'codeReview_createdTimeStamp' - The time, in milliseconds since the epoch, when the code review was+-- created.+--+-- 'lastUpdatedTimeStamp', 'codeReview_lastUpdatedTimeStamp' - The time, in milliseconds since the epoch, when the code review was last+-- updated.+--+-- 'metrics', 'codeReview_metrics' - The statistics from the code review.+--+-- 'name', 'codeReview_name' - The name of the code review.+--+-- 'owner', 'codeReview_owner' - The owner of the repository. For an Amazon Web Services CodeCommit+-- repository, this is the Amazon Web Services account ID of the account+-- that owns the repository. For a GitHub, GitHub Enterprise Server, or+-- Bitbucket repository, this is the username for the account that owns the+-- repository. For an S3 repository, it can be the username or Amazon Web+-- Services account ID.+--+-- 'providerType', 'codeReview_providerType' - The type of repository that contains the reviewed code (for example,+-- GitHub or Bitbucket).+--+-- 'pullRequestId', 'codeReview_pullRequestId' - The pull request ID for the code review.+--+-- 'repositoryName', 'codeReview_repositoryName' - The name of the repository.+--+-- 'sourceCodeType', 'codeReview_sourceCodeType' - The type of the source code for the code review.+--+-- 'state', 'codeReview_state' - The valid code review states are:+--+-- -   @Completed@: The code review is complete.+--+-- -   @Pending@: The code review started and has not completed or failed.+--+-- -   @Failed@: The code review failed.+--+-- -   @Deleting@: The code review is being deleted.+--+-- 'stateReason', 'codeReview_stateReason' - The reason for the state of the code review.+--+-- 'type'', 'codeReview_type' - The type of code review.+newCodeReview ::+  CodeReview+newCodeReview =+  CodeReview'+    { analysisTypes = Prelude.Nothing,+      associationArn = Prelude.Nothing,+      codeReviewArn = Prelude.Nothing,+      configFileState = Prelude.Nothing,+      createdTimeStamp = Prelude.Nothing,+      lastUpdatedTimeStamp = Prelude.Nothing,+      metrics = Prelude.Nothing,+      name = Prelude.Nothing,+      owner = Prelude.Nothing,+      providerType = Prelude.Nothing,+      pullRequestId = Prelude.Nothing,+      repositoryName = Prelude.Nothing,+      sourceCodeType = Prelude.Nothing,+      state = Prelude.Nothing,+      stateReason = Prelude.Nothing,+      type' = Prelude.Nothing+    }++-- | The types of analysis performed during a repository analysis or a pull+-- request review. You can specify either @Security@, @CodeQuality@, or+-- both.+codeReview_analysisTypes :: Lens.Lens' CodeReview (Prelude.Maybe [AnalysisType])+codeReview_analysisTypes = Lens.lens (\CodeReview' {analysisTypes} -> analysisTypes) (\s@CodeReview' {} a -> s {analysisTypes = a} :: CodeReview) Prelude.. Lens.mapping Lens.coerced++-- | The Amazon Resource Name (ARN) of the+-- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_RepositoryAssociation.html RepositoryAssociation>+-- that contains the reviewed source code. You can retrieve associated+-- repository ARNs by calling+-- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_ListRepositoryAssociations.html ListRepositoryAssociations>.+codeReview_associationArn :: Lens.Lens' CodeReview (Prelude.Maybe Prelude.Text)+codeReview_associationArn = Lens.lens (\CodeReview' {associationArn} -> associationArn) (\s@CodeReview' {} a -> s {associationArn = a} :: CodeReview)++-- | The Amazon Resource Name (ARN) of the+-- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_CodeReview.html CodeReview>+-- object.+codeReview_codeReviewArn :: Lens.Lens' CodeReview (Prelude.Maybe Prelude.Text)+codeReview_codeReviewArn = Lens.lens (\CodeReview' {codeReviewArn} -> codeReviewArn) (\s@CodeReview' {} a -> s {codeReviewArn = a} :: CodeReview)++-- | The state of the @aws-codeguru-reviewer.yml@ configuration file that+-- allows the configuration of the CodeGuru Reviewer analysis. The file+-- either exists, doesn\'t exist, or exists with errors at the root+-- directory of your repository.+codeReview_configFileState :: Lens.Lens' CodeReview (Prelude.Maybe ConfigFileState)+codeReview_configFileState = Lens.lens (\CodeReview' {configFileState} -> configFileState) (\s@CodeReview' {} a -> s {configFileState = a} :: CodeReview)++-- | The time, in milliseconds since the epoch, when the code review was+-- created.+codeReview_createdTimeStamp :: Lens.Lens' CodeReview (Prelude.Maybe Prelude.UTCTime)+codeReview_createdTimeStamp = Lens.lens (\CodeReview' {createdTimeStamp} -> createdTimeStamp) (\s@CodeReview' {} a -> s {createdTimeStamp = a} :: CodeReview) Prelude.. Lens.mapping Data._Time++-- | The time, in milliseconds since the epoch, when the code review was last+-- updated.+codeReview_lastUpdatedTimeStamp :: Lens.Lens' CodeReview (Prelude.Maybe Prelude.UTCTime)+codeReview_lastUpdatedTimeStamp = Lens.lens (\CodeReview' {lastUpdatedTimeStamp} -> lastUpdatedTimeStamp) (\s@CodeReview' {} a -> s {lastUpdatedTimeStamp = a} :: CodeReview) Prelude.. Lens.mapping Data._Time++-- | The statistics from the code review.+codeReview_metrics :: Lens.Lens' CodeReview (Prelude.Maybe Metrics)+codeReview_metrics = Lens.lens (\CodeReview' {metrics} -> metrics) (\s@CodeReview' {} a -> s {metrics = a} :: CodeReview)++-- | The name of the code review.+codeReview_name :: Lens.Lens' CodeReview (Prelude.Maybe Prelude.Text)+codeReview_name = Lens.lens (\CodeReview' {name} -> name) (\s@CodeReview' {} a -> s {name = a} :: CodeReview)++-- | The owner of the repository. For an Amazon Web Services CodeCommit+-- repository, this is the Amazon Web Services account ID of the account+-- that owns the repository. For a GitHub, GitHub Enterprise Server, or+-- Bitbucket repository, this is the username for the account that owns the+-- repository. For an S3 repository, it can be the username or Amazon Web+-- Services account ID.+codeReview_owner :: Lens.Lens' CodeReview (Prelude.Maybe Prelude.Text)+codeReview_owner = Lens.lens (\CodeReview' {owner} -> owner) (\s@CodeReview' {} a -> s {owner = a} :: CodeReview)++-- | The type of repository that contains the reviewed code (for example,+-- GitHub or Bitbucket).+codeReview_providerType :: Lens.Lens' CodeReview (Prelude.Maybe ProviderType)+codeReview_providerType = Lens.lens (\CodeReview' {providerType} -> providerType) (\s@CodeReview' {} a -> s {providerType = a} :: CodeReview)++-- | The pull request ID for the code review.+codeReview_pullRequestId :: Lens.Lens' CodeReview (Prelude.Maybe Prelude.Text)+codeReview_pullRequestId = Lens.lens (\CodeReview' {pullRequestId} -> pullRequestId) (\s@CodeReview' {} a -> s {pullRequestId = a} :: CodeReview)++-- | The name of the repository.+codeReview_repositoryName :: Lens.Lens' CodeReview (Prelude.Maybe Prelude.Text)+codeReview_repositoryName = Lens.lens (\CodeReview' {repositoryName} -> repositoryName) (\s@CodeReview' {} a -> s {repositoryName = a} :: CodeReview)++-- | The type of the source code for the code review.+codeReview_sourceCodeType :: Lens.Lens' CodeReview (Prelude.Maybe SourceCodeType)+codeReview_sourceCodeType = Lens.lens (\CodeReview' {sourceCodeType} -> sourceCodeType) (\s@CodeReview' {} a -> s {sourceCodeType = a} :: CodeReview)++-- | The valid code review states are:+--+-- -   @Completed@: The code review is complete.+--+-- -   @Pending@: The code review started and has not completed or failed.+--+-- -   @Failed@: The code review failed.+--+-- -   @Deleting@: The code review is being deleted.+codeReview_state :: Lens.Lens' CodeReview (Prelude.Maybe JobState)+codeReview_state = Lens.lens (\CodeReview' {state} -> state) (\s@CodeReview' {} a -> s {state = a} :: CodeReview)++-- | The reason for the state of the code review.+codeReview_stateReason :: Lens.Lens' CodeReview (Prelude.Maybe Prelude.Text)+codeReview_stateReason = Lens.lens (\CodeReview' {stateReason} -> stateReason) (\s@CodeReview' {} a -> s {stateReason = a} :: CodeReview)++-- | The type of code review.+codeReview_type :: Lens.Lens' CodeReview (Prelude.Maybe Type)+codeReview_type = Lens.lens (\CodeReview' {type'} -> type') (\s@CodeReview' {} a -> s {type' = a} :: CodeReview)++instance Data.FromJSON CodeReview where+  parseJSON =+    Data.withObject+      "CodeReview"+      ( \x ->+          CodeReview'+            Prelude.<$> (x Data..:? "AnalysisTypes" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "AssociationArn")+            Prelude.<*> (x Data..:? "CodeReviewArn")+            Prelude.<*> (x Data..:? "ConfigFileState")+            Prelude.<*> (x Data..:? "CreatedTimeStamp")+            Prelude.<*> (x Data..:? "LastUpdatedTimeStamp")+            Prelude.<*> (x Data..:? "Metrics")+            Prelude.<*> (x Data..:? "Name")+            Prelude.<*> (x Data..:? "Owner")+            Prelude.<*> (x Data..:? "ProviderType")+            Prelude.<*> (x Data..:? "PullRequestId")+            Prelude.<*> (x Data..:? "RepositoryName")+            Prelude.<*> (x Data..:? "SourceCodeType")+            Prelude.<*> (x Data..:? "State")+            Prelude.<*> (x Data..:? "StateReason")+            Prelude.<*> (x Data..:? "Type")+      )++instance Prelude.Hashable CodeReview where+  hashWithSalt _salt CodeReview' {..} =+    _salt+      `Prelude.hashWithSalt` analysisTypes+      `Prelude.hashWithSalt` associationArn+      `Prelude.hashWithSalt` codeReviewArn+      `Prelude.hashWithSalt` configFileState+      `Prelude.hashWithSalt` createdTimeStamp+      `Prelude.hashWithSalt` lastUpdatedTimeStamp+      `Prelude.hashWithSalt` metrics+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` owner+      `Prelude.hashWithSalt` providerType+      `Prelude.hashWithSalt` pullRequestId+      `Prelude.hashWithSalt` repositoryName+      `Prelude.hashWithSalt` sourceCodeType+      `Prelude.hashWithSalt` state+      `Prelude.hashWithSalt` stateReason+      `Prelude.hashWithSalt` type'++instance Prelude.NFData CodeReview where+  rnf CodeReview' {..} =+    Prelude.rnf analysisTypes+      `Prelude.seq` Prelude.rnf associationArn+      `Prelude.seq` Prelude.rnf codeReviewArn+      `Prelude.seq` Prelude.rnf configFileState+      `Prelude.seq` Prelude.rnf createdTimeStamp+      `Prelude.seq` Prelude.rnf lastUpdatedTimeStamp+      `Prelude.seq` Prelude.rnf metrics+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf owner+      `Prelude.seq` Prelude.rnf providerType+      `Prelude.seq` Prelude.rnf pullRequestId+      `Prelude.seq` Prelude.rnf repositoryName+      `Prelude.seq` Prelude.rnf sourceCodeType+      `Prelude.seq` Prelude.rnf state+      `Prelude.seq` Prelude.rnf stateReason+      `Prelude.seq` Prelude.rnf type'
+ gen/Amazonka/CodeGuruReviewer/Types/CodeReviewSummary.hs view
@@ -0,0 +1,265 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CodeGuruReviewer.Types.CodeReviewSummary+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.CodeGuruReviewer.Types.CodeReviewSummary where++import Amazonka.CodeGuruReviewer.Types.JobState+import Amazonka.CodeGuruReviewer.Types.MetricsSummary+import Amazonka.CodeGuruReviewer.Types.ProviderType+import Amazonka.CodeGuruReviewer.Types.SourceCodeType+import Amazonka.CodeGuruReviewer.Types.Type+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Information about the summary of the code review.+--+-- /See:/ 'newCodeReviewSummary' smart constructor.+data CodeReviewSummary = CodeReviewSummary'+  { -- | The Amazon Resource Name (ARN) of the+    -- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_CodeReview.html CodeReview>+    -- object.+    codeReviewArn :: Prelude.Maybe Prelude.Text,+    -- | The time, in milliseconds since the epoch, when the code review was+    -- created.+    createdTimeStamp :: Prelude.Maybe Data.POSIX,+    -- | The time, in milliseconds since the epoch, when the code review was last+    -- updated.+    lastUpdatedTimeStamp :: Prelude.Maybe Data.POSIX,+    -- | The statistics from the code review.+    metricsSummary :: Prelude.Maybe MetricsSummary,+    -- | The name of the code review.+    name :: Prelude.Maybe Prelude.Text,+    -- | The owner of the repository. For an Amazon Web Services CodeCommit+    -- repository, this is the Amazon Web Services account ID of the account+    -- that owns the repository. For a GitHub, GitHub Enterprise Server, or+    -- Bitbucket repository, this is the username for the account that owns the+    -- repository. For an S3 repository, it can be the username or Amazon Web+    -- Services account ID.+    owner :: Prelude.Maybe Prelude.Text,+    -- | The provider type of the repository association.+    providerType :: Prelude.Maybe ProviderType,+    -- | The pull request ID for the code review.+    pullRequestId :: Prelude.Maybe Prelude.Text,+    -- | The name of the repository.+    repositoryName :: Prelude.Maybe Prelude.Text,+    sourceCodeType :: Prelude.Maybe SourceCodeType,+    -- | The state of the code review.+    --+    -- The valid code review states are:+    --+    -- -   @Completed@: The code review is complete.+    --+    -- -   @Pending@: The code review started and has not completed or failed.+    --+    -- -   @Failed@: The code review failed.+    --+    -- -   @Deleting@: The code review is being deleted.+    state :: Prelude.Maybe JobState,+    -- | The type of the code review.+    type' :: Prelude.Maybe Type+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CodeReviewSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'codeReviewArn', 'codeReviewSummary_codeReviewArn' - The Amazon Resource Name (ARN) of the+-- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_CodeReview.html CodeReview>+-- object.+--+-- 'createdTimeStamp', 'codeReviewSummary_createdTimeStamp' - The time, in milliseconds since the epoch, when the code review was+-- created.+--+-- 'lastUpdatedTimeStamp', 'codeReviewSummary_lastUpdatedTimeStamp' - The time, in milliseconds since the epoch, when the code review was last+-- updated.+--+-- 'metricsSummary', 'codeReviewSummary_metricsSummary' - The statistics from the code review.+--+-- 'name', 'codeReviewSummary_name' - The name of the code review.+--+-- 'owner', 'codeReviewSummary_owner' - The owner of the repository. For an Amazon Web Services CodeCommit+-- repository, this is the Amazon Web Services account ID of the account+-- that owns the repository. For a GitHub, GitHub Enterprise Server, or+-- Bitbucket repository, this is the username for the account that owns the+-- repository. For an S3 repository, it can be the username or Amazon Web+-- Services account ID.+--+-- 'providerType', 'codeReviewSummary_providerType' - The provider type of the repository association.+--+-- 'pullRequestId', 'codeReviewSummary_pullRequestId' - The pull request ID for the code review.+--+-- 'repositoryName', 'codeReviewSummary_repositoryName' - The name of the repository.+--+-- 'sourceCodeType', 'codeReviewSummary_sourceCodeType' - Undocumented member.+--+-- 'state', 'codeReviewSummary_state' - The state of the code review.+--+-- The valid code review states are:+--+-- -   @Completed@: The code review is complete.+--+-- -   @Pending@: The code review started and has not completed or failed.+--+-- -   @Failed@: The code review failed.+--+-- -   @Deleting@: The code review is being deleted.+--+-- 'type'', 'codeReviewSummary_type' - The type of the code review.+newCodeReviewSummary ::+  CodeReviewSummary+newCodeReviewSummary =+  CodeReviewSummary'+    { codeReviewArn = Prelude.Nothing,+      createdTimeStamp = Prelude.Nothing,+      lastUpdatedTimeStamp = Prelude.Nothing,+      metricsSummary = Prelude.Nothing,+      name = Prelude.Nothing,+      owner = Prelude.Nothing,+      providerType = Prelude.Nothing,+      pullRequestId = Prelude.Nothing,+      repositoryName = Prelude.Nothing,+      sourceCodeType = Prelude.Nothing,+      state = Prelude.Nothing,+      type' = Prelude.Nothing+    }++-- | The Amazon Resource Name (ARN) of the+-- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_CodeReview.html CodeReview>+-- object.+codeReviewSummary_codeReviewArn :: Lens.Lens' CodeReviewSummary (Prelude.Maybe Prelude.Text)+codeReviewSummary_codeReviewArn = Lens.lens (\CodeReviewSummary' {codeReviewArn} -> codeReviewArn) (\s@CodeReviewSummary' {} a -> s {codeReviewArn = a} :: CodeReviewSummary)++-- | The time, in milliseconds since the epoch, when the code review was+-- created.+codeReviewSummary_createdTimeStamp :: Lens.Lens' CodeReviewSummary (Prelude.Maybe Prelude.UTCTime)+codeReviewSummary_createdTimeStamp = Lens.lens (\CodeReviewSummary' {createdTimeStamp} -> createdTimeStamp) (\s@CodeReviewSummary' {} a -> s {createdTimeStamp = a} :: CodeReviewSummary) Prelude.. Lens.mapping Data._Time++-- | The time, in milliseconds since the epoch, when the code review was last+-- updated.+codeReviewSummary_lastUpdatedTimeStamp :: Lens.Lens' CodeReviewSummary (Prelude.Maybe Prelude.UTCTime)+codeReviewSummary_lastUpdatedTimeStamp = Lens.lens (\CodeReviewSummary' {lastUpdatedTimeStamp} -> lastUpdatedTimeStamp) (\s@CodeReviewSummary' {} a -> s {lastUpdatedTimeStamp = a} :: CodeReviewSummary) Prelude.. Lens.mapping Data._Time++-- | The statistics from the code review.+codeReviewSummary_metricsSummary :: Lens.Lens' CodeReviewSummary (Prelude.Maybe MetricsSummary)+codeReviewSummary_metricsSummary = Lens.lens (\CodeReviewSummary' {metricsSummary} -> metricsSummary) (\s@CodeReviewSummary' {} a -> s {metricsSummary = a} :: CodeReviewSummary)++-- | The name of the code review.+codeReviewSummary_name :: Lens.Lens' CodeReviewSummary (Prelude.Maybe Prelude.Text)+codeReviewSummary_name = Lens.lens (\CodeReviewSummary' {name} -> name) (\s@CodeReviewSummary' {} a -> s {name = a} :: CodeReviewSummary)++-- | The owner of the repository. For an Amazon Web Services CodeCommit+-- repository, this is the Amazon Web Services account ID of the account+-- that owns the repository. For a GitHub, GitHub Enterprise Server, or+-- Bitbucket repository, this is the username for the account that owns the+-- repository. For an S3 repository, it can be the username or Amazon Web+-- Services account ID.+codeReviewSummary_owner :: Lens.Lens' CodeReviewSummary (Prelude.Maybe Prelude.Text)+codeReviewSummary_owner = Lens.lens (\CodeReviewSummary' {owner} -> owner) (\s@CodeReviewSummary' {} a -> s {owner = a} :: CodeReviewSummary)++-- | The provider type of the repository association.+codeReviewSummary_providerType :: Lens.Lens' CodeReviewSummary (Prelude.Maybe ProviderType)+codeReviewSummary_providerType = Lens.lens (\CodeReviewSummary' {providerType} -> providerType) (\s@CodeReviewSummary' {} a -> s {providerType = a} :: CodeReviewSummary)++-- | The pull request ID for the code review.+codeReviewSummary_pullRequestId :: Lens.Lens' CodeReviewSummary (Prelude.Maybe Prelude.Text)+codeReviewSummary_pullRequestId = Lens.lens (\CodeReviewSummary' {pullRequestId} -> pullRequestId) (\s@CodeReviewSummary' {} a -> s {pullRequestId = a} :: CodeReviewSummary)++-- | The name of the repository.+codeReviewSummary_repositoryName :: Lens.Lens' CodeReviewSummary (Prelude.Maybe Prelude.Text)+codeReviewSummary_repositoryName = Lens.lens (\CodeReviewSummary' {repositoryName} -> repositoryName) (\s@CodeReviewSummary' {} a -> s {repositoryName = a} :: CodeReviewSummary)++-- | Undocumented member.+codeReviewSummary_sourceCodeType :: Lens.Lens' CodeReviewSummary (Prelude.Maybe SourceCodeType)+codeReviewSummary_sourceCodeType = Lens.lens (\CodeReviewSummary' {sourceCodeType} -> sourceCodeType) (\s@CodeReviewSummary' {} a -> s {sourceCodeType = a} :: CodeReviewSummary)++-- | The state of the code review.+--+-- The valid code review states are:+--+-- -   @Completed@: The code review is complete.+--+-- -   @Pending@: The code review started and has not completed or failed.+--+-- -   @Failed@: The code review failed.+--+-- -   @Deleting@: The code review is being deleted.+codeReviewSummary_state :: Lens.Lens' CodeReviewSummary (Prelude.Maybe JobState)+codeReviewSummary_state = Lens.lens (\CodeReviewSummary' {state} -> state) (\s@CodeReviewSummary' {} a -> s {state = a} :: CodeReviewSummary)++-- | The type of the code review.+codeReviewSummary_type :: Lens.Lens' CodeReviewSummary (Prelude.Maybe Type)+codeReviewSummary_type = Lens.lens (\CodeReviewSummary' {type'} -> type') (\s@CodeReviewSummary' {} a -> s {type' = a} :: CodeReviewSummary)++instance Data.FromJSON CodeReviewSummary where+  parseJSON =+    Data.withObject+      "CodeReviewSummary"+      ( \x ->+          CodeReviewSummary'+            Prelude.<$> (x Data..:? "CodeReviewArn")+            Prelude.<*> (x Data..:? "CreatedTimeStamp")+            Prelude.<*> (x Data..:? "LastUpdatedTimeStamp")+            Prelude.<*> (x Data..:? "MetricsSummary")+            Prelude.<*> (x Data..:? "Name")+            Prelude.<*> (x Data..:? "Owner")+            Prelude.<*> (x Data..:? "ProviderType")+            Prelude.<*> (x Data..:? "PullRequestId")+            Prelude.<*> (x Data..:? "RepositoryName")+            Prelude.<*> (x Data..:? "SourceCodeType")+            Prelude.<*> (x Data..:? "State")+            Prelude.<*> (x Data..:? "Type")+      )++instance Prelude.Hashable CodeReviewSummary where+  hashWithSalt _salt CodeReviewSummary' {..} =+    _salt+      `Prelude.hashWithSalt` codeReviewArn+      `Prelude.hashWithSalt` createdTimeStamp+      `Prelude.hashWithSalt` lastUpdatedTimeStamp+      `Prelude.hashWithSalt` metricsSummary+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` owner+      `Prelude.hashWithSalt` providerType+      `Prelude.hashWithSalt` pullRequestId+      `Prelude.hashWithSalt` repositoryName+      `Prelude.hashWithSalt` sourceCodeType+      `Prelude.hashWithSalt` state+      `Prelude.hashWithSalt` type'++instance Prelude.NFData CodeReviewSummary where+  rnf CodeReviewSummary' {..} =+    Prelude.rnf codeReviewArn+      `Prelude.seq` Prelude.rnf createdTimeStamp+      `Prelude.seq` Prelude.rnf lastUpdatedTimeStamp+      `Prelude.seq` Prelude.rnf metricsSummary+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf owner+      `Prelude.seq` Prelude.rnf providerType+      `Prelude.seq` Prelude.rnf pullRequestId+      `Prelude.seq` Prelude.rnf repositoryName+      `Prelude.seq` Prelude.rnf sourceCodeType+      `Prelude.seq` Prelude.rnf state+      `Prelude.seq` Prelude.rnf type'
+ gen/Amazonka/CodeGuruReviewer/Types/CodeReviewType.hs view
@@ -0,0 +1,111 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CodeGuruReviewer.Types.CodeReviewType+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.CodeGuruReviewer.Types.CodeReviewType where++import Amazonka.CodeGuruReviewer.Types.AnalysisType+import Amazonka.CodeGuruReviewer.Types.RepositoryAnalysis+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The type of a code review. There are two code review types:+--+-- -   @PullRequest@ - A code review that is automatically triggered by a+--     pull request on an associated repository.+--+-- -   @RepositoryAnalysis@ - A code review that analyzes all code under a+--     specified branch in an associated repository. The associated+--     repository is specified using its ARN in+--     <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_CreateCodeReview CreateCodeReview>.+--+-- /See:/ 'newCodeReviewType' smart constructor.+data CodeReviewType = CodeReviewType'+  { -- | They types of analysis performed during a repository analysis or a pull+    -- request review. You can specify either @Security@, @CodeQuality@, or+    -- both.+    analysisTypes :: Prelude.Maybe [AnalysisType],+    -- | A code review that analyzes all code under a specified branch in an+    -- associated repository. The associated repository is specified using its+    -- ARN in+    -- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_CreateCodeReview CreateCodeReview>.+    repositoryAnalysis :: RepositoryAnalysis+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CodeReviewType' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'analysisTypes', 'codeReviewType_analysisTypes' - They types of analysis performed during a repository analysis or a pull+-- request review. You can specify either @Security@, @CodeQuality@, or+-- both.+--+-- 'repositoryAnalysis', 'codeReviewType_repositoryAnalysis' - A code review that analyzes all code under a specified branch in an+-- associated repository. The associated repository is specified using its+-- ARN in+-- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_CreateCodeReview CreateCodeReview>.+newCodeReviewType ::+  -- | 'repositoryAnalysis'+  RepositoryAnalysis ->+  CodeReviewType+newCodeReviewType pRepositoryAnalysis_ =+  CodeReviewType'+    { analysisTypes = Prelude.Nothing,+      repositoryAnalysis = pRepositoryAnalysis_+    }++-- | They types of analysis performed during a repository analysis or a pull+-- request review. You can specify either @Security@, @CodeQuality@, or+-- both.+codeReviewType_analysisTypes :: Lens.Lens' CodeReviewType (Prelude.Maybe [AnalysisType])+codeReviewType_analysisTypes = Lens.lens (\CodeReviewType' {analysisTypes} -> analysisTypes) (\s@CodeReviewType' {} a -> s {analysisTypes = a} :: CodeReviewType) Prelude.. Lens.mapping Lens.coerced++-- | A code review that analyzes all code under a specified branch in an+-- associated repository. The associated repository is specified using its+-- ARN in+-- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_CreateCodeReview CreateCodeReview>.+codeReviewType_repositoryAnalysis :: Lens.Lens' CodeReviewType RepositoryAnalysis+codeReviewType_repositoryAnalysis = Lens.lens (\CodeReviewType' {repositoryAnalysis} -> repositoryAnalysis) (\s@CodeReviewType' {} a -> s {repositoryAnalysis = a} :: CodeReviewType)++instance Prelude.Hashable CodeReviewType where+  hashWithSalt _salt CodeReviewType' {..} =+    _salt+      `Prelude.hashWithSalt` analysisTypes+      `Prelude.hashWithSalt` repositoryAnalysis++instance Prelude.NFData CodeReviewType where+  rnf CodeReviewType' {..} =+    Prelude.rnf analysisTypes+      `Prelude.seq` Prelude.rnf repositoryAnalysis++instance Data.ToJSON CodeReviewType where+  toJSON CodeReviewType' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("AnalysisTypes" Data..=) Prelude.<$> analysisTypes,+            Prelude.Just+              ("RepositoryAnalysis" Data..= repositoryAnalysis)+          ]+      )
+ gen/Amazonka/CodeGuruReviewer/Types/CommitDiffSourceCodeType.hs view
@@ -0,0 +1,119 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CodeGuruReviewer.Types.CommitDiffSourceCodeType+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.CodeGuruReviewer.Types.CommitDiffSourceCodeType where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | A type of+-- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_SourceCodeType SourceCodeType>+-- that specifies the commit diff for a pull request on an associated+-- repository. The @SourceCommit@ and @DestinationCommit@ fields are+-- required to do a pull request code review.+--+-- /See:/ 'newCommitDiffSourceCodeType' smart constructor.+data CommitDiffSourceCodeType = CommitDiffSourceCodeType'+  { -- | The SHA of the destination commit used to generate a commit diff. This+    -- field is required for a pull request code review.+    destinationCommit :: Prelude.Maybe Prelude.Text,+    -- | The SHA of the merge base of a commit.+    mergeBaseCommit :: Prelude.Maybe Prelude.Text,+    -- | The SHA of the source commit used to generate a commit diff. This field+    -- is required for a pull request code review.+    sourceCommit :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CommitDiffSourceCodeType' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'destinationCommit', 'commitDiffSourceCodeType_destinationCommit' - The SHA of the destination commit used to generate a commit diff. This+-- field is required for a pull request code review.+--+-- 'mergeBaseCommit', 'commitDiffSourceCodeType_mergeBaseCommit' - The SHA of the merge base of a commit.+--+-- 'sourceCommit', 'commitDiffSourceCodeType_sourceCommit' - The SHA of the source commit used to generate a commit diff. This field+-- is required for a pull request code review.+newCommitDiffSourceCodeType ::+  CommitDiffSourceCodeType+newCommitDiffSourceCodeType =+  CommitDiffSourceCodeType'+    { destinationCommit =+        Prelude.Nothing,+      mergeBaseCommit = Prelude.Nothing,+      sourceCommit = Prelude.Nothing+    }++-- | The SHA of the destination commit used to generate a commit diff. This+-- field is required for a pull request code review.+commitDiffSourceCodeType_destinationCommit :: Lens.Lens' CommitDiffSourceCodeType (Prelude.Maybe Prelude.Text)+commitDiffSourceCodeType_destinationCommit = Lens.lens (\CommitDiffSourceCodeType' {destinationCommit} -> destinationCommit) (\s@CommitDiffSourceCodeType' {} a -> s {destinationCommit = a} :: CommitDiffSourceCodeType)++-- | The SHA of the merge base of a commit.+commitDiffSourceCodeType_mergeBaseCommit :: Lens.Lens' CommitDiffSourceCodeType (Prelude.Maybe Prelude.Text)+commitDiffSourceCodeType_mergeBaseCommit = Lens.lens (\CommitDiffSourceCodeType' {mergeBaseCommit} -> mergeBaseCommit) (\s@CommitDiffSourceCodeType' {} a -> s {mergeBaseCommit = a} :: CommitDiffSourceCodeType)++-- | The SHA of the source commit used to generate a commit diff. This field+-- is required for a pull request code review.+commitDiffSourceCodeType_sourceCommit :: Lens.Lens' CommitDiffSourceCodeType (Prelude.Maybe Prelude.Text)+commitDiffSourceCodeType_sourceCommit = Lens.lens (\CommitDiffSourceCodeType' {sourceCommit} -> sourceCommit) (\s@CommitDiffSourceCodeType' {} a -> s {sourceCommit = a} :: CommitDiffSourceCodeType)++instance Data.FromJSON CommitDiffSourceCodeType where+  parseJSON =+    Data.withObject+      "CommitDiffSourceCodeType"+      ( \x ->+          CommitDiffSourceCodeType'+            Prelude.<$> (x Data..:? "DestinationCommit")+            Prelude.<*> (x Data..:? "MergeBaseCommit")+            Prelude.<*> (x Data..:? "SourceCommit")+      )++instance Prelude.Hashable CommitDiffSourceCodeType where+  hashWithSalt _salt CommitDiffSourceCodeType' {..} =+    _salt+      `Prelude.hashWithSalt` destinationCommit+      `Prelude.hashWithSalt` mergeBaseCommit+      `Prelude.hashWithSalt` sourceCommit++instance Prelude.NFData CommitDiffSourceCodeType where+  rnf CommitDiffSourceCodeType' {..} =+    Prelude.rnf destinationCommit+      `Prelude.seq` Prelude.rnf mergeBaseCommit+      `Prelude.seq` Prelude.rnf sourceCommit++instance Data.ToJSON CommitDiffSourceCodeType where+  toJSON CommitDiffSourceCodeType' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("DestinationCommit" Data..=)+              Prelude.<$> destinationCommit,+            ("MergeBaseCommit" Data..=)+              Prelude.<$> mergeBaseCommit,+            ("SourceCommit" Data..=) Prelude.<$> sourceCommit+          ]+      )
+ gen/Amazonka/CodeGuruReviewer/Types/ConfigFileState.hs view
@@ -0,0 +1,76 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CodeGuruReviewer.Types.ConfigFileState+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.CodeGuruReviewer.Types.ConfigFileState+  ( ConfigFileState+      ( ..,+        ConfigFileState_Absent,+        ConfigFileState_Present,+        ConfigFileState_PresentWithErrors+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ConfigFileState = ConfigFileState'+  { fromConfigFileState ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern ConfigFileState_Absent :: ConfigFileState+pattern ConfigFileState_Absent = ConfigFileState' "Absent"++pattern ConfigFileState_Present :: ConfigFileState+pattern ConfigFileState_Present = ConfigFileState' "Present"++pattern ConfigFileState_PresentWithErrors :: ConfigFileState+pattern ConfigFileState_PresentWithErrors = ConfigFileState' "PresentWithErrors"++{-# COMPLETE+  ConfigFileState_Absent,+  ConfigFileState_Present,+  ConfigFileState_PresentWithErrors,+  ConfigFileState'+  #-}
+ gen/Amazonka/CodeGuruReviewer/Types/EncryptionOption.hs view
@@ -0,0 +1,71 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CodeGuruReviewer.Types.EncryptionOption+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.CodeGuruReviewer.Types.EncryptionOption+  ( EncryptionOption+      ( ..,+        EncryptionOption_AWS_OWNED_CMK,+        EncryptionOption_CUSTOMER_MANAGED_CMK+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype EncryptionOption = EncryptionOption'+  { fromEncryptionOption ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern EncryptionOption_AWS_OWNED_CMK :: EncryptionOption+pattern EncryptionOption_AWS_OWNED_CMK = EncryptionOption' "AWS_OWNED_CMK"++pattern EncryptionOption_CUSTOMER_MANAGED_CMK :: EncryptionOption+pattern EncryptionOption_CUSTOMER_MANAGED_CMK = EncryptionOption' "CUSTOMER_MANAGED_CMK"++{-# COMPLETE+  EncryptionOption_AWS_OWNED_CMK,+  EncryptionOption_CUSTOMER_MANAGED_CMK,+  EncryptionOption'+  #-}
+ gen/Amazonka/CodeGuruReviewer/Types/EventInfo.hs view
@@ -0,0 +1,99 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CodeGuruReviewer.Types.EventInfo+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.CodeGuruReviewer.Types.EventInfo where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Information about an event. The event might be a push, pull request,+-- scheduled request, or another type of event.+--+-- /See:/ 'newEventInfo' smart constructor.+data EventInfo = EventInfo'+  { -- | The name of the event. The possible names are @pull_request@,+    -- @workflow_dispatch@, @schedule@, and @push@+    name :: Prelude.Maybe Prelude.Text,+    -- | The state of an event. The state might be open, closed, or another+    -- state.+    state :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'EventInfo' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'name', 'eventInfo_name' - The name of the event. The possible names are @pull_request@,+-- @workflow_dispatch@, @schedule@, and @push@+--+-- 'state', 'eventInfo_state' - The state of an event. The state might be open, closed, or another+-- state.+newEventInfo ::+  EventInfo+newEventInfo =+  EventInfo'+    { name = Prelude.Nothing,+      state = Prelude.Nothing+    }++-- | The name of the event. The possible names are @pull_request@,+-- @workflow_dispatch@, @schedule@, and @push@+eventInfo_name :: Lens.Lens' EventInfo (Prelude.Maybe Prelude.Text)+eventInfo_name = Lens.lens (\EventInfo' {name} -> name) (\s@EventInfo' {} a -> s {name = a} :: EventInfo)++-- | The state of an event. The state might be open, closed, or another+-- state.+eventInfo_state :: Lens.Lens' EventInfo (Prelude.Maybe Prelude.Text)+eventInfo_state = Lens.lens (\EventInfo' {state} -> state) (\s@EventInfo' {} a -> s {state = a} :: EventInfo)++instance Data.FromJSON EventInfo where+  parseJSON =+    Data.withObject+      "EventInfo"+      ( \x ->+          EventInfo'+            Prelude.<$> (x Data..:? "Name")+            Prelude.<*> (x Data..:? "State")+      )++instance Prelude.Hashable EventInfo where+  hashWithSalt _salt EventInfo' {..} =+    _salt+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` state++instance Prelude.NFData EventInfo where+  rnf EventInfo' {..} =+    Prelude.rnf name `Prelude.seq` Prelude.rnf state++instance Data.ToJSON EventInfo where+  toJSON EventInfo' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Name" Data..=) Prelude.<$> name,+            ("State" Data..=) Prelude.<$> state+          ]+      )
+ gen/Amazonka/CodeGuruReviewer/Types/JobState.hs view
@@ -0,0 +1,81 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CodeGuruReviewer.Types.JobState+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.CodeGuruReviewer.Types.JobState+  ( JobState+      ( ..,+        JobState_Completed,+        JobState_Deleting,+        JobState_Failed,+        JobState_Pending+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype JobState = JobState'+  { fromJobState ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern JobState_Completed :: JobState+pattern JobState_Completed = JobState' "Completed"++pattern JobState_Deleting :: JobState+pattern JobState_Deleting = JobState' "Deleting"++pattern JobState_Failed :: JobState+pattern JobState_Failed = JobState' "Failed"++pattern JobState_Pending :: JobState+pattern JobState_Pending = JobState' "Pending"++{-# COMPLETE+  JobState_Completed,+  JobState_Deleting,+  JobState_Failed,+  JobState_Pending,+  JobState'+  #-}
+ gen/Amazonka/CodeGuruReviewer/Types/KMSKeyDetails.hs view
@@ -0,0 +1,111 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CodeGuruReviewer.Types.KMSKeyDetails+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.CodeGuruReviewer.Types.KMSKeyDetails where++import Amazonka.CodeGuruReviewer.Types.EncryptionOption+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | An object that contains:+--+-- -   The encryption option for a repository association. It is either+--     owned by Amazon Web Services Key Management Service (KMS)+--     (@AWS_OWNED_CMK@) or customer managed (@CUSTOMER_MANAGED_CMK@).+--+-- -   The ID of the Amazon Web Services KMS key that is associated with a+--     repository association.+--+-- /See:/ 'newKMSKeyDetails' smart constructor.+data KMSKeyDetails = KMSKeyDetails'+  { -- | The encryption option for a repository association. It is either owned+    -- by Amazon Web Services Key Management Service (KMS) (@AWS_OWNED_CMK@) or+    -- customer managed (@CUSTOMER_MANAGED_CMK@).+    encryptionOption :: Prelude.Maybe EncryptionOption,+    -- | The ID of the Amazon Web Services KMS key that is associated with a+    -- repository association.+    kmsKeyId :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'KMSKeyDetails' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'encryptionOption', 'kmsKeyDetails_encryptionOption' - The encryption option for a repository association. It is either owned+-- by Amazon Web Services Key Management Service (KMS) (@AWS_OWNED_CMK@) or+-- customer managed (@CUSTOMER_MANAGED_CMK@).+--+-- 'kmsKeyId', 'kmsKeyDetails_kmsKeyId' - The ID of the Amazon Web Services KMS key that is associated with a+-- repository association.+newKMSKeyDetails ::+  KMSKeyDetails+newKMSKeyDetails =+  KMSKeyDetails'+    { encryptionOption = Prelude.Nothing,+      kmsKeyId = Prelude.Nothing+    }++-- | The encryption option for a repository association. It is either owned+-- by Amazon Web Services Key Management Service (KMS) (@AWS_OWNED_CMK@) or+-- customer managed (@CUSTOMER_MANAGED_CMK@).+kmsKeyDetails_encryptionOption :: Lens.Lens' KMSKeyDetails (Prelude.Maybe EncryptionOption)+kmsKeyDetails_encryptionOption = Lens.lens (\KMSKeyDetails' {encryptionOption} -> encryptionOption) (\s@KMSKeyDetails' {} a -> s {encryptionOption = a} :: KMSKeyDetails)++-- | The ID of the Amazon Web Services KMS key that is associated with a+-- repository association.+kmsKeyDetails_kmsKeyId :: Lens.Lens' KMSKeyDetails (Prelude.Maybe Prelude.Text)+kmsKeyDetails_kmsKeyId = Lens.lens (\KMSKeyDetails' {kmsKeyId} -> kmsKeyId) (\s@KMSKeyDetails' {} a -> s {kmsKeyId = a} :: KMSKeyDetails)++instance Data.FromJSON KMSKeyDetails where+  parseJSON =+    Data.withObject+      "KMSKeyDetails"+      ( \x ->+          KMSKeyDetails'+            Prelude.<$> (x Data..:? "EncryptionOption")+            Prelude.<*> (x Data..:? "KMSKeyId")+      )++instance Prelude.Hashable KMSKeyDetails where+  hashWithSalt _salt KMSKeyDetails' {..} =+    _salt+      `Prelude.hashWithSalt` encryptionOption+      `Prelude.hashWithSalt` kmsKeyId++instance Prelude.NFData KMSKeyDetails where+  rnf KMSKeyDetails' {..} =+    Prelude.rnf encryptionOption+      `Prelude.seq` Prelude.rnf kmsKeyId++instance Data.ToJSON KMSKeyDetails where+  toJSON KMSKeyDetails' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("EncryptionOption" Data..=)+              Prelude.<$> encryptionOption,+            ("KMSKeyId" Data..=) Prelude.<$> kmsKeyId+          ]+      )
+ gen/Amazonka/CodeGuruReviewer/Types/Metrics.hs view
@@ -0,0 +1,114 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CodeGuruReviewer.Types.Metrics+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.CodeGuruReviewer.Types.Metrics where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Information about the statistics from the code review.+--+-- /See:/ 'newMetrics' smart constructor.+data Metrics = Metrics'+  { -- | Total number of recommendations found in the code review.+    findingsCount :: Prelude.Maybe Prelude.Integer,+    -- | @MeteredLinesOfCodeCount@ is the number of lines of code in the+    -- repository where the code review happened. This does not include+    -- non-code lines such as comments and blank lines.+    meteredLinesOfCodeCount :: Prelude.Maybe Prelude.Integer,+    -- | @SuppressedLinesOfCodeCount@ is the number of lines of code in the+    -- repository where the code review happened that CodeGuru Reviewer did not+    -- analyze. The lines suppressed in the analysis is based on the+    -- @excludeFiles@ variable in the @aws-codeguru-reviewer.yml@ file. This+    -- number does not include non-code lines such as comments and blank lines.+    suppressedLinesOfCodeCount :: Prelude.Maybe Prelude.Integer+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Metrics' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'findingsCount', 'metrics_findingsCount' - Total number of recommendations found in the code review.+--+-- 'meteredLinesOfCodeCount', 'metrics_meteredLinesOfCodeCount' - @MeteredLinesOfCodeCount@ is the number of lines of code in the+-- repository where the code review happened. This does not include+-- non-code lines such as comments and blank lines.+--+-- 'suppressedLinesOfCodeCount', 'metrics_suppressedLinesOfCodeCount' - @SuppressedLinesOfCodeCount@ is the number of lines of code in the+-- repository where the code review happened that CodeGuru Reviewer did not+-- analyze. The lines suppressed in the analysis is based on the+-- @excludeFiles@ variable in the @aws-codeguru-reviewer.yml@ file. This+-- number does not include non-code lines such as comments and blank lines.+newMetrics ::+  Metrics+newMetrics =+  Metrics'+    { findingsCount = Prelude.Nothing,+      meteredLinesOfCodeCount = Prelude.Nothing,+      suppressedLinesOfCodeCount = Prelude.Nothing+    }++-- | Total number of recommendations found in the code review.+metrics_findingsCount :: Lens.Lens' Metrics (Prelude.Maybe Prelude.Integer)+metrics_findingsCount = Lens.lens (\Metrics' {findingsCount} -> findingsCount) (\s@Metrics' {} a -> s {findingsCount = a} :: Metrics)++-- | @MeteredLinesOfCodeCount@ is the number of lines of code in the+-- repository where the code review happened. This does not include+-- non-code lines such as comments and blank lines.+metrics_meteredLinesOfCodeCount :: Lens.Lens' Metrics (Prelude.Maybe Prelude.Integer)+metrics_meteredLinesOfCodeCount = Lens.lens (\Metrics' {meteredLinesOfCodeCount} -> meteredLinesOfCodeCount) (\s@Metrics' {} a -> s {meteredLinesOfCodeCount = a} :: Metrics)++-- | @SuppressedLinesOfCodeCount@ is the number of lines of code in the+-- repository where the code review happened that CodeGuru Reviewer did not+-- analyze. The lines suppressed in the analysis is based on the+-- @excludeFiles@ variable in the @aws-codeguru-reviewer.yml@ file. This+-- number does not include non-code lines such as comments and blank lines.+metrics_suppressedLinesOfCodeCount :: Lens.Lens' Metrics (Prelude.Maybe Prelude.Integer)+metrics_suppressedLinesOfCodeCount = Lens.lens (\Metrics' {suppressedLinesOfCodeCount} -> suppressedLinesOfCodeCount) (\s@Metrics' {} a -> s {suppressedLinesOfCodeCount = a} :: Metrics)++instance Data.FromJSON Metrics where+  parseJSON =+    Data.withObject+      "Metrics"+      ( \x ->+          Metrics'+            Prelude.<$> (x Data..:? "FindingsCount")+            Prelude.<*> (x Data..:? "MeteredLinesOfCodeCount")+            Prelude.<*> (x Data..:? "SuppressedLinesOfCodeCount")+      )++instance Prelude.Hashable Metrics where+  hashWithSalt _salt Metrics' {..} =+    _salt+      `Prelude.hashWithSalt` findingsCount+      `Prelude.hashWithSalt` meteredLinesOfCodeCount+      `Prelude.hashWithSalt` suppressedLinesOfCodeCount++instance Prelude.NFData Metrics where+  rnf Metrics' {..} =+    Prelude.rnf findingsCount+      `Prelude.seq` Prelude.rnf meteredLinesOfCodeCount+      `Prelude.seq` Prelude.rnf suppressedLinesOfCodeCount
+ gen/Amazonka/CodeGuruReviewer/Types/MetricsSummary.hs view
@@ -0,0 +1,171 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CodeGuruReviewer.Types.MetricsSummary+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.CodeGuruReviewer.Types.MetricsSummary where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Information about metrics summaries.+--+-- /See:/ 'newMetricsSummary' smart constructor.+data MetricsSummary = MetricsSummary'+  { -- | Total number of recommendations found in the code review.+    findingsCount :: Prelude.Maybe Prelude.Integer,+    -- | Lines of code metered in the code review. For the initial code review+    -- pull request and all subsequent revisions, this includes all lines of+    -- code in the files added to the pull request. In subsequent revisions,+    -- for files that already existed in the pull request, this includes only+    -- the changed lines of code. In both cases, this does not include non-code+    -- lines such as comments and import statements. For example, if you submit+    -- a pull request containing 5 files, each with 500 lines of code, and in a+    -- subsequent revision you added a new file with 200 lines of code, and+    -- also modified a total of 25 lines across the initial 5 files,+    -- @MeteredLinesOfCodeCount@ includes the first 5 files (5 * 500 = 2,500+    -- lines), the new file (200 lines) and the 25 changed lines of code for a+    -- total of 2,725 lines of code.+    meteredLinesOfCodeCount :: Prelude.Maybe Prelude.Integer,+    -- | Lines of code suppressed in the code review based on the @excludeFiles@+    -- element in the @aws-codeguru-reviewer.yml@ file. For full repository+    -- analyses, this number includes all lines of code in the files that are+    -- suppressed. For pull requests, this number only includes the /changed/+    -- lines of code that are suppressed. In both cases, this number does not+    -- include non-code lines such as comments and import statements. For+    -- example, if you initiate a full repository analysis on a repository+    -- containing 5 files, each file with 100 lines of code, and 2 files are+    -- listed as excluded in the @aws-codeguru-reviewer.yml@ file, then+    -- @SuppressedLinesOfCodeCount@ returns 200 (2 * 100) as the total number+    -- of lines of code suppressed. However, if you submit a pull request for+    -- the same repository, then @SuppressedLinesOfCodeCount@ only includes the+    -- lines in the 2 files that changed. If only 1 of the 2 files changed in+    -- the pull request, then @SuppressedLinesOfCodeCount@ returns 100 (1 *+    -- 100) as the total number of lines of code suppressed.+    suppressedLinesOfCodeCount :: Prelude.Maybe Prelude.Integer+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'MetricsSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'findingsCount', 'metricsSummary_findingsCount' - Total number of recommendations found in the code review.+--+-- 'meteredLinesOfCodeCount', 'metricsSummary_meteredLinesOfCodeCount' - Lines of code metered in the code review. For the initial code review+-- pull request and all subsequent revisions, this includes all lines of+-- code in the files added to the pull request. In subsequent revisions,+-- for files that already existed in the pull request, this includes only+-- the changed lines of code. In both cases, this does not include non-code+-- lines such as comments and import statements. For example, if you submit+-- a pull request containing 5 files, each with 500 lines of code, and in a+-- subsequent revision you added a new file with 200 lines of code, and+-- also modified a total of 25 lines across the initial 5 files,+-- @MeteredLinesOfCodeCount@ includes the first 5 files (5 * 500 = 2,500+-- lines), the new file (200 lines) and the 25 changed lines of code for a+-- total of 2,725 lines of code.+--+-- 'suppressedLinesOfCodeCount', 'metricsSummary_suppressedLinesOfCodeCount' - Lines of code suppressed in the code review based on the @excludeFiles@+-- element in the @aws-codeguru-reviewer.yml@ file. For full repository+-- analyses, this number includes all lines of code in the files that are+-- suppressed. For pull requests, this number only includes the /changed/+-- lines of code that are suppressed. In both cases, this number does not+-- include non-code lines such as comments and import statements. For+-- example, if you initiate a full repository analysis on a repository+-- containing 5 files, each file with 100 lines of code, and 2 files are+-- listed as excluded in the @aws-codeguru-reviewer.yml@ file, then+-- @SuppressedLinesOfCodeCount@ returns 200 (2 * 100) as the total number+-- of lines of code suppressed. However, if you submit a pull request for+-- the same repository, then @SuppressedLinesOfCodeCount@ only includes the+-- lines in the 2 files that changed. If only 1 of the 2 files changed in+-- the pull request, then @SuppressedLinesOfCodeCount@ returns 100 (1 *+-- 100) as the total number of lines of code suppressed.+newMetricsSummary ::+  MetricsSummary+newMetricsSummary =+  MetricsSummary'+    { findingsCount = Prelude.Nothing,+      meteredLinesOfCodeCount = Prelude.Nothing,+      suppressedLinesOfCodeCount = Prelude.Nothing+    }++-- | Total number of recommendations found in the code review.+metricsSummary_findingsCount :: Lens.Lens' MetricsSummary (Prelude.Maybe Prelude.Integer)+metricsSummary_findingsCount = Lens.lens (\MetricsSummary' {findingsCount} -> findingsCount) (\s@MetricsSummary' {} a -> s {findingsCount = a} :: MetricsSummary)++-- | Lines of code metered in the code review. For the initial code review+-- pull request and all subsequent revisions, this includes all lines of+-- code in the files added to the pull request. In subsequent revisions,+-- for files that already existed in the pull request, this includes only+-- the changed lines of code. In both cases, this does not include non-code+-- lines such as comments and import statements. For example, if you submit+-- a pull request containing 5 files, each with 500 lines of code, and in a+-- subsequent revision you added a new file with 200 lines of code, and+-- also modified a total of 25 lines across the initial 5 files,+-- @MeteredLinesOfCodeCount@ includes the first 5 files (5 * 500 = 2,500+-- lines), the new file (200 lines) and the 25 changed lines of code for a+-- total of 2,725 lines of code.+metricsSummary_meteredLinesOfCodeCount :: Lens.Lens' MetricsSummary (Prelude.Maybe Prelude.Integer)+metricsSummary_meteredLinesOfCodeCount = Lens.lens (\MetricsSummary' {meteredLinesOfCodeCount} -> meteredLinesOfCodeCount) (\s@MetricsSummary' {} a -> s {meteredLinesOfCodeCount = a} :: MetricsSummary)++-- | Lines of code suppressed in the code review based on the @excludeFiles@+-- element in the @aws-codeguru-reviewer.yml@ file. For full repository+-- analyses, this number includes all lines of code in the files that are+-- suppressed. For pull requests, this number only includes the /changed/+-- lines of code that are suppressed. In both cases, this number does not+-- include non-code lines such as comments and import statements. For+-- example, if you initiate a full repository analysis on a repository+-- containing 5 files, each file with 100 lines of code, and 2 files are+-- listed as excluded in the @aws-codeguru-reviewer.yml@ file, then+-- @SuppressedLinesOfCodeCount@ returns 200 (2 * 100) as the total number+-- of lines of code suppressed. However, if you submit a pull request for+-- the same repository, then @SuppressedLinesOfCodeCount@ only includes the+-- lines in the 2 files that changed. If only 1 of the 2 files changed in+-- the pull request, then @SuppressedLinesOfCodeCount@ returns 100 (1 *+-- 100) as the total number of lines of code suppressed.+metricsSummary_suppressedLinesOfCodeCount :: Lens.Lens' MetricsSummary (Prelude.Maybe Prelude.Integer)+metricsSummary_suppressedLinesOfCodeCount = Lens.lens (\MetricsSummary' {suppressedLinesOfCodeCount} -> suppressedLinesOfCodeCount) (\s@MetricsSummary' {} a -> s {suppressedLinesOfCodeCount = a} :: MetricsSummary)++instance Data.FromJSON MetricsSummary where+  parseJSON =+    Data.withObject+      "MetricsSummary"+      ( \x ->+          MetricsSummary'+            Prelude.<$> (x Data..:? "FindingsCount")+            Prelude.<*> (x Data..:? "MeteredLinesOfCodeCount")+            Prelude.<*> (x Data..:? "SuppressedLinesOfCodeCount")+      )++instance Prelude.Hashable MetricsSummary where+  hashWithSalt _salt MetricsSummary' {..} =+    _salt+      `Prelude.hashWithSalt` findingsCount+      `Prelude.hashWithSalt` meteredLinesOfCodeCount+      `Prelude.hashWithSalt` suppressedLinesOfCodeCount++instance Prelude.NFData MetricsSummary where+  rnf MetricsSummary' {..} =+    Prelude.rnf findingsCount+      `Prelude.seq` Prelude.rnf meteredLinesOfCodeCount+      `Prelude.seq` Prelude.rnf suppressedLinesOfCodeCount
+ gen/Amazonka/CodeGuruReviewer/Types/ProviderType.hs view
@@ -0,0 +1,86 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CodeGuruReviewer.Types.ProviderType+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.CodeGuruReviewer.Types.ProviderType+  ( ProviderType+      ( ..,+        ProviderType_Bitbucket,+        ProviderType_CodeCommit,+        ProviderType_GitHub,+        ProviderType_GitHubEnterpriseServer,+        ProviderType_S3Bucket+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ProviderType = ProviderType'+  { fromProviderType ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern ProviderType_Bitbucket :: ProviderType+pattern ProviderType_Bitbucket = ProviderType' "Bitbucket"++pattern ProviderType_CodeCommit :: ProviderType+pattern ProviderType_CodeCommit = ProviderType' "CodeCommit"++pattern ProviderType_GitHub :: ProviderType+pattern ProviderType_GitHub = ProviderType' "GitHub"++pattern ProviderType_GitHubEnterpriseServer :: ProviderType+pattern ProviderType_GitHubEnterpriseServer = ProviderType' "GitHubEnterpriseServer"++pattern ProviderType_S3Bucket :: ProviderType+pattern ProviderType_S3Bucket = ProviderType' "S3Bucket"++{-# COMPLETE+  ProviderType_Bitbucket,+  ProviderType_CodeCommit,+  ProviderType_GitHub,+  ProviderType_GitHubEnterpriseServer,+  ProviderType_S3Bucket,+  ProviderType'+  #-}
+ gen/Amazonka/CodeGuruReviewer/Types/Reaction.hs view
@@ -0,0 +1,71 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CodeGuruReviewer.Types.Reaction+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.CodeGuruReviewer.Types.Reaction+  ( Reaction+      ( ..,+        Reaction_ThumbsDown,+        Reaction_ThumbsUp+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype Reaction = Reaction'+  { fromReaction ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern Reaction_ThumbsDown :: Reaction+pattern Reaction_ThumbsDown = Reaction' "ThumbsDown"++pattern Reaction_ThumbsUp :: Reaction+pattern Reaction_ThumbsUp = Reaction' "ThumbsUp"++{-# COMPLETE+  Reaction_ThumbsDown,+  Reaction_ThumbsUp,+  Reaction'+  #-}
+ gen/Amazonka/CodeGuruReviewer/Types/RecommendationCategory.hs view
@@ -0,0 +1,116 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CodeGuruReviewer.Types.RecommendationCategory+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.CodeGuruReviewer.Types.RecommendationCategory+  ( RecommendationCategory+      ( ..,+        RecommendationCategory_AWSBestPractices,+        RecommendationCategory_AWSCloudFormationIssues,+        RecommendationCategory_CodeInconsistencies,+        RecommendationCategory_CodeMaintenanceIssues,+        RecommendationCategory_ConcurrencyIssues,+        RecommendationCategory_DuplicateCode,+        RecommendationCategory_InputValidations,+        RecommendationCategory_JavaBestPractices,+        RecommendationCategory_PythonBestPractices,+        RecommendationCategory_ResourceLeaks,+        RecommendationCategory_SecurityIssues+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype RecommendationCategory = RecommendationCategory'+  { fromRecommendationCategory ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern RecommendationCategory_AWSBestPractices :: RecommendationCategory+pattern RecommendationCategory_AWSBestPractices = RecommendationCategory' "AWSBestPractices"++pattern RecommendationCategory_AWSCloudFormationIssues :: RecommendationCategory+pattern RecommendationCategory_AWSCloudFormationIssues = RecommendationCategory' "AWSCloudFormationIssues"++pattern RecommendationCategory_CodeInconsistencies :: RecommendationCategory+pattern RecommendationCategory_CodeInconsistencies = RecommendationCategory' "CodeInconsistencies"++pattern RecommendationCategory_CodeMaintenanceIssues :: RecommendationCategory+pattern RecommendationCategory_CodeMaintenanceIssues = RecommendationCategory' "CodeMaintenanceIssues"++pattern RecommendationCategory_ConcurrencyIssues :: RecommendationCategory+pattern RecommendationCategory_ConcurrencyIssues = RecommendationCategory' "ConcurrencyIssues"++pattern RecommendationCategory_DuplicateCode :: RecommendationCategory+pattern RecommendationCategory_DuplicateCode = RecommendationCategory' "DuplicateCode"++pattern RecommendationCategory_InputValidations :: RecommendationCategory+pattern RecommendationCategory_InputValidations = RecommendationCategory' "InputValidations"++pattern RecommendationCategory_JavaBestPractices :: RecommendationCategory+pattern RecommendationCategory_JavaBestPractices = RecommendationCategory' "JavaBestPractices"++pattern RecommendationCategory_PythonBestPractices :: RecommendationCategory+pattern RecommendationCategory_PythonBestPractices = RecommendationCategory' "PythonBestPractices"++pattern RecommendationCategory_ResourceLeaks :: RecommendationCategory+pattern RecommendationCategory_ResourceLeaks = RecommendationCategory' "ResourceLeaks"++pattern RecommendationCategory_SecurityIssues :: RecommendationCategory+pattern RecommendationCategory_SecurityIssues = RecommendationCategory' "SecurityIssues"++{-# COMPLETE+  RecommendationCategory_AWSBestPractices,+  RecommendationCategory_AWSCloudFormationIssues,+  RecommendationCategory_CodeInconsistencies,+  RecommendationCategory_CodeMaintenanceIssues,+  RecommendationCategory_ConcurrencyIssues,+  RecommendationCategory_DuplicateCode,+  RecommendationCategory_InputValidations,+  RecommendationCategory_JavaBestPractices,+  RecommendationCategory_PythonBestPractices,+  RecommendationCategory_ResourceLeaks,+  RecommendationCategory_SecurityIssues,+  RecommendationCategory'+  #-}
+ gen/Amazonka/CodeGuruReviewer/Types/RecommendationFeedback.hs view
@@ -0,0 +1,164 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CodeGuruReviewer.Types.RecommendationFeedback+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.CodeGuruReviewer.Types.RecommendationFeedback where++import Amazonka.CodeGuruReviewer.Types.Reaction+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Information about the recommendation feedback.+--+-- /See:/ 'newRecommendationFeedback' smart constructor.+data RecommendationFeedback = RecommendationFeedback'+  { -- | The Amazon Resource Name (ARN) of the+    -- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_CodeReview.html CodeReview>+    -- object.+    codeReviewArn :: Prelude.Maybe Prelude.Text,+    -- | The time at which the feedback was created.+    createdTimeStamp :: Prelude.Maybe Data.POSIX,+    -- | The time at which the feedback was last updated.+    lastUpdatedTimeStamp :: Prelude.Maybe Data.POSIX,+    -- | List for storing reactions. Reactions are utf-8 text code for emojis.+    -- You can send an empty list to clear off all your feedback.+    reactions :: Prelude.Maybe [Reaction],+    -- | The recommendation ID that can be used to track the provided+    -- recommendations. Later on it can be used to collect the feedback.+    recommendationId :: Prelude.Maybe Prelude.Text,+    -- | The ID of the user that made the API call.+    --+    -- The @UserId@ is an IAM principal that can be specified as an Amazon Web+    -- Services account ID or an Amazon Resource Name (ARN). For more+    -- information, see+    -- <https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#Principal_specifying Specifying a Principal>+    -- in the /Amazon Web Services Identity and Access Management User Guide/.+    userId :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RecommendationFeedback' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'codeReviewArn', 'recommendationFeedback_codeReviewArn' - The Amazon Resource Name (ARN) of the+-- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_CodeReview.html CodeReview>+-- object.+--+-- 'createdTimeStamp', 'recommendationFeedback_createdTimeStamp' - The time at which the feedback was created.+--+-- 'lastUpdatedTimeStamp', 'recommendationFeedback_lastUpdatedTimeStamp' - The time at which the feedback was last updated.+--+-- 'reactions', 'recommendationFeedback_reactions' - List for storing reactions. Reactions are utf-8 text code for emojis.+-- You can send an empty list to clear off all your feedback.+--+-- 'recommendationId', 'recommendationFeedback_recommendationId' - The recommendation ID that can be used to track the provided+-- recommendations. Later on it can be used to collect the feedback.+--+-- 'userId', 'recommendationFeedback_userId' - The ID of the user that made the API call.+--+-- The @UserId@ is an IAM principal that can be specified as an Amazon Web+-- Services account ID or an Amazon Resource Name (ARN). For more+-- information, see+-- <https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#Principal_specifying Specifying a Principal>+-- in the /Amazon Web Services Identity and Access Management User Guide/.+newRecommendationFeedback ::+  RecommendationFeedback+newRecommendationFeedback =+  RecommendationFeedback'+    { codeReviewArn =+        Prelude.Nothing,+      createdTimeStamp = Prelude.Nothing,+      lastUpdatedTimeStamp = Prelude.Nothing,+      reactions = Prelude.Nothing,+      recommendationId = Prelude.Nothing,+      userId = Prelude.Nothing+    }++-- | The Amazon Resource Name (ARN) of the+-- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_CodeReview.html CodeReview>+-- object.+recommendationFeedback_codeReviewArn :: Lens.Lens' RecommendationFeedback (Prelude.Maybe Prelude.Text)+recommendationFeedback_codeReviewArn = Lens.lens (\RecommendationFeedback' {codeReviewArn} -> codeReviewArn) (\s@RecommendationFeedback' {} a -> s {codeReviewArn = a} :: RecommendationFeedback)++-- | The time at which the feedback was created.+recommendationFeedback_createdTimeStamp :: Lens.Lens' RecommendationFeedback (Prelude.Maybe Prelude.UTCTime)+recommendationFeedback_createdTimeStamp = Lens.lens (\RecommendationFeedback' {createdTimeStamp} -> createdTimeStamp) (\s@RecommendationFeedback' {} a -> s {createdTimeStamp = a} :: RecommendationFeedback) Prelude.. Lens.mapping Data._Time++-- | The time at which the feedback was last updated.+recommendationFeedback_lastUpdatedTimeStamp :: Lens.Lens' RecommendationFeedback (Prelude.Maybe Prelude.UTCTime)+recommendationFeedback_lastUpdatedTimeStamp = Lens.lens (\RecommendationFeedback' {lastUpdatedTimeStamp} -> lastUpdatedTimeStamp) (\s@RecommendationFeedback' {} a -> s {lastUpdatedTimeStamp = a} :: RecommendationFeedback) Prelude.. Lens.mapping Data._Time++-- | List for storing reactions. Reactions are utf-8 text code for emojis.+-- You can send an empty list to clear off all your feedback.+recommendationFeedback_reactions :: Lens.Lens' RecommendationFeedback (Prelude.Maybe [Reaction])+recommendationFeedback_reactions = Lens.lens (\RecommendationFeedback' {reactions} -> reactions) (\s@RecommendationFeedback' {} a -> s {reactions = a} :: RecommendationFeedback) Prelude.. Lens.mapping Lens.coerced++-- | The recommendation ID that can be used to track the provided+-- recommendations. Later on it can be used to collect the feedback.+recommendationFeedback_recommendationId :: Lens.Lens' RecommendationFeedback (Prelude.Maybe Prelude.Text)+recommendationFeedback_recommendationId = Lens.lens (\RecommendationFeedback' {recommendationId} -> recommendationId) (\s@RecommendationFeedback' {} a -> s {recommendationId = a} :: RecommendationFeedback)++-- | The ID of the user that made the API call.+--+-- The @UserId@ is an IAM principal that can be specified as an Amazon Web+-- Services account ID or an Amazon Resource Name (ARN). For more+-- information, see+-- <https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#Principal_specifying Specifying a Principal>+-- in the /Amazon Web Services Identity and Access Management User Guide/.+recommendationFeedback_userId :: Lens.Lens' RecommendationFeedback (Prelude.Maybe Prelude.Text)+recommendationFeedback_userId = Lens.lens (\RecommendationFeedback' {userId} -> userId) (\s@RecommendationFeedback' {} a -> s {userId = a} :: RecommendationFeedback)++instance Data.FromJSON RecommendationFeedback where+  parseJSON =+    Data.withObject+      "RecommendationFeedback"+      ( \x ->+          RecommendationFeedback'+            Prelude.<$> (x Data..:? "CodeReviewArn")+            Prelude.<*> (x Data..:? "CreatedTimeStamp")+            Prelude.<*> (x Data..:? "LastUpdatedTimeStamp")+            Prelude.<*> (x Data..:? "Reactions" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "RecommendationId")+            Prelude.<*> (x Data..:? "UserId")+      )++instance Prelude.Hashable RecommendationFeedback where+  hashWithSalt _salt RecommendationFeedback' {..} =+    _salt+      `Prelude.hashWithSalt` codeReviewArn+      `Prelude.hashWithSalt` createdTimeStamp+      `Prelude.hashWithSalt` lastUpdatedTimeStamp+      `Prelude.hashWithSalt` reactions+      `Prelude.hashWithSalt` recommendationId+      `Prelude.hashWithSalt` userId++instance Prelude.NFData RecommendationFeedback where+  rnf RecommendationFeedback' {..} =+    Prelude.rnf codeReviewArn+      `Prelude.seq` Prelude.rnf createdTimeStamp+      `Prelude.seq` Prelude.rnf lastUpdatedTimeStamp+      `Prelude.seq` Prelude.rnf reactions+      `Prelude.seq` Prelude.rnf recommendationId+      `Prelude.seq` Prelude.rnf userId
+ gen/Amazonka/CodeGuruReviewer/Types/RecommendationFeedbackSummary.hs view
@@ -0,0 +1,122 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CodeGuruReviewer.Types.RecommendationFeedbackSummary+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.CodeGuruReviewer.Types.RecommendationFeedbackSummary where++import Amazonka.CodeGuruReviewer.Types.Reaction+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Information about recommendation feedback summaries.+--+-- /See:/ 'newRecommendationFeedbackSummary' smart constructor.+data RecommendationFeedbackSummary = RecommendationFeedbackSummary'+  { -- | List for storing reactions. Reactions are utf-8 text code for emojis.+    reactions :: Prelude.Maybe [Reaction],+    -- | The recommendation ID that can be used to track the provided+    -- recommendations. Later on it can be used to collect the feedback.+    recommendationId :: Prelude.Maybe Prelude.Text,+    -- | The ID of the user that gave the feedback.+    --+    -- The @UserId@ is an IAM principal that can be specified as an Amazon Web+    -- Services account ID or an Amazon Resource Name (ARN). For more+    -- information, see+    -- <https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#Principal_specifying Specifying a Principal>+    -- in the /Amazon Web Services Identity and Access Management User Guide/.+    userId :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RecommendationFeedbackSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'reactions', 'recommendationFeedbackSummary_reactions' - List for storing reactions. Reactions are utf-8 text code for emojis.+--+-- 'recommendationId', 'recommendationFeedbackSummary_recommendationId' - The recommendation ID that can be used to track the provided+-- recommendations. Later on it can be used to collect the feedback.+--+-- 'userId', 'recommendationFeedbackSummary_userId' - The ID of the user that gave the feedback.+--+-- The @UserId@ is an IAM principal that can be specified as an Amazon Web+-- Services account ID or an Amazon Resource Name (ARN). For more+-- information, see+-- <https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#Principal_specifying Specifying a Principal>+-- in the /Amazon Web Services Identity and Access Management User Guide/.+newRecommendationFeedbackSummary ::+  RecommendationFeedbackSummary+newRecommendationFeedbackSummary =+  RecommendationFeedbackSummary'+    { reactions =+        Prelude.Nothing,+      recommendationId = Prelude.Nothing,+      userId = Prelude.Nothing+    }++-- | List for storing reactions. Reactions are utf-8 text code for emojis.+recommendationFeedbackSummary_reactions :: Lens.Lens' RecommendationFeedbackSummary (Prelude.Maybe [Reaction])+recommendationFeedbackSummary_reactions = Lens.lens (\RecommendationFeedbackSummary' {reactions} -> reactions) (\s@RecommendationFeedbackSummary' {} a -> s {reactions = a} :: RecommendationFeedbackSummary) Prelude.. Lens.mapping Lens.coerced++-- | The recommendation ID that can be used to track the provided+-- recommendations. Later on it can be used to collect the feedback.+recommendationFeedbackSummary_recommendationId :: Lens.Lens' RecommendationFeedbackSummary (Prelude.Maybe Prelude.Text)+recommendationFeedbackSummary_recommendationId = Lens.lens (\RecommendationFeedbackSummary' {recommendationId} -> recommendationId) (\s@RecommendationFeedbackSummary' {} a -> s {recommendationId = a} :: RecommendationFeedbackSummary)++-- | The ID of the user that gave the feedback.+--+-- The @UserId@ is an IAM principal that can be specified as an Amazon Web+-- Services account ID or an Amazon Resource Name (ARN). For more+-- information, see+-- <https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#Principal_specifying Specifying a Principal>+-- in the /Amazon Web Services Identity and Access Management User Guide/.+recommendationFeedbackSummary_userId :: Lens.Lens' RecommendationFeedbackSummary (Prelude.Maybe Prelude.Text)+recommendationFeedbackSummary_userId = Lens.lens (\RecommendationFeedbackSummary' {userId} -> userId) (\s@RecommendationFeedbackSummary' {} a -> s {userId = a} :: RecommendationFeedbackSummary)++instance Data.FromJSON RecommendationFeedbackSummary where+  parseJSON =+    Data.withObject+      "RecommendationFeedbackSummary"+      ( \x ->+          RecommendationFeedbackSummary'+            Prelude.<$> (x Data..:? "Reactions" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "RecommendationId")+            Prelude.<*> (x Data..:? "UserId")+      )++instance+  Prelude.Hashable+    RecommendationFeedbackSummary+  where+  hashWithSalt _salt RecommendationFeedbackSummary' {..} =+    _salt+      `Prelude.hashWithSalt` reactions+      `Prelude.hashWithSalt` recommendationId+      `Prelude.hashWithSalt` userId++instance Prelude.NFData RecommendationFeedbackSummary where+  rnf RecommendationFeedbackSummary' {..} =+    Prelude.rnf reactions+      `Prelude.seq` Prelude.rnf recommendationId+      `Prelude.seq` Prelude.rnf userId
+ gen/Amazonka/CodeGuruReviewer/Types/RecommendationSummary.hs view
@@ -0,0 +1,187 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CodeGuruReviewer.Types.RecommendationSummary+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.CodeGuruReviewer.Types.RecommendationSummary where++import Amazonka.CodeGuruReviewer.Types.RecommendationCategory+import Amazonka.CodeGuruReviewer.Types.RuleMetadata+import Amazonka.CodeGuruReviewer.Types.Severity+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Information about recommendations.+--+-- /See:/ 'newRecommendationSummary' smart constructor.+data RecommendationSummary = RecommendationSummary'+  { -- | A description of the recommendation generated by CodeGuru Reviewer for+    -- the lines of code between the start line and the end line.+    description :: Prelude.Maybe Prelude.Text,+    -- | Last line where the recommendation is applicable in the source commit or+    -- source branch. For a single line comment the start line and end line+    -- values are the same.+    endLine :: Prelude.Maybe Prelude.Int,+    -- | Name of the file on which a recommendation is provided.+    filePath :: Prelude.Maybe Prelude.Text,+    -- | The type of a recommendation.+    recommendationCategory :: Prelude.Maybe RecommendationCategory,+    -- | The recommendation ID that can be used to track the provided+    -- recommendations. Later on it can be used to collect the feedback.+    recommendationId :: Prelude.Maybe Prelude.Text,+    -- | Metadata about a rule. Rule metadata includes an ID, a name, a list of+    -- tags, and a short and long description. CodeGuru Reviewer uses rules to+    -- analyze code. A rule\'s recommendation is included in analysis results+    -- if code is detected that violates the rule.+    ruleMetadata :: Prelude.Maybe RuleMetadata,+    -- | The severity of the issue in the code that generated this+    -- recommendation.+    severity :: Prelude.Maybe Severity,+    -- | Start line from where the recommendation is applicable in the source+    -- commit or source branch.+    startLine :: Prelude.Maybe Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RecommendationSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'description', 'recommendationSummary_description' - A description of the recommendation generated by CodeGuru Reviewer for+-- the lines of code between the start line and the end line.+--+-- 'endLine', 'recommendationSummary_endLine' - Last line where the recommendation is applicable in the source commit or+-- source branch. For a single line comment the start line and end line+-- values are the same.+--+-- 'filePath', 'recommendationSummary_filePath' - Name of the file on which a recommendation is provided.+--+-- 'recommendationCategory', 'recommendationSummary_recommendationCategory' - The type of a recommendation.+--+-- 'recommendationId', 'recommendationSummary_recommendationId' - The recommendation ID that can be used to track the provided+-- recommendations. Later on it can be used to collect the feedback.+--+-- 'ruleMetadata', 'recommendationSummary_ruleMetadata' - Metadata about a rule. Rule metadata includes an ID, a name, a list of+-- tags, and a short and long description. CodeGuru Reviewer uses rules to+-- analyze code. A rule\'s recommendation is included in analysis results+-- if code is detected that violates the rule.+--+-- 'severity', 'recommendationSummary_severity' - The severity of the issue in the code that generated this+-- recommendation.+--+-- 'startLine', 'recommendationSummary_startLine' - Start line from where the recommendation is applicable in the source+-- commit or source branch.+newRecommendationSummary ::+  RecommendationSummary+newRecommendationSummary =+  RecommendationSummary'+    { description =+        Prelude.Nothing,+      endLine = Prelude.Nothing,+      filePath = Prelude.Nothing,+      recommendationCategory = Prelude.Nothing,+      recommendationId = Prelude.Nothing,+      ruleMetadata = Prelude.Nothing,+      severity = Prelude.Nothing,+      startLine = Prelude.Nothing+    }++-- | A description of the recommendation generated by CodeGuru Reviewer for+-- the lines of code between the start line and the end line.+recommendationSummary_description :: Lens.Lens' RecommendationSummary (Prelude.Maybe Prelude.Text)+recommendationSummary_description = Lens.lens (\RecommendationSummary' {description} -> description) (\s@RecommendationSummary' {} a -> s {description = a} :: RecommendationSummary)++-- | Last line where the recommendation is applicable in the source commit or+-- source branch. For a single line comment the start line and end line+-- values are the same.+recommendationSummary_endLine :: Lens.Lens' RecommendationSummary (Prelude.Maybe Prelude.Int)+recommendationSummary_endLine = Lens.lens (\RecommendationSummary' {endLine} -> endLine) (\s@RecommendationSummary' {} a -> s {endLine = a} :: RecommendationSummary)++-- | Name of the file on which a recommendation is provided.+recommendationSummary_filePath :: Lens.Lens' RecommendationSummary (Prelude.Maybe Prelude.Text)+recommendationSummary_filePath = Lens.lens (\RecommendationSummary' {filePath} -> filePath) (\s@RecommendationSummary' {} a -> s {filePath = a} :: RecommendationSummary)++-- | The type of a recommendation.+recommendationSummary_recommendationCategory :: Lens.Lens' RecommendationSummary (Prelude.Maybe RecommendationCategory)+recommendationSummary_recommendationCategory = Lens.lens (\RecommendationSummary' {recommendationCategory} -> recommendationCategory) (\s@RecommendationSummary' {} a -> s {recommendationCategory = a} :: RecommendationSummary)++-- | The recommendation ID that can be used to track the provided+-- recommendations. Later on it can be used to collect the feedback.+recommendationSummary_recommendationId :: Lens.Lens' RecommendationSummary (Prelude.Maybe Prelude.Text)+recommendationSummary_recommendationId = Lens.lens (\RecommendationSummary' {recommendationId} -> recommendationId) (\s@RecommendationSummary' {} a -> s {recommendationId = a} :: RecommendationSummary)++-- | Metadata about a rule. Rule metadata includes an ID, a name, a list of+-- tags, and a short and long description. CodeGuru Reviewer uses rules to+-- analyze code. A rule\'s recommendation is included in analysis results+-- if code is detected that violates the rule.+recommendationSummary_ruleMetadata :: Lens.Lens' RecommendationSummary (Prelude.Maybe RuleMetadata)+recommendationSummary_ruleMetadata = Lens.lens (\RecommendationSummary' {ruleMetadata} -> ruleMetadata) (\s@RecommendationSummary' {} a -> s {ruleMetadata = a} :: RecommendationSummary)++-- | The severity of the issue in the code that generated this+-- recommendation.+recommendationSummary_severity :: Lens.Lens' RecommendationSummary (Prelude.Maybe Severity)+recommendationSummary_severity = Lens.lens (\RecommendationSummary' {severity} -> severity) (\s@RecommendationSummary' {} a -> s {severity = a} :: RecommendationSummary)++-- | Start line from where the recommendation is applicable in the source+-- commit or source branch.+recommendationSummary_startLine :: Lens.Lens' RecommendationSummary (Prelude.Maybe Prelude.Int)+recommendationSummary_startLine = Lens.lens (\RecommendationSummary' {startLine} -> startLine) (\s@RecommendationSummary' {} a -> s {startLine = a} :: RecommendationSummary)++instance Data.FromJSON RecommendationSummary where+  parseJSON =+    Data.withObject+      "RecommendationSummary"+      ( \x ->+          RecommendationSummary'+            Prelude.<$> (x Data..:? "Description")+            Prelude.<*> (x Data..:? "EndLine")+            Prelude.<*> (x Data..:? "FilePath")+            Prelude.<*> (x Data..:? "RecommendationCategory")+            Prelude.<*> (x Data..:? "RecommendationId")+            Prelude.<*> (x Data..:? "RuleMetadata")+            Prelude.<*> (x Data..:? "Severity")+            Prelude.<*> (x Data..:? "StartLine")+      )++instance Prelude.Hashable RecommendationSummary where+  hashWithSalt _salt RecommendationSummary' {..} =+    _salt+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` endLine+      `Prelude.hashWithSalt` filePath+      `Prelude.hashWithSalt` recommendationCategory+      `Prelude.hashWithSalt` recommendationId+      `Prelude.hashWithSalt` ruleMetadata+      `Prelude.hashWithSalt` severity+      `Prelude.hashWithSalt` startLine++instance Prelude.NFData RecommendationSummary where+  rnf RecommendationSummary' {..} =+    Prelude.rnf description+      `Prelude.seq` Prelude.rnf endLine+      `Prelude.seq` Prelude.rnf filePath+      `Prelude.seq` Prelude.rnf recommendationCategory+      `Prelude.seq` Prelude.rnf recommendationId+      `Prelude.seq` Prelude.rnf ruleMetadata+      `Prelude.seq` Prelude.rnf severity+      `Prelude.seq` Prelude.rnf startLine
+ gen/Amazonka/CodeGuruReviewer/Types/Repository.hs view
@@ -0,0 +1,114 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CodeGuruReviewer.Types.Repository+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.CodeGuruReviewer.Types.Repository where++import Amazonka.CodeGuruReviewer.Types.CodeCommitRepository+import Amazonka.CodeGuruReviewer.Types.S3Repository+import Amazonka.CodeGuruReviewer.Types.ThirdPartySourceRepository+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Information about an associated Amazon Web Services CodeCommit+-- repository or an associated repository that is managed by Amazon Web+-- Services CodeStar Connections (for example, Bitbucket). This+-- @Repository@ object is not used if your source code is in an associated+-- GitHub repository.+--+-- /See:/ 'newRepository' smart constructor.+data Repository = Repository'+  { -- | Information about a Bitbucket repository.+    bitbucket :: Prelude.Maybe ThirdPartySourceRepository,+    -- | Information about an Amazon Web Services CodeCommit repository.+    codeCommit :: Prelude.Maybe CodeCommitRepository,+    -- | Information about a GitHub Enterprise Server repository.+    gitHubEnterpriseServer :: Prelude.Maybe ThirdPartySourceRepository,+    s3Bucket :: Prelude.Maybe S3Repository+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Repository' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'bitbucket', 'repository_bitbucket' - Information about a Bitbucket repository.+--+-- 'codeCommit', 'repository_codeCommit' - Information about an Amazon Web Services CodeCommit repository.+--+-- 'gitHubEnterpriseServer', 'repository_gitHubEnterpriseServer' - Information about a GitHub Enterprise Server repository.+--+-- 's3Bucket', 'repository_s3Bucket' - Undocumented member.+newRepository ::+  Repository+newRepository =+  Repository'+    { bitbucket = Prelude.Nothing,+      codeCommit = Prelude.Nothing,+      gitHubEnterpriseServer = Prelude.Nothing,+      s3Bucket = Prelude.Nothing+    }++-- | Information about a Bitbucket repository.+repository_bitbucket :: Lens.Lens' Repository (Prelude.Maybe ThirdPartySourceRepository)+repository_bitbucket = Lens.lens (\Repository' {bitbucket} -> bitbucket) (\s@Repository' {} a -> s {bitbucket = a} :: Repository)++-- | Information about an Amazon Web Services CodeCommit repository.+repository_codeCommit :: Lens.Lens' Repository (Prelude.Maybe CodeCommitRepository)+repository_codeCommit = Lens.lens (\Repository' {codeCommit} -> codeCommit) (\s@Repository' {} a -> s {codeCommit = a} :: Repository)++-- | Information about a GitHub Enterprise Server repository.+repository_gitHubEnterpriseServer :: Lens.Lens' Repository (Prelude.Maybe ThirdPartySourceRepository)+repository_gitHubEnterpriseServer = Lens.lens (\Repository' {gitHubEnterpriseServer} -> gitHubEnterpriseServer) (\s@Repository' {} a -> s {gitHubEnterpriseServer = a} :: Repository)++-- | Undocumented member.+repository_s3Bucket :: Lens.Lens' Repository (Prelude.Maybe S3Repository)+repository_s3Bucket = Lens.lens (\Repository' {s3Bucket} -> s3Bucket) (\s@Repository' {} a -> s {s3Bucket = a} :: Repository)++instance Prelude.Hashable Repository where+  hashWithSalt _salt Repository' {..} =+    _salt+      `Prelude.hashWithSalt` bitbucket+      `Prelude.hashWithSalt` codeCommit+      `Prelude.hashWithSalt` gitHubEnterpriseServer+      `Prelude.hashWithSalt` s3Bucket++instance Prelude.NFData Repository where+  rnf Repository' {..} =+    Prelude.rnf bitbucket+      `Prelude.seq` Prelude.rnf codeCommit+      `Prelude.seq` Prelude.rnf gitHubEnterpriseServer+      `Prelude.seq` Prelude.rnf s3Bucket++instance Data.ToJSON Repository where+  toJSON Repository' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Bitbucket" Data..=) Prelude.<$> bitbucket,+            ("CodeCommit" Data..=) Prelude.<$> codeCommit,+            ("GitHubEnterpriseServer" Data..=)+              Prelude.<$> gitHubEnterpriseServer,+            ("S3Bucket" Data..=) Prelude.<$> s3Bucket+          ]+      )
+ gen/Amazonka/CodeGuruReviewer/Types/RepositoryAnalysis.hs view
@@ -0,0 +1,96 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CodeGuruReviewer.Types.RepositoryAnalysis+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.CodeGuruReviewer.Types.RepositoryAnalysis where++import Amazonka.CodeGuruReviewer.Types.RepositoryHeadSourceCodeType+import Amazonka.CodeGuruReviewer.Types.SourceCodeType+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | A code review type that analyzes all code under a specified branch in an+-- associated repository. The associated repository is specified using its+-- ARN when you call+-- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_CreateCodeReview CreateCodeReview>.+--+-- /See:/ 'newRepositoryAnalysis' smart constructor.+data RepositoryAnalysis = RepositoryAnalysis'+  { -- | A+    -- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_SourceCodeType SourceCodeType>+    -- that specifies the tip of a branch in an associated repository.+    repositoryHead :: Prelude.Maybe RepositoryHeadSourceCodeType,+    sourceCodeType :: Prelude.Maybe SourceCodeType+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RepositoryAnalysis' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'repositoryHead', 'repositoryAnalysis_repositoryHead' - A+-- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_SourceCodeType SourceCodeType>+-- that specifies the tip of a branch in an associated repository.+--+-- 'sourceCodeType', 'repositoryAnalysis_sourceCodeType' - Undocumented member.+newRepositoryAnalysis ::+  RepositoryAnalysis+newRepositoryAnalysis =+  RepositoryAnalysis'+    { repositoryHead =+        Prelude.Nothing,+      sourceCodeType = Prelude.Nothing+    }++-- | A+-- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_SourceCodeType SourceCodeType>+-- that specifies the tip of a branch in an associated repository.+repositoryAnalysis_repositoryHead :: Lens.Lens' RepositoryAnalysis (Prelude.Maybe RepositoryHeadSourceCodeType)+repositoryAnalysis_repositoryHead = Lens.lens (\RepositoryAnalysis' {repositoryHead} -> repositoryHead) (\s@RepositoryAnalysis' {} a -> s {repositoryHead = a} :: RepositoryAnalysis)++-- | Undocumented member.+repositoryAnalysis_sourceCodeType :: Lens.Lens' RepositoryAnalysis (Prelude.Maybe SourceCodeType)+repositoryAnalysis_sourceCodeType = Lens.lens (\RepositoryAnalysis' {sourceCodeType} -> sourceCodeType) (\s@RepositoryAnalysis' {} a -> s {sourceCodeType = a} :: RepositoryAnalysis)++instance Prelude.Hashable RepositoryAnalysis where+  hashWithSalt _salt RepositoryAnalysis' {..} =+    _salt+      `Prelude.hashWithSalt` repositoryHead+      `Prelude.hashWithSalt` sourceCodeType++instance Prelude.NFData RepositoryAnalysis where+  rnf RepositoryAnalysis' {..} =+    Prelude.rnf repositoryHead+      `Prelude.seq` Prelude.rnf sourceCodeType++instance Data.ToJSON RepositoryAnalysis where+  toJSON RepositoryAnalysis' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("RepositoryHead" Data..=)+              Prelude.<$> repositoryHead,+            ("SourceCodeType" Data..=)+              Prelude.<$> sourceCodeType+          ]+      )
+ gen/Amazonka/CodeGuruReviewer/Types/RepositoryAssociation.hs view
@@ -0,0 +1,360 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CodeGuruReviewer.Types.RepositoryAssociation+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.CodeGuruReviewer.Types.RepositoryAssociation where++import Amazonka.CodeGuruReviewer.Types.KMSKeyDetails+import Amazonka.CodeGuruReviewer.Types.ProviderType+import Amazonka.CodeGuruReviewer.Types.RepositoryAssociationState+import Amazonka.CodeGuruReviewer.Types.S3RepositoryDetails+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Information about a repository association. The+-- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_DescribeRepositoryAssociation.html DescribeRepositoryAssociation>+-- operation returns a @RepositoryAssociation@ object.+--+-- /See:/ 'newRepositoryAssociation' smart constructor.+data RepositoryAssociation = RepositoryAssociation'+  { -- | The Amazon Resource Name (ARN) identifying the repository association.+    associationArn :: Prelude.Maybe Prelude.Text,+    -- | The ID of the repository association.+    associationId :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of an Amazon Web Services CodeStar+    -- Connections connection. Its format is+    -- @arn:aws:codestar-connections:region-id:aws-account_id:connection\/connection-id@.+    -- For more information, see+    -- <https://docs.aws.amazon.com/codestar-connections/latest/APIReference/API_Connection.html Connection>+    -- in the /Amazon Web Services CodeStar Connections API Reference/.+    connectionArn :: Prelude.Maybe Prelude.Text,+    -- | The time, in milliseconds since the epoch, when the repository+    -- association was created.+    createdTimeStamp :: Prelude.Maybe Data.POSIX,+    -- | A @KMSKeyDetails@ object that contains:+    --+    -- -   The encryption option for this repository association. It is either+    --     owned by Amazon Web Services Key Management Service (KMS)+    --     (@AWS_OWNED_CMK@) or customer managed (@CUSTOMER_MANAGED_CMK@).+    --+    -- -   The ID of the Amazon Web Services KMS key that is associated with+    --     this repository association.+    kmsKeyDetails :: Prelude.Maybe KMSKeyDetails,+    -- | The time, in milliseconds since the epoch, when the repository+    -- association was last updated.+    lastUpdatedTimeStamp :: Prelude.Maybe Data.POSIX,+    -- | The name of the repository.+    name :: Prelude.Maybe Prelude.Text,+    -- | The owner of the repository. For an Amazon Web Services CodeCommit+    -- repository, this is the Amazon Web Services account ID of the account+    -- that owns the repository. For a GitHub, GitHub Enterprise Server, or+    -- Bitbucket repository, this is the username for the account that owns the+    -- repository. For an S3 repository, it can be the username or Amazon Web+    -- Services account ID.+    owner :: Prelude.Maybe Prelude.Text,+    -- | The provider type of the repository association.+    providerType :: Prelude.Maybe ProviderType,+    s3RepositoryDetails :: Prelude.Maybe S3RepositoryDetails,+    -- | The state of the repository association.+    --+    -- The valid repository association states are:+    --+    -- -   __Associated__: The repository association is complete.+    --+    -- -   __Associating__: CodeGuru Reviewer is:+    --+    --     -   Setting up pull request notifications. This is required for pull+    --         requests to trigger a CodeGuru Reviewer review.+    --+    --         If your repository @ProviderType@ is @GitHub@,+    --         @GitHub Enterprise Server@, or @Bitbucket@, CodeGuru Reviewer+    --         creates webhooks in your repository to trigger CodeGuru Reviewer+    --         reviews. If you delete these webhooks, reviews of code in your+    --         repository cannot be triggered.+    --+    --     -   Setting up source code access. This is required for CodeGuru+    --         Reviewer to securely clone code in your repository.+    --+    -- -   __Failed__: The repository failed to associate or disassociate.+    --+    -- -   __Disassociating__: CodeGuru Reviewer is removing the repository\'s+    --     pull request notifications and source code access.+    --+    -- -   __Disassociated__: CodeGuru Reviewer successfully disassociated the+    --     repository. You can create a new association with this repository if+    --     you want to review source code in it later. You can control access+    --     to code reviews created in anassociated repository with tags after+    --     it has been disassociated. For more information, see+    --     <https://docs.aws.amazon.com/codeguru/latest/reviewer-ug/auth-and-access-control-using-tags.html Using tags to control access to associated repositories>+    --     in the /Amazon CodeGuru Reviewer User Guide/.+    state :: Prelude.Maybe RepositoryAssociationState,+    -- | A description of why the repository association is in the current state.+    stateReason :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RepositoryAssociation' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'associationArn', 'repositoryAssociation_associationArn' - The Amazon Resource Name (ARN) identifying the repository association.+--+-- 'associationId', 'repositoryAssociation_associationId' - The ID of the repository association.+--+-- 'connectionArn', 'repositoryAssociation_connectionArn' - The Amazon Resource Name (ARN) of an Amazon Web Services CodeStar+-- Connections connection. Its format is+-- @arn:aws:codestar-connections:region-id:aws-account_id:connection\/connection-id@.+-- For more information, see+-- <https://docs.aws.amazon.com/codestar-connections/latest/APIReference/API_Connection.html Connection>+-- in the /Amazon Web Services CodeStar Connections API Reference/.+--+-- 'createdTimeStamp', 'repositoryAssociation_createdTimeStamp' - The time, in milliseconds since the epoch, when the repository+-- association was created.+--+-- 'kmsKeyDetails', 'repositoryAssociation_kmsKeyDetails' - A @KMSKeyDetails@ object that contains:+--+-- -   The encryption option for this repository association. It is either+--     owned by Amazon Web Services Key Management Service (KMS)+--     (@AWS_OWNED_CMK@) or customer managed (@CUSTOMER_MANAGED_CMK@).+--+-- -   The ID of the Amazon Web Services KMS key that is associated with+--     this repository association.+--+-- 'lastUpdatedTimeStamp', 'repositoryAssociation_lastUpdatedTimeStamp' - The time, in milliseconds since the epoch, when the repository+-- association was last updated.+--+-- 'name', 'repositoryAssociation_name' - The name of the repository.+--+-- 'owner', 'repositoryAssociation_owner' - The owner of the repository. For an Amazon Web Services CodeCommit+-- repository, this is the Amazon Web Services account ID of the account+-- that owns the repository. For a GitHub, GitHub Enterprise Server, or+-- Bitbucket repository, this is the username for the account that owns the+-- repository. For an S3 repository, it can be the username or Amazon Web+-- Services account ID.+--+-- 'providerType', 'repositoryAssociation_providerType' - The provider type of the repository association.+--+-- 's3RepositoryDetails', 'repositoryAssociation_s3RepositoryDetails' - Undocumented member.+--+-- 'state', 'repositoryAssociation_state' - The state of the repository association.+--+-- The valid repository association states are:+--+-- -   __Associated__: The repository association is complete.+--+-- -   __Associating__: CodeGuru Reviewer is:+--+--     -   Setting up pull request notifications. This is required for pull+--         requests to trigger a CodeGuru Reviewer review.+--+--         If your repository @ProviderType@ is @GitHub@,+--         @GitHub Enterprise Server@, or @Bitbucket@, CodeGuru Reviewer+--         creates webhooks in your repository to trigger CodeGuru Reviewer+--         reviews. If you delete these webhooks, reviews of code in your+--         repository cannot be triggered.+--+--     -   Setting up source code access. This is required for CodeGuru+--         Reviewer to securely clone code in your repository.+--+-- -   __Failed__: The repository failed to associate or disassociate.+--+-- -   __Disassociating__: CodeGuru Reviewer is removing the repository\'s+--     pull request notifications and source code access.+--+-- -   __Disassociated__: CodeGuru Reviewer successfully disassociated the+--     repository. You can create a new association with this repository if+--     you want to review source code in it later. You can control access+--     to code reviews created in anassociated repository with tags after+--     it has been disassociated. For more information, see+--     <https://docs.aws.amazon.com/codeguru/latest/reviewer-ug/auth-and-access-control-using-tags.html Using tags to control access to associated repositories>+--     in the /Amazon CodeGuru Reviewer User Guide/.+--+-- 'stateReason', 'repositoryAssociation_stateReason' - A description of why the repository association is in the current state.+newRepositoryAssociation ::+  RepositoryAssociation+newRepositoryAssociation =+  RepositoryAssociation'+    { associationArn =+        Prelude.Nothing,+      associationId = Prelude.Nothing,+      connectionArn = Prelude.Nothing,+      createdTimeStamp = Prelude.Nothing,+      kmsKeyDetails = Prelude.Nothing,+      lastUpdatedTimeStamp = Prelude.Nothing,+      name = Prelude.Nothing,+      owner = Prelude.Nothing,+      providerType = Prelude.Nothing,+      s3RepositoryDetails = Prelude.Nothing,+      state = Prelude.Nothing,+      stateReason = Prelude.Nothing+    }++-- | The Amazon Resource Name (ARN) identifying the repository association.+repositoryAssociation_associationArn :: Lens.Lens' RepositoryAssociation (Prelude.Maybe Prelude.Text)+repositoryAssociation_associationArn = Lens.lens (\RepositoryAssociation' {associationArn} -> associationArn) (\s@RepositoryAssociation' {} a -> s {associationArn = a} :: RepositoryAssociation)++-- | The ID of the repository association.+repositoryAssociation_associationId :: Lens.Lens' RepositoryAssociation (Prelude.Maybe Prelude.Text)+repositoryAssociation_associationId = Lens.lens (\RepositoryAssociation' {associationId} -> associationId) (\s@RepositoryAssociation' {} a -> s {associationId = a} :: RepositoryAssociation)++-- | The Amazon Resource Name (ARN) of an Amazon Web Services CodeStar+-- Connections connection. Its format is+-- @arn:aws:codestar-connections:region-id:aws-account_id:connection\/connection-id@.+-- For more information, see+-- <https://docs.aws.amazon.com/codestar-connections/latest/APIReference/API_Connection.html Connection>+-- in the /Amazon Web Services CodeStar Connections API Reference/.+repositoryAssociation_connectionArn :: Lens.Lens' RepositoryAssociation (Prelude.Maybe Prelude.Text)+repositoryAssociation_connectionArn = Lens.lens (\RepositoryAssociation' {connectionArn} -> connectionArn) (\s@RepositoryAssociation' {} a -> s {connectionArn = a} :: RepositoryAssociation)++-- | The time, in milliseconds since the epoch, when the repository+-- association was created.+repositoryAssociation_createdTimeStamp :: Lens.Lens' RepositoryAssociation (Prelude.Maybe Prelude.UTCTime)+repositoryAssociation_createdTimeStamp = Lens.lens (\RepositoryAssociation' {createdTimeStamp} -> createdTimeStamp) (\s@RepositoryAssociation' {} a -> s {createdTimeStamp = a} :: RepositoryAssociation) Prelude.. Lens.mapping Data._Time++-- | A @KMSKeyDetails@ object that contains:+--+-- -   The encryption option for this repository association. It is either+--     owned by Amazon Web Services Key Management Service (KMS)+--     (@AWS_OWNED_CMK@) or customer managed (@CUSTOMER_MANAGED_CMK@).+--+-- -   The ID of the Amazon Web Services KMS key that is associated with+--     this repository association.+repositoryAssociation_kmsKeyDetails :: Lens.Lens' RepositoryAssociation (Prelude.Maybe KMSKeyDetails)+repositoryAssociation_kmsKeyDetails = Lens.lens (\RepositoryAssociation' {kmsKeyDetails} -> kmsKeyDetails) (\s@RepositoryAssociation' {} a -> s {kmsKeyDetails = a} :: RepositoryAssociation)++-- | The time, in milliseconds since the epoch, when the repository+-- association was last updated.+repositoryAssociation_lastUpdatedTimeStamp :: Lens.Lens' RepositoryAssociation (Prelude.Maybe Prelude.UTCTime)+repositoryAssociation_lastUpdatedTimeStamp = Lens.lens (\RepositoryAssociation' {lastUpdatedTimeStamp} -> lastUpdatedTimeStamp) (\s@RepositoryAssociation' {} a -> s {lastUpdatedTimeStamp = a} :: RepositoryAssociation) Prelude.. Lens.mapping Data._Time++-- | The name of the repository.+repositoryAssociation_name :: Lens.Lens' RepositoryAssociation (Prelude.Maybe Prelude.Text)+repositoryAssociation_name = Lens.lens (\RepositoryAssociation' {name} -> name) (\s@RepositoryAssociation' {} a -> s {name = a} :: RepositoryAssociation)++-- | The owner of the repository. For an Amazon Web Services CodeCommit+-- repository, this is the Amazon Web Services account ID of the account+-- that owns the repository. For a GitHub, GitHub Enterprise Server, or+-- Bitbucket repository, this is the username for the account that owns the+-- repository. For an S3 repository, it can be the username or Amazon Web+-- Services account ID.+repositoryAssociation_owner :: Lens.Lens' RepositoryAssociation (Prelude.Maybe Prelude.Text)+repositoryAssociation_owner = Lens.lens (\RepositoryAssociation' {owner} -> owner) (\s@RepositoryAssociation' {} a -> s {owner = a} :: RepositoryAssociation)++-- | The provider type of the repository association.+repositoryAssociation_providerType :: Lens.Lens' RepositoryAssociation (Prelude.Maybe ProviderType)+repositoryAssociation_providerType = Lens.lens (\RepositoryAssociation' {providerType} -> providerType) (\s@RepositoryAssociation' {} a -> s {providerType = a} :: RepositoryAssociation)++-- | Undocumented member.+repositoryAssociation_s3RepositoryDetails :: Lens.Lens' RepositoryAssociation (Prelude.Maybe S3RepositoryDetails)+repositoryAssociation_s3RepositoryDetails = Lens.lens (\RepositoryAssociation' {s3RepositoryDetails} -> s3RepositoryDetails) (\s@RepositoryAssociation' {} a -> s {s3RepositoryDetails = a} :: RepositoryAssociation)++-- | The state of the repository association.+--+-- The valid repository association states are:+--+-- -   __Associated__: The repository association is complete.+--+-- -   __Associating__: CodeGuru Reviewer is:+--+--     -   Setting up pull request notifications. This is required for pull+--         requests to trigger a CodeGuru Reviewer review.+--+--         If your repository @ProviderType@ is @GitHub@,+--         @GitHub Enterprise Server@, or @Bitbucket@, CodeGuru Reviewer+--         creates webhooks in your repository to trigger CodeGuru Reviewer+--         reviews. If you delete these webhooks, reviews of code in your+--         repository cannot be triggered.+--+--     -   Setting up source code access. This is required for CodeGuru+--         Reviewer to securely clone code in your repository.+--+-- -   __Failed__: The repository failed to associate or disassociate.+--+-- -   __Disassociating__: CodeGuru Reviewer is removing the repository\'s+--     pull request notifications and source code access.+--+-- -   __Disassociated__: CodeGuru Reviewer successfully disassociated the+--     repository. You can create a new association with this repository if+--     you want to review source code in it later. You can control access+--     to code reviews created in anassociated repository with tags after+--     it has been disassociated. For more information, see+--     <https://docs.aws.amazon.com/codeguru/latest/reviewer-ug/auth-and-access-control-using-tags.html Using tags to control access to associated repositories>+--     in the /Amazon CodeGuru Reviewer User Guide/.+repositoryAssociation_state :: Lens.Lens' RepositoryAssociation (Prelude.Maybe RepositoryAssociationState)+repositoryAssociation_state = Lens.lens (\RepositoryAssociation' {state} -> state) (\s@RepositoryAssociation' {} a -> s {state = a} :: RepositoryAssociation)++-- | A description of why the repository association is in the current state.+repositoryAssociation_stateReason :: Lens.Lens' RepositoryAssociation (Prelude.Maybe Prelude.Text)+repositoryAssociation_stateReason = Lens.lens (\RepositoryAssociation' {stateReason} -> stateReason) (\s@RepositoryAssociation' {} a -> s {stateReason = a} :: RepositoryAssociation)++instance Data.FromJSON RepositoryAssociation where+  parseJSON =+    Data.withObject+      "RepositoryAssociation"+      ( \x ->+          RepositoryAssociation'+            Prelude.<$> (x Data..:? "AssociationArn")+            Prelude.<*> (x Data..:? "AssociationId")+            Prelude.<*> (x Data..:? "ConnectionArn")+            Prelude.<*> (x Data..:? "CreatedTimeStamp")+            Prelude.<*> (x Data..:? "KMSKeyDetails")+            Prelude.<*> (x Data..:? "LastUpdatedTimeStamp")+            Prelude.<*> (x Data..:? "Name")+            Prelude.<*> (x Data..:? "Owner")+            Prelude.<*> (x Data..:? "ProviderType")+            Prelude.<*> (x Data..:? "S3RepositoryDetails")+            Prelude.<*> (x Data..:? "State")+            Prelude.<*> (x Data..:? "StateReason")+      )++instance Prelude.Hashable RepositoryAssociation where+  hashWithSalt _salt RepositoryAssociation' {..} =+    _salt+      `Prelude.hashWithSalt` associationArn+      `Prelude.hashWithSalt` associationId+      `Prelude.hashWithSalt` connectionArn+      `Prelude.hashWithSalt` createdTimeStamp+      `Prelude.hashWithSalt` kmsKeyDetails+      `Prelude.hashWithSalt` lastUpdatedTimeStamp+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` owner+      `Prelude.hashWithSalt` providerType+      `Prelude.hashWithSalt` s3RepositoryDetails+      `Prelude.hashWithSalt` state+      `Prelude.hashWithSalt` stateReason++instance Prelude.NFData RepositoryAssociation where+  rnf RepositoryAssociation' {..} =+    Prelude.rnf associationArn+      `Prelude.seq` Prelude.rnf associationId+      `Prelude.seq` Prelude.rnf connectionArn+      `Prelude.seq` Prelude.rnf createdTimeStamp+      `Prelude.seq` Prelude.rnf kmsKeyDetails+      `Prelude.seq` Prelude.rnf lastUpdatedTimeStamp+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf owner+      `Prelude.seq` Prelude.rnf providerType+      `Prelude.seq` Prelude.rnf s3RepositoryDetails+      `Prelude.seq` Prelude.rnf state+      `Prelude.seq` Prelude.rnf stateReason
+ gen/Amazonka/CodeGuruReviewer/Types/RepositoryAssociationState.hs view
@@ -0,0 +1,86 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CodeGuruReviewer.Types.RepositoryAssociationState+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.CodeGuruReviewer.Types.RepositoryAssociationState+  ( RepositoryAssociationState+      ( ..,+        RepositoryAssociationState_Associated,+        RepositoryAssociationState_Associating,+        RepositoryAssociationState_Disassociated,+        RepositoryAssociationState_Disassociating,+        RepositoryAssociationState_Failed+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype RepositoryAssociationState = RepositoryAssociationState'+  { fromRepositoryAssociationState ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern RepositoryAssociationState_Associated :: RepositoryAssociationState+pattern RepositoryAssociationState_Associated = RepositoryAssociationState' "Associated"++pattern RepositoryAssociationState_Associating :: RepositoryAssociationState+pattern RepositoryAssociationState_Associating = RepositoryAssociationState' "Associating"++pattern RepositoryAssociationState_Disassociated :: RepositoryAssociationState+pattern RepositoryAssociationState_Disassociated = RepositoryAssociationState' "Disassociated"++pattern RepositoryAssociationState_Disassociating :: RepositoryAssociationState+pattern RepositoryAssociationState_Disassociating = RepositoryAssociationState' "Disassociating"++pattern RepositoryAssociationState_Failed :: RepositoryAssociationState+pattern RepositoryAssociationState_Failed = RepositoryAssociationState' "Failed"++{-# COMPLETE+  RepositoryAssociationState_Associated,+  RepositoryAssociationState_Associating,+  RepositoryAssociationState_Disassociated,+  RepositoryAssociationState_Disassociating,+  RepositoryAssociationState_Failed,+  RepositoryAssociationState'+  #-}
+ gen/Amazonka/CodeGuruReviewer/Types/RepositoryAssociationSummary.hs view
@@ -0,0 +1,299 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CodeGuruReviewer.Types.RepositoryAssociationSummary+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.CodeGuruReviewer.Types.RepositoryAssociationSummary where++import Amazonka.CodeGuruReviewer.Types.ProviderType+import Amazonka.CodeGuruReviewer.Types.RepositoryAssociationState+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Summary information about a repository association. The+-- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_ListRepositoryAssociations.html ListRepositoryAssociations>+-- operation returns a list of @RepositoryAssociationSummary@ objects.+--+-- /See:/ 'newRepositoryAssociationSummary' smart constructor.+data RepositoryAssociationSummary = RepositoryAssociationSummary'+  { -- | The Amazon Resource Name (ARN) of the+    -- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_RepositoryAssociation.html RepositoryAssociation>+    -- object. You can retrieve this ARN by calling+    -- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_ListRepositoryAssociations.html ListRepositoryAssociations>.+    associationArn :: Prelude.Maybe Prelude.Text,+    -- | The repository association ID.+    associationId :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of an Amazon Web Services CodeStar+    -- Connections connection. Its format is+    -- @arn:aws:codestar-connections:region-id:aws-account_id:connection\/connection-id@.+    -- For more information, see+    -- <https://docs.aws.amazon.com/codestar-connections/latest/APIReference/API_Connection.html Connection>+    -- in the /Amazon Web Services CodeStar Connections API Reference/.+    connectionArn :: Prelude.Maybe Prelude.Text,+    -- | The time, in milliseconds since the epoch, since the repository+    -- association was last updated.+    lastUpdatedTimeStamp :: Prelude.Maybe Data.POSIX,+    -- | The name of the repository association.+    name :: Prelude.Maybe Prelude.Text,+    -- | The owner of the repository. For an Amazon Web Services CodeCommit+    -- repository, this is the Amazon Web Services account ID of the account+    -- that owns the repository. For a GitHub, GitHub Enterprise Server, or+    -- Bitbucket repository, this is the username for the account that owns the+    -- repository. For an S3 repository, it can be the username or Amazon Web+    -- Services account ID.+    owner :: Prelude.Maybe Prelude.Text,+    -- | The provider type of the repository association.+    providerType :: Prelude.Maybe ProviderType,+    -- | The state of the repository association.+    --+    -- The valid repository association states are:+    --+    -- -   __Associated__: The repository association is complete.+    --+    -- -   __Associating__: CodeGuru Reviewer is:+    --+    --     -   Setting up pull request notifications. This is required for pull+    --         requests to trigger a CodeGuru Reviewer review.+    --+    --         If your repository @ProviderType@ is @GitHub@,+    --         @GitHub Enterprise Server@, or @Bitbucket@, CodeGuru Reviewer+    --         creates webhooks in your repository to trigger CodeGuru Reviewer+    --         reviews. If you delete these webhooks, reviews of code in your+    --         repository cannot be triggered.+    --+    --     -   Setting up source code access. This is required for CodeGuru+    --         Reviewer to securely clone code in your repository.+    --+    -- -   __Failed__: The repository failed to associate or disassociate.+    --+    -- -   __Disassociating__: CodeGuru Reviewer is removing the repository\'s+    --     pull request notifications and source code access.+    --+    -- -   __Disassociated__: CodeGuru Reviewer successfully disassociated the+    --     repository. You can create a new association with this repository if+    --     you want to review source code in it later. You can control access+    --     to code reviews created in anassociated repository with tags after+    --     it has been disassociated. For more information, see+    --     <https://docs.aws.amazon.com/codeguru/latest/reviewer-ug/auth-and-access-control-using-tags.html Using tags to control access to associated repositories>+    --     in the /Amazon CodeGuru Reviewer User Guide/.+    state :: Prelude.Maybe RepositoryAssociationState+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RepositoryAssociationSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'associationArn', 'repositoryAssociationSummary_associationArn' - The Amazon Resource Name (ARN) of the+-- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_RepositoryAssociation.html RepositoryAssociation>+-- object. You can retrieve this ARN by calling+-- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_ListRepositoryAssociations.html ListRepositoryAssociations>.+--+-- 'associationId', 'repositoryAssociationSummary_associationId' - The repository association ID.+--+-- 'connectionArn', 'repositoryAssociationSummary_connectionArn' - The Amazon Resource Name (ARN) of an Amazon Web Services CodeStar+-- Connections connection. Its format is+-- @arn:aws:codestar-connections:region-id:aws-account_id:connection\/connection-id@.+-- For more information, see+-- <https://docs.aws.amazon.com/codestar-connections/latest/APIReference/API_Connection.html Connection>+-- in the /Amazon Web Services CodeStar Connections API Reference/.+--+-- 'lastUpdatedTimeStamp', 'repositoryAssociationSummary_lastUpdatedTimeStamp' - The time, in milliseconds since the epoch, since the repository+-- association was last updated.+--+-- 'name', 'repositoryAssociationSummary_name' - The name of the repository association.+--+-- 'owner', 'repositoryAssociationSummary_owner' - The owner of the repository. For an Amazon Web Services CodeCommit+-- repository, this is the Amazon Web Services account ID of the account+-- that owns the repository. For a GitHub, GitHub Enterprise Server, or+-- Bitbucket repository, this is the username for the account that owns the+-- repository. For an S3 repository, it can be the username or Amazon Web+-- Services account ID.+--+-- 'providerType', 'repositoryAssociationSummary_providerType' - The provider type of the repository association.+--+-- 'state', 'repositoryAssociationSummary_state' - The state of the repository association.+--+-- The valid repository association states are:+--+-- -   __Associated__: The repository association is complete.+--+-- -   __Associating__: CodeGuru Reviewer is:+--+--     -   Setting up pull request notifications. This is required for pull+--         requests to trigger a CodeGuru Reviewer review.+--+--         If your repository @ProviderType@ is @GitHub@,+--         @GitHub Enterprise Server@, or @Bitbucket@, CodeGuru Reviewer+--         creates webhooks in your repository to trigger CodeGuru Reviewer+--         reviews. If you delete these webhooks, reviews of code in your+--         repository cannot be triggered.+--+--     -   Setting up source code access. This is required for CodeGuru+--         Reviewer to securely clone code in your repository.+--+-- -   __Failed__: The repository failed to associate or disassociate.+--+-- -   __Disassociating__: CodeGuru Reviewer is removing the repository\'s+--     pull request notifications and source code access.+--+-- -   __Disassociated__: CodeGuru Reviewer successfully disassociated the+--     repository. You can create a new association with this repository if+--     you want to review source code in it later. You can control access+--     to code reviews created in anassociated repository with tags after+--     it has been disassociated. For more information, see+--     <https://docs.aws.amazon.com/codeguru/latest/reviewer-ug/auth-and-access-control-using-tags.html Using tags to control access to associated repositories>+--     in the /Amazon CodeGuru Reviewer User Guide/.+newRepositoryAssociationSummary ::+  RepositoryAssociationSummary+newRepositoryAssociationSummary =+  RepositoryAssociationSummary'+    { associationArn =+        Prelude.Nothing,+      associationId = Prelude.Nothing,+      connectionArn = Prelude.Nothing,+      lastUpdatedTimeStamp = Prelude.Nothing,+      name = Prelude.Nothing,+      owner = Prelude.Nothing,+      providerType = Prelude.Nothing,+      state = Prelude.Nothing+    }++-- | The Amazon Resource Name (ARN) of the+-- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_RepositoryAssociation.html RepositoryAssociation>+-- object. You can retrieve this ARN by calling+-- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_ListRepositoryAssociations.html ListRepositoryAssociations>.+repositoryAssociationSummary_associationArn :: Lens.Lens' RepositoryAssociationSummary (Prelude.Maybe Prelude.Text)+repositoryAssociationSummary_associationArn = Lens.lens (\RepositoryAssociationSummary' {associationArn} -> associationArn) (\s@RepositoryAssociationSummary' {} a -> s {associationArn = a} :: RepositoryAssociationSummary)++-- | The repository association ID.+repositoryAssociationSummary_associationId :: Lens.Lens' RepositoryAssociationSummary (Prelude.Maybe Prelude.Text)+repositoryAssociationSummary_associationId = Lens.lens (\RepositoryAssociationSummary' {associationId} -> associationId) (\s@RepositoryAssociationSummary' {} a -> s {associationId = a} :: RepositoryAssociationSummary)++-- | The Amazon Resource Name (ARN) of an Amazon Web Services CodeStar+-- Connections connection. Its format is+-- @arn:aws:codestar-connections:region-id:aws-account_id:connection\/connection-id@.+-- For more information, see+-- <https://docs.aws.amazon.com/codestar-connections/latest/APIReference/API_Connection.html Connection>+-- in the /Amazon Web Services CodeStar Connections API Reference/.+repositoryAssociationSummary_connectionArn :: Lens.Lens' RepositoryAssociationSummary (Prelude.Maybe Prelude.Text)+repositoryAssociationSummary_connectionArn = Lens.lens (\RepositoryAssociationSummary' {connectionArn} -> connectionArn) (\s@RepositoryAssociationSummary' {} a -> s {connectionArn = a} :: RepositoryAssociationSummary)++-- | The time, in milliseconds since the epoch, since the repository+-- association was last updated.+repositoryAssociationSummary_lastUpdatedTimeStamp :: Lens.Lens' RepositoryAssociationSummary (Prelude.Maybe Prelude.UTCTime)+repositoryAssociationSummary_lastUpdatedTimeStamp = Lens.lens (\RepositoryAssociationSummary' {lastUpdatedTimeStamp} -> lastUpdatedTimeStamp) (\s@RepositoryAssociationSummary' {} a -> s {lastUpdatedTimeStamp = a} :: RepositoryAssociationSummary) Prelude.. Lens.mapping Data._Time++-- | The name of the repository association.+repositoryAssociationSummary_name :: Lens.Lens' RepositoryAssociationSummary (Prelude.Maybe Prelude.Text)+repositoryAssociationSummary_name = Lens.lens (\RepositoryAssociationSummary' {name} -> name) (\s@RepositoryAssociationSummary' {} a -> s {name = a} :: RepositoryAssociationSummary)++-- | The owner of the repository. For an Amazon Web Services CodeCommit+-- repository, this is the Amazon Web Services account ID of the account+-- that owns the repository. For a GitHub, GitHub Enterprise Server, or+-- Bitbucket repository, this is the username for the account that owns the+-- repository. For an S3 repository, it can be the username or Amazon Web+-- Services account ID.+repositoryAssociationSummary_owner :: Lens.Lens' RepositoryAssociationSummary (Prelude.Maybe Prelude.Text)+repositoryAssociationSummary_owner = Lens.lens (\RepositoryAssociationSummary' {owner} -> owner) (\s@RepositoryAssociationSummary' {} a -> s {owner = a} :: RepositoryAssociationSummary)++-- | The provider type of the repository association.+repositoryAssociationSummary_providerType :: Lens.Lens' RepositoryAssociationSummary (Prelude.Maybe ProviderType)+repositoryAssociationSummary_providerType = Lens.lens (\RepositoryAssociationSummary' {providerType} -> providerType) (\s@RepositoryAssociationSummary' {} a -> s {providerType = a} :: RepositoryAssociationSummary)++-- | The state of the repository association.+--+-- The valid repository association states are:+--+-- -   __Associated__: The repository association is complete.+--+-- -   __Associating__: CodeGuru Reviewer is:+--+--     -   Setting up pull request notifications. This is required for pull+--         requests to trigger a CodeGuru Reviewer review.+--+--         If your repository @ProviderType@ is @GitHub@,+--         @GitHub Enterprise Server@, or @Bitbucket@, CodeGuru Reviewer+--         creates webhooks in your repository to trigger CodeGuru Reviewer+--         reviews. If you delete these webhooks, reviews of code in your+--         repository cannot be triggered.+--+--     -   Setting up source code access. This is required for CodeGuru+--         Reviewer to securely clone code in your repository.+--+-- -   __Failed__: The repository failed to associate or disassociate.+--+-- -   __Disassociating__: CodeGuru Reviewer is removing the repository\'s+--     pull request notifications and source code access.+--+-- -   __Disassociated__: CodeGuru Reviewer successfully disassociated the+--     repository. You can create a new association with this repository if+--     you want to review source code in it later. You can control access+--     to code reviews created in anassociated repository with tags after+--     it has been disassociated. For more information, see+--     <https://docs.aws.amazon.com/codeguru/latest/reviewer-ug/auth-and-access-control-using-tags.html Using tags to control access to associated repositories>+--     in the /Amazon CodeGuru Reviewer User Guide/.+repositoryAssociationSummary_state :: Lens.Lens' RepositoryAssociationSummary (Prelude.Maybe RepositoryAssociationState)+repositoryAssociationSummary_state = Lens.lens (\RepositoryAssociationSummary' {state} -> state) (\s@RepositoryAssociationSummary' {} a -> s {state = a} :: RepositoryAssociationSummary)++instance Data.FromJSON RepositoryAssociationSummary where+  parseJSON =+    Data.withObject+      "RepositoryAssociationSummary"+      ( \x ->+          RepositoryAssociationSummary'+            Prelude.<$> (x Data..:? "AssociationArn")+            Prelude.<*> (x Data..:? "AssociationId")+            Prelude.<*> (x Data..:? "ConnectionArn")+            Prelude.<*> (x Data..:? "LastUpdatedTimeStamp")+            Prelude.<*> (x Data..:? "Name")+            Prelude.<*> (x Data..:? "Owner")+            Prelude.<*> (x Data..:? "ProviderType")+            Prelude.<*> (x Data..:? "State")+      )++instance+  Prelude.Hashable+    RepositoryAssociationSummary+  where+  hashWithSalt _salt RepositoryAssociationSummary' {..} =+    _salt+      `Prelude.hashWithSalt` associationArn+      `Prelude.hashWithSalt` associationId+      `Prelude.hashWithSalt` connectionArn+      `Prelude.hashWithSalt` lastUpdatedTimeStamp+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` owner+      `Prelude.hashWithSalt` providerType+      `Prelude.hashWithSalt` state++instance Prelude.NFData RepositoryAssociationSummary where+  rnf RepositoryAssociationSummary' {..} =+    Prelude.rnf associationArn+      `Prelude.seq` Prelude.rnf associationId+      `Prelude.seq` Prelude.rnf connectionArn+      `Prelude.seq` Prelude.rnf lastUpdatedTimeStamp+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf owner+      `Prelude.seq` Prelude.rnf providerType+      `Prelude.seq` Prelude.rnf state
+ gen/Amazonka/CodeGuruReviewer/Types/RepositoryHeadSourceCodeType.hs view
@@ -0,0 +1,89 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CodeGuruReviewer.Types.RepositoryHeadSourceCodeType+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.CodeGuruReviewer.Types.RepositoryHeadSourceCodeType where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | A+-- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_SourceCodeType SourceCodeType>+-- that specifies the tip of a branch in an associated repository.+--+-- /See:/ 'newRepositoryHeadSourceCodeType' smart constructor.+data RepositoryHeadSourceCodeType = RepositoryHeadSourceCodeType'+  { -- | The name of the branch in an associated repository. The+    -- @RepositoryHeadSourceCodeType@ specifies the tip of this branch.+    branchName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RepositoryHeadSourceCodeType' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'branchName', 'repositoryHeadSourceCodeType_branchName' - The name of the branch in an associated repository. The+-- @RepositoryHeadSourceCodeType@ specifies the tip of this branch.+newRepositoryHeadSourceCodeType ::+  -- | 'branchName'+  Prelude.Text ->+  RepositoryHeadSourceCodeType+newRepositoryHeadSourceCodeType pBranchName_ =+  RepositoryHeadSourceCodeType'+    { branchName =+        pBranchName_+    }++-- | The name of the branch in an associated repository. The+-- @RepositoryHeadSourceCodeType@ specifies the tip of this branch.+repositoryHeadSourceCodeType_branchName :: Lens.Lens' RepositoryHeadSourceCodeType Prelude.Text+repositoryHeadSourceCodeType_branchName = Lens.lens (\RepositoryHeadSourceCodeType' {branchName} -> branchName) (\s@RepositoryHeadSourceCodeType' {} a -> s {branchName = a} :: RepositoryHeadSourceCodeType)++instance Data.FromJSON RepositoryHeadSourceCodeType where+  parseJSON =+    Data.withObject+      "RepositoryHeadSourceCodeType"+      ( \x ->+          RepositoryHeadSourceCodeType'+            Prelude.<$> (x Data..: "BranchName")+      )++instance+  Prelude.Hashable+    RepositoryHeadSourceCodeType+  where+  hashWithSalt _salt RepositoryHeadSourceCodeType' {..} =+    _salt `Prelude.hashWithSalt` branchName++instance Prelude.NFData RepositoryHeadSourceCodeType where+  rnf RepositoryHeadSourceCodeType' {..} =+    Prelude.rnf branchName++instance Data.ToJSON RepositoryHeadSourceCodeType where+  toJSON RepositoryHeadSourceCodeType' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("BranchName" Data..= branchName)]+      )
+ gen/Amazonka/CodeGuruReviewer/Types/RequestMetadata.hs view
@@ -0,0 +1,146 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CodeGuruReviewer.Types.RequestMetadata+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.CodeGuruReviewer.Types.RequestMetadata where++import Amazonka.CodeGuruReviewer.Types.EventInfo+import Amazonka.CodeGuruReviewer.Types.VendorName+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Metadata that is associated with a code review. This applies to both+-- pull request and repository analysis code reviews.+--+-- /See:/ 'newRequestMetadata' smart constructor.+data RequestMetadata = RequestMetadata'+  { -- | Information about the event associated with a code review.+    eventInfo :: Prelude.Maybe EventInfo,+    -- | The ID of the request. This is required for a pull request code review.+    requestId :: Prelude.Maybe Prelude.Text,+    -- | An identifier, such as a name or account ID, that is associated with the+    -- requester. The @Requester@ is used to capture the @author\/actor@ name+    -- of the event request.+    requester :: Prelude.Maybe Prelude.Text,+    -- | The name of the repository vendor used to upload code to an S3 bucket+    -- for a CI\/CD code review. For example, if code and artifacts are+    -- uploaded to an S3 bucket for a CI\/CD code review by GitHub scripts from+    -- a GitHub repository, then the repository association\'s @ProviderType@+    -- is @S3Bucket@ and the CI\/CD repository vendor name is GitHub. For more+    -- information, see the definition for @ProviderType@ in+    -- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_RepositoryAssociation.html RepositoryAssociation>.+    vendorName :: Prelude.Maybe VendorName+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RequestMetadata' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'eventInfo', 'requestMetadata_eventInfo' - Information about the event associated with a code review.+--+-- 'requestId', 'requestMetadata_requestId' - The ID of the request. This is required for a pull request code review.+--+-- 'requester', 'requestMetadata_requester' - An identifier, such as a name or account ID, that is associated with the+-- requester. The @Requester@ is used to capture the @author\/actor@ name+-- of the event request.+--+-- 'vendorName', 'requestMetadata_vendorName' - The name of the repository vendor used to upload code to an S3 bucket+-- for a CI\/CD code review. For example, if code and artifacts are+-- uploaded to an S3 bucket for a CI\/CD code review by GitHub scripts from+-- a GitHub repository, then the repository association\'s @ProviderType@+-- is @S3Bucket@ and the CI\/CD repository vendor name is GitHub. For more+-- information, see the definition for @ProviderType@ in+-- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_RepositoryAssociation.html RepositoryAssociation>.+newRequestMetadata ::+  RequestMetadata+newRequestMetadata =+  RequestMetadata'+    { eventInfo = Prelude.Nothing,+      requestId = Prelude.Nothing,+      requester = Prelude.Nothing,+      vendorName = Prelude.Nothing+    }++-- | Information about the event associated with a code review.+requestMetadata_eventInfo :: Lens.Lens' RequestMetadata (Prelude.Maybe EventInfo)+requestMetadata_eventInfo = Lens.lens (\RequestMetadata' {eventInfo} -> eventInfo) (\s@RequestMetadata' {} a -> s {eventInfo = a} :: RequestMetadata)++-- | The ID of the request. This is required for a pull request code review.+requestMetadata_requestId :: Lens.Lens' RequestMetadata (Prelude.Maybe Prelude.Text)+requestMetadata_requestId = Lens.lens (\RequestMetadata' {requestId} -> requestId) (\s@RequestMetadata' {} a -> s {requestId = a} :: RequestMetadata)++-- | An identifier, such as a name or account ID, that is associated with the+-- requester. The @Requester@ is used to capture the @author\/actor@ name+-- of the event request.+requestMetadata_requester :: Lens.Lens' RequestMetadata (Prelude.Maybe Prelude.Text)+requestMetadata_requester = Lens.lens (\RequestMetadata' {requester} -> requester) (\s@RequestMetadata' {} a -> s {requester = a} :: RequestMetadata)++-- | The name of the repository vendor used to upload code to an S3 bucket+-- for a CI\/CD code review. For example, if code and artifacts are+-- uploaded to an S3 bucket for a CI\/CD code review by GitHub scripts from+-- a GitHub repository, then the repository association\'s @ProviderType@+-- is @S3Bucket@ and the CI\/CD repository vendor name is GitHub. For more+-- information, see the definition for @ProviderType@ in+-- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_RepositoryAssociation.html RepositoryAssociation>.+requestMetadata_vendorName :: Lens.Lens' RequestMetadata (Prelude.Maybe VendorName)+requestMetadata_vendorName = Lens.lens (\RequestMetadata' {vendorName} -> vendorName) (\s@RequestMetadata' {} a -> s {vendorName = a} :: RequestMetadata)++instance Data.FromJSON RequestMetadata where+  parseJSON =+    Data.withObject+      "RequestMetadata"+      ( \x ->+          RequestMetadata'+            Prelude.<$> (x Data..:? "EventInfo")+            Prelude.<*> (x Data..:? "RequestId")+            Prelude.<*> (x Data..:? "Requester")+            Prelude.<*> (x Data..:? "VendorName")+      )++instance Prelude.Hashable RequestMetadata where+  hashWithSalt _salt RequestMetadata' {..} =+    _salt+      `Prelude.hashWithSalt` eventInfo+      `Prelude.hashWithSalt` requestId+      `Prelude.hashWithSalt` requester+      `Prelude.hashWithSalt` vendorName++instance Prelude.NFData RequestMetadata where+  rnf RequestMetadata' {..} =+    Prelude.rnf eventInfo+      `Prelude.seq` Prelude.rnf requestId+      `Prelude.seq` Prelude.rnf requester+      `Prelude.seq` Prelude.rnf vendorName++instance Data.ToJSON RequestMetadata where+  toJSON RequestMetadata' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("EventInfo" Data..=) Prelude.<$> eventInfo,+            ("RequestId" Data..=) Prelude.<$> requestId,+            ("Requester" Data..=) Prelude.<$> requester,+            ("VendorName" Data..=) Prelude.<$> vendorName+          ]+      )
+ gen/Amazonka/CodeGuruReviewer/Types/RuleMetadata.hs view
@@ -0,0 +1,123 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CodeGuruReviewer.Types.RuleMetadata+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.CodeGuruReviewer.Types.RuleMetadata where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Metadata about a rule. Rule metadata includes an ID, a name, a list of+-- tags, and a short and long description. CodeGuru Reviewer uses rules to+-- analyze code. A rule\'s recommendation is included in analysis results+-- if code is detected that violates the rule.+--+-- /See:/ 'newRuleMetadata' smart constructor.+data RuleMetadata = RuleMetadata'+  { -- | A long description of the rule.+    longDescription :: Prelude.Maybe Prelude.Text,+    -- | The ID of the rule.+    ruleId :: Prelude.Maybe Prelude.Text,+    -- | The name of the rule.+    ruleName :: Prelude.Maybe Prelude.Text,+    -- | Tags that are associated with the rule.+    ruleTags :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),+    -- | A short description of the rule.+    shortDescription :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RuleMetadata' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'longDescription', 'ruleMetadata_longDescription' - A long description of the rule.+--+-- 'ruleId', 'ruleMetadata_ruleId' - The ID of the rule.+--+-- 'ruleName', 'ruleMetadata_ruleName' - The name of the rule.+--+-- 'ruleTags', 'ruleMetadata_ruleTags' - Tags that are associated with the rule.+--+-- 'shortDescription', 'ruleMetadata_shortDescription' - A short description of the rule.+newRuleMetadata ::+  RuleMetadata+newRuleMetadata =+  RuleMetadata'+    { longDescription = Prelude.Nothing,+      ruleId = Prelude.Nothing,+      ruleName = Prelude.Nothing,+      ruleTags = Prelude.Nothing,+      shortDescription = Prelude.Nothing+    }++-- | A long description of the rule.+ruleMetadata_longDescription :: Lens.Lens' RuleMetadata (Prelude.Maybe Prelude.Text)+ruleMetadata_longDescription = Lens.lens (\RuleMetadata' {longDescription} -> longDescription) (\s@RuleMetadata' {} a -> s {longDescription = a} :: RuleMetadata)++-- | The ID of the rule.+ruleMetadata_ruleId :: Lens.Lens' RuleMetadata (Prelude.Maybe Prelude.Text)+ruleMetadata_ruleId = Lens.lens (\RuleMetadata' {ruleId} -> ruleId) (\s@RuleMetadata' {} a -> s {ruleId = a} :: RuleMetadata)++-- | The name of the rule.+ruleMetadata_ruleName :: Lens.Lens' RuleMetadata (Prelude.Maybe Prelude.Text)+ruleMetadata_ruleName = Lens.lens (\RuleMetadata' {ruleName} -> ruleName) (\s@RuleMetadata' {} a -> s {ruleName = a} :: RuleMetadata)++-- | Tags that are associated with the rule.+ruleMetadata_ruleTags :: Lens.Lens' RuleMetadata (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+ruleMetadata_ruleTags = Lens.lens (\RuleMetadata' {ruleTags} -> ruleTags) (\s@RuleMetadata' {} a -> s {ruleTags = a} :: RuleMetadata) Prelude.. Lens.mapping Lens.coerced++-- | A short description of the rule.+ruleMetadata_shortDescription :: Lens.Lens' RuleMetadata (Prelude.Maybe Prelude.Text)+ruleMetadata_shortDescription = Lens.lens (\RuleMetadata' {shortDescription} -> shortDescription) (\s@RuleMetadata' {} a -> s {shortDescription = a} :: RuleMetadata)++instance Data.FromJSON RuleMetadata where+  parseJSON =+    Data.withObject+      "RuleMetadata"+      ( \x ->+          RuleMetadata'+            Prelude.<$> (x Data..:? "LongDescription")+            Prelude.<*> (x Data..:? "RuleId")+            Prelude.<*> (x Data..:? "RuleName")+            Prelude.<*> (x Data..:? "RuleTags")+            Prelude.<*> (x Data..:? "ShortDescription")+      )++instance Prelude.Hashable RuleMetadata where+  hashWithSalt _salt RuleMetadata' {..} =+    _salt+      `Prelude.hashWithSalt` longDescription+      `Prelude.hashWithSalt` ruleId+      `Prelude.hashWithSalt` ruleName+      `Prelude.hashWithSalt` ruleTags+      `Prelude.hashWithSalt` shortDescription++instance Prelude.NFData RuleMetadata where+  rnf RuleMetadata' {..} =+    Prelude.rnf longDescription+      `Prelude.seq` Prelude.rnf ruleId+      `Prelude.seq` Prelude.rnf ruleName+      `Prelude.seq` Prelude.rnf ruleTags+      `Prelude.seq` Prelude.rnf shortDescription
+ gen/Amazonka/CodeGuruReviewer/Types/S3BucketRepository.hs view
@@ -0,0 +1,106 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CodeGuruReviewer.Types.S3BucketRepository+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.CodeGuruReviewer.Types.S3BucketRepository where++import Amazonka.CodeGuruReviewer.Types.S3RepositoryDetails+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Information about an associated repository in an S3 bucket. The+-- associated repository contains a source code .zip file and a build+-- artifacts .zip file that contains .jar or .class files.+--+-- /See:/ 'newS3BucketRepository' smart constructor.+data S3BucketRepository = S3BucketRepository'+  { -- | An @S3RepositoryDetails@ object that specifies the name of an S3 bucket+    -- and a @CodeArtifacts@ object. The @CodeArtifacts@ object includes the S3+    -- object keys for a source code .zip file and for a build artifacts .zip+    -- file.+    details :: Prelude.Maybe S3RepositoryDetails,+    -- | The name of the repository when the @ProviderType@ is @S3Bucket@.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'S3BucketRepository' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'details', 's3BucketRepository_details' - An @S3RepositoryDetails@ object that specifies the name of an S3 bucket+-- and a @CodeArtifacts@ object. The @CodeArtifacts@ object includes the S3+-- object keys for a source code .zip file and for a build artifacts .zip+-- file.+--+-- 'name', 's3BucketRepository_name' - The name of the repository when the @ProviderType@ is @S3Bucket@.+newS3BucketRepository ::+  -- | 'name'+  Prelude.Text ->+  S3BucketRepository+newS3BucketRepository pName_ =+  S3BucketRepository'+    { details = Prelude.Nothing,+      name = pName_+    }++-- | An @S3RepositoryDetails@ object that specifies the name of an S3 bucket+-- and a @CodeArtifacts@ object. The @CodeArtifacts@ object includes the S3+-- object keys for a source code .zip file and for a build artifacts .zip+-- file.+s3BucketRepository_details :: Lens.Lens' S3BucketRepository (Prelude.Maybe S3RepositoryDetails)+s3BucketRepository_details = Lens.lens (\S3BucketRepository' {details} -> details) (\s@S3BucketRepository' {} a -> s {details = a} :: S3BucketRepository)++-- | The name of the repository when the @ProviderType@ is @S3Bucket@.+s3BucketRepository_name :: Lens.Lens' S3BucketRepository Prelude.Text+s3BucketRepository_name = Lens.lens (\S3BucketRepository' {name} -> name) (\s@S3BucketRepository' {} a -> s {name = a} :: S3BucketRepository)++instance Data.FromJSON S3BucketRepository where+  parseJSON =+    Data.withObject+      "S3BucketRepository"+      ( \x ->+          S3BucketRepository'+            Prelude.<$> (x Data..:? "Details")+            Prelude.<*> (x Data..: "Name")+      )++instance Prelude.Hashable S3BucketRepository where+  hashWithSalt _salt S3BucketRepository' {..} =+    _salt+      `Prelude.hashWithSalt` details+      `Prelude.hashWithSalt` name++instance Prelude.NFData S3BucketRepository where+  rnf S3BucketRepository' {..} =+    Prelude.rnf details `Prelude.seq` Prelude.rnf name++instance Data.ToJSON S3BucketRepository where+  toJSON S3BucketRepository' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Details" Data..=) Prelude.<$> details,+            Prelude.Just ("Name" Data..= name)+          ]+      )
+ gen/Amazonka/CodeGuruReviewer/Types/S3Repository.hs view
@@ -0,0 +1,90 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CodeGuruReviewer.Types.S3Repository+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.CodeGuruReviewer.Types.S3Repository where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Information about a repository in an S3 bucket.+--+-- /See:/ 'newS3Repository' smart constructor.+data S3Repository = S3Repository'+  { -- | The name of the repository in the S3 bucket.+    name :: Prelude.Text,+    -- | The name of the S3 bucket used for associating a new S3 repository. It+    -- must begin with @codeguru-reviewer-@.+    bucketName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'S3Repository' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'name', 's3Repository_name' - The name of the repository in the S3 bucket.+--+-- 'bucketName', 's3Repository_bucketName' - The name of the S3 bucket used for associating a new S3 repository. It+-- must begin with @codeguru-reviewer-@.+newS3Repository ::+  -- | 'name'+  Prelude.Text ->+  -- | 'bucketName'+  Prelude.Text ->+  S3Repository+newS3Repository pName_ pBucketName_ =+  S3Repository'+    { name = pName_,+      bucketName = pBucketName_+    }++-- | The name of the repository in the S3 bucket.+s3Repository_name :: Lens.Lens' S3Repository Prelude.Text+s3Repository_name = Lens.lens (\S3Repository' {name} -> name) (\s@S3Repository' {} a -> s {name = a} :: S3Repository)++-- | The name of the S3 bucket used for associating a new S3 repository. It+-- must begin with @codeguru-reviewer-@.+s3Repository_bucketName :: Lens.Lens' S3Repository Prelude.Text+s3Repository_bucketName = Lens.lens (\S3Repository' {bucketName} -> bucketName) (\s@S3Repository' {} a -> s {bucketName = a} :: S3Repository)++instance Prelude.Hashable S3Repository where+  hashWithSalt _salt S3Repository' {..} =+    _salt+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` bucketName++instance Prelude.NFData S3Repository where+  rnf S3Repository' {..} =+    Prelude.rnf name+      `Prelude.seq` Prelude.rnf bucketName++instance Data.ToJSON S3Repository where+  toJSON S3Repository' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("Name" Data..= name),+            Prelude.Just ("BucketName" Data..= bucketName)+          ]+      )
+ gen/Amazonka/CodeGuruReviewer/Types/S3RepositoryDetails.hs view
@@ -0,0 +1,105 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CodeGuruReviewer.Types.S3RepositoryDetails+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.CodeGuruReviewer.Types.S3RepositoryDetails where++import Amazonka.CodeGuruReviewer.Types.CodeArtifacts+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Specifies the name of an S3 bucket and a @CodeArtifacts@ object that+-- contains the S3 object keys for a source code .zip file and for a build+-- artifacts .zip file that contains .jar or .class files.+--+-- /See:/ 'newS3RepositoryDetails' smart constructor.+data S3RepositoryDetails = S3RepositoryDetails'+  { -- | The name of the S3 bucket used for associating a new S3 repository. It+    -- must begin with @codeguru-reviewer-@.+    bucketName :: Prelude.Maybe Prelude.Text,+    -- | A @CodeArtifacts@ object. The @CodeArtifacts@ object includes the S3+    -- object key for a source code .zip file and for a build artifacts .zip+    -- file that contains .jar or .class files.+    codeArtifacts :: Prelude.Maybe CodeArtifacts+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'S3RepositoryDetails' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'bucketName', 's3RepositoryDetails_bucketName' - The name of the S3 bucket used for associating a new S3 repository. It+-- must begin with @codeguru-reviewer-@.+--+-- 'codeArtifacts', 's3RepositoryDetails_codeArtifacts' - A @CodeArtifacts@ object. The @CodeArtifacts@ object includes the S3+-- object key for a source code .zip file and for a build artifacts .zip+-- file that contains .jar or .class files.+newS3RepositoryDetails ::+  S3RepositoryDetails+newS3RepositoryDetails =+  S3RepositoryDetails'+    { bucketName = Prelude.Nothing,+      codeArtifacts = Prelude.Nothing+    }++-- | The name of the S3 bucket used for associating a new S3 repository. It+-- must begin with @codeguru-reviewer-@.+s3RepositoryDetails_bucketName :: Lens.Lens' S3RepositoryDetails (Prelude.Maybe Prelude.Text)+s3RepositoryDetails_bucketName = Lens.lens (\S3RepositoryDetails' {bucketName} -> bucketName) (\s@S3RepositoryDetails' {} a -> s {bucketName = a} :: S3RepositoryDetails)++-- | A @CodeArtifacts@ object. The @CodeArtifacts@ object includes the S3+-- object key for a source code .zip file and for a build artifacts .zip+-- file that contains .jar or .class files.+s3RepositoryDetails_codeArtifacts :: Lens.Lens' S3RepositoryDetails (Prelude.Maybe CodeArtifacts)+s3RepositoryDetails_codeArtifacts = Lens.lens (\S3RepositoryDetails' {codeArtifacts} -> codeArtifacts) (\s@S3RepositoryDetails' {} a -> s {codeArtifacts = a} :: S3RepositoryDetails)++instance Data.FromJSON S3RepositoryDetails where+  parseJSON =+    Data.withObject+      "S3RepositoryDetails"+      ( \x ->+          S3RepositoryDetails'+            Prelude.<$> (x Data..:? "BucketName")+            Prelude.<*> (x Data..:? "CodeArtifacts")+      )++instance Prelude.Hashable S3RepositoryDetails where+  hashWithSalt _salt S3RepositoryDetails' {..} =+    _salt+      `Prelude.hashWithSalt` bucketName+      `Prelude.hashWithSalt` codeArtifacts++instance Prelude.NFData S3RepositoryDetails where+  rnf S3RepositoryDetails' {..} =+    Prelude.rnf bucketName+      `Prelude.seq` Prelude.rnf codeArtifacts++instance Data.ToJSON S3RepositoryDetails where+  toJSON S3RepositoryDetails' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("BucketName" Data..=) Prelude.<$> bucketName,+            ("CodeArtifacts" Data..=) Prelude.<$> codeArtifacts+          ]+      )
+ gen/Amazonka/CodeGuruReviewer/Types/Severity.hs view
@@ -0,0 +1,86 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CodeGuruReviewer.Types.Severity+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.CodeGuruReviewer.Types.Severity+  ( Severity+      ( ..,+        Severity_Critical,+        Severity_High,+        Severity_Info,+        Severity_Low,+        Severity_Medium+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype Severity = Severity'+  { fromSeverity ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern Severity_Critical :: Severity+pattern Severity_Critical = Severity' "Critical"++pattern Severity_High :: Severity+pattern Severity_High = Severity' "High"++pattern Severity_Info :: Severity+pattern Severity_Info = Severity' "Info"++pattern Severity_Low :: Severity+pattern Severity_Low = Severity' "Low"++pattern Severity_Medium :: Severity+pattern Severity_Medium = Severity' "Medium"++{-# COMPLETE+  Severity_Critical,+  Severity_High,+  Severity_Info,+  Severity_Low,+  Severity_Medium,+  Severity'+  #-}
+ gen/Amazonka/CodeGuruReviewer/Types/SourceCodeType.hs view
@@ -0,0 +1,187 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CodeGuruReviewer.Types.SourceCodeType+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.CodeGuruReviewer.Types.SourceCodeType where++import Amazonka.CodeGuruReviewer.Types.BranchDiffSourceCodeType+import Amazonka.CodeGuruReviewer.Types.CommitDiffSourceCodeType+import Amazonka.CodeGuruReviewer.Types.RepositoryHeadSourceCodeType+import Amazonka.CodeGuruReviewer.Types.RequestMetadata+import Amazonka.CodeGuruReviewer.Types.S3BucketRepository+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Specifies the source code that is analyzed in a code review.+--+-- /See:/ 'newSourceCodeType' smart constructor.+data SourceCodeType = SourceCodeType'+  { -- | A type of+    -- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_SourceCodeType SourceCodeType>+    -- that specifies a source branch name and a destination branch name in an+    -- associated repository.+    branchDiff :: Prelude.Maybe BranchDiffSourceCodeType,+    -- | A+    -- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_SourceCodeType SourceCodeType>+    -- that specifies a commit diff created by a pull request on an associated+    -- repository.+    commitDiff :: Prelude.Maybe CommitDiffSourceCodeType,+    repositoryHead :: Prelude.Maybe RepositoryHeadSourceCodeType,+    -- | Metadata that is associated with a code review. This applies to any type+    -- of code review supported by CodeGuru Reviewer. The @RequestMetadaa@+    -- field captures any event metadata. For example, it might capture+    -- metadata associated with an event trigger, such as a push or a pull+    -- request.+    requestMetadata :: Prelude.Maybe RequestMetadata,+    -- | Information about an associated repository in an S3 bucket that includes+    -- its name and an @S3RepositoryDetails@ object. The @S3RepositoryDetails@+    -- object includes the name of an S3 bucket, an S3 key for a source code+    -- .zip file, and an S3 key for a build artifacts .zip file.+    -- @S3BucketRepository@ is required in+    -- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_SourceCodeType SourceCodeType>+    -- for @S3BucketRepository@ based code reviews.+    s3BucketRepository :: Prelude.Maybe S3BucketRepository+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SourceCodeType' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'branchDiff', 'sourceCodeType_branchDiff' - A type of+-- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_SourceCodeType SourceCodeType>+-- that specifies a source branch name and a destination branch name in an+-- associated repository.+--+-- 'commitDiff', 'sourceCodeType_commitDiff' - A+-- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_SourceCodeType SourceCodeType>+-- that specifies a commit diff created by a pull request on an associated+-- repository.+--+-- 'repositoryHead', 'sourceCodeType_repositoryHead' - Undocumented member.+--+-- 'requestMetadata', 'sourceCodeType_requestMetadata' - Metadata that is associated with a code review. This applies to any type+-- of code review supported by CodeGuru Reviewer. The @RequestMetadaa@+-- field captures any event metadata. For example, it might capture+-- metadata associated with an event trigger, such as a push or a pull+-- request.+--+-- 's3BucketRepository', 'sourceCodeType_s3BucketRepository' - Information about an associated repository in an S3 bucket that includes+-- its name and an @S3RepositoryDetails@ object. The @S3RepositoryDetails@+-- object includes the name of an S3 bucket, an S3 key for a source code+-- .zip file, and an S3 key for a build artifacts .zip file.+-- @S3BucketRepository@ is required in+-- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_SourceCodeType SourceCodeType>+-- for @S3BucketRepository@ based code reviews.+newSourceCodeType ::+  SourceCodeType+newSourceCodeType =+  SourceCodeType'+    { branchDiff = Prelude.Nothing,+      commitDiff = Prelude.Nothing,+      repositoryHead = Prelude.Nothing,+      requestMetadata = Prelude.Nothing,+      s3BucketRepository = Prelude.Nothing+    }++-- | A type of+-- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_SourceCodeType SourceCodeType>+-- that specifies a source branch name and a destination branch name in an+-- associated repository.+sourceCodeType_branchDiff :: Lens.Lens' SourceCodeType (Prelude.Maybe BranchDiffSourceCodeType)+sourceCodeType_branchDiff = Lens.lens (\SourceCodeType' {branchDiff} -> branchDiff) (\s@SourceCodeType' {} a -> s {branchDiff = a} :: SourceCodeType)++-- | A+-- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_SourceCodeType SourceCodeType>+-- that specifies a commit diff created by a pull request on an associated+-- repository.+sourceCodeType_commitDiff :: Lens.Lens' SourceCodeType (Prelude.Maybe CommitDiffSourceCodeType)+sourceCodeType_commitDiff = Lens.lens (\SourceCodeType' {commitDiff} -> commitDiff) (\s@SourceCodeType' {} a -> s {commitDiff = a} :: SourceCodeType)++-- | Undocumented member.+sourceCodeType_repositoryHead :: Lens.Lens' SourceCodeType (Prelude.Maybe RepositoryHeadSourceCodeType)+sourceCodeType_repositoryHead = Lens.lens (\SourceCodeType' {repositoryHead} -> repositoryHead) (\s@SourceCodeType' {} a -> s {repositoryHead = a} :: SourceCodeType)++-- | Metadata that is associated with a code review. This applies to any type+-- of code review supported by CodeGuru Reviewer. The @RequestMetadaa@+-- field captures any event metadata. For example, it might capture+-- metadata associated with an event trigger, such as a push or a pull+-- request.+sourceCodeType_requestMetadata :: Lens.Lens' SourceCodeType (Prelude.Maybe RequestMetadata)+sourceCodeType_requestMetadata = Lens.lens (\SourceCodeType' {requestMetadata} -> requestMetadata) (\s@SourceCodeType' {} a -> s {requestMetadata = a} :: SourceCodeType)++-- | Information about an associated repository in an S3 bucket that includes+-- its name and an @S3RepositoryDetails@ object. The @S3RepositoryDetails@+-- object includes the name of an S3 bucket, an S3 key for a source code+-- .zip file, and an S3 key for a build artifacts .zip file.+-- @S3BucketRepository@ is required in+-- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_SourceCodeType SourceCodeType>+-- for @S3BucketRepository@ based code reviews.+sourceCodeType_s3BucketRepository :: Lens.Lens' SourceCodeType (Prelude.Maybe S3BucketRepository)+sourceCodeType_s3BucketRepository = Lens.lens (\SourceCodeType' {s3BucketRepository} -> s3BucketRepository) (\s@SourceCodeType' {} a -> s {s3BucketRepository = a} :: SourceCodeType)++instance Data.FromJSON SourceCodeType where+  parseJSON =+    Data.withObject+      "SourceCodeType"+      ( \x ->+          SourceCodeType'+            Prelude.<$> (x Data..:? "BranchDiff")+            Prelude.<*> (x Data..:? "CommitDiff")+            Prelude.<*> (x Data..:? "RepositoryHead")+            Prelude.<*> (x Data..:? "RequestMetadata")+            Prelude.<*> (x Data..:? "S3BucketRepository")+      )++instance Prelude.Hashable SourceCodeType where+  hashWithSalt _salt SourceCodeType' {..} =+    _salt+      `Prelude.hashWithSalt` branchDiff+      `Prelude.hashWithSalt` commitDiff+      `Prelude.hashWithSalt` repositoryHead+      `Prelude.hashWithSalt` requestMetadata+      `Prelude.hashWithSalt` s3BucketRepository++instance Prelude.NFData SourceCodeType where+  rnf SourceCodeType' {..} =+    Prelude.rnf branchDiff+      `Prelude.seq` Prelude.rnf commitDiff+      `Prelude.seq` Prelude.rnf repositoryHead+      `Prelude.seq` Prelude.rnf requestMetadata+      `Prelude.seq` Prelude.rnf s3BucketRepository++instance Data.ToJSON SourceCodeType where+  toJSON SourceCodeType' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("BranchDiff" Data..=) Prelude.<$> branchDiff,+            ("CommitDiff" Data..=) Prelude.<$> commitDiff,+            ("RepositoryHead" Data..=)+              Prelude.<$> repositoryHead,+            ("RequestMetadata" Data..=)+              Prelude.<$> requestMetadata,+            ("S3BucketRepository" Data..=)+              Prelude.<$> s3BucketRepository+          ]+      )
+ gen/Amazonka/CodeGuruReviewer/Types/ThirdPartySourceRepository.hs view
@@ -0,0 +1,129 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CodeGuruReviewer.Types.ThirdPartySourceRepository+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.CodeGuruReviewer.Types.ThirdPartySourceRepository where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Information about a third-party source repository connected to CodeGuru+-- Reviewer.+--+-- /See:/ 'newThirdPartySourceRepository' smart constructor.+data ThirdPartySourceRepository = ThirdPartySourceRepository'+  { -- | The name of the third party source repository.+    name :: Prelude.Text,+    -- | The Amazon Resource Name (ARN) of an Amazon Web Services CodeStar+    -- Connections connection. Its format is+    -- @arn:aws:codestar-connections:region-id:aws-account_id:connection\/connection-id@.+    -- For more information, see+    -- <https://docs.aws.amazon.com/codestar-connections/latest/APIReference/API_Connection.html Connection>+    -- in the /Amazon Web Services CodeStar Connections API Reference/.+    connectionArn :: Prelude.Text,+    -- | The owner of the repository. For a GitHub, GitHub Enterprise, or+    -- Bitbucket repository, this is the username for the account that owns the+    -- repository. For an S3 repository, this can be the username or Amazon Web+    -- Services account ID+    owner :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ThirdPartySourceRepository' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'name', 'thirdPartySourceRepository_name' - The name of the third party source repository.+--+-- 'connectionArn', 'thirdPartySourceRepository_connectionArn' - The Amazon Resource Name (ARN) of an Amazon Web Services CodeStar+-- Connections connection. Its format is+-- @arn:aws:codestar-connections:region-id:aws-account_id:connection\/connection-id@.+-- For more information, see+-- <https://docs.aws.amazon.com/codestar-connections/latest/APIReference/API_Connection.html Connection>+-- in the /Amazon Web Services CodeStar Connections API Reference/.+--+-- 'owner', 'thirdPartySourceRepository_owner' - The owner of the repository. For a GitHub, GitHub Enterprise, or+-- Bitbucket repository, this is the username for the account that owns the+-- repository. For an S3 repository, this can be the username or Amazon Web+-- Services account ID+newThirdPartySourceRepository ::+  -- | 'name'+  Prelude.Text ->+  -- | 'connectionArn'+  Prelude.Text ->+  -- | 'owner'+  Prelude.Text ->+  ThirdPartySourceRepository+newThirdPartySourceRepository+  pName_+  pConnectionArn_+  pOwner_ =+    ThirdPartySourceRepository'+      { name = pName_,+        connectionArn = pConnectionArn_,+        owner = pOwner_+      }++-- | The name of the third party source repository.+thirdPartySourceRepository_name :: Lens.Lens' ThirdPartySourceRepository Prelude.Text+thirdPartySourceRepository_name = Lens.lens (\ThirdPartySourceRepository' {name} -> name) (\s@ThirdPartySourceRepository' {} a -> s {name = a} :: ThirdPartySourceRepository)++-- | The Amazon Resource Name (ARN) of an Amazon Web Services CodeStar+-- Connections connection. Its format is+-- @arn:aws:codestar-connections:region-id:aws-account_id:connection\/connection-id@.+-- For more information, see+-- <https://docs.aws.amazon.com/codestar-connections/latest/APIReference/API_Connection.html Connection>+-- in the /Amazon Web Services CodeStar Connections API Reference/.+thirdPartySourceRepository_connectionArn :: Lens.Lens' ThirdPartySourceRepository Prelude.Text+thirdPartySourceRepository_connectionArn = Lens.lens (\ThirdPartySourceRepository' {connectionArn} -> connectionArn) (\s@ThirdPartySourceRepository' {} a -> s {connectionArn = a} :: ThirdPartySourceRepository)++-- | The owner of the repository. For a GitHub, GitHub Enterprise, or+-- Bitbucket repository, this is the username for the account that owns the+-- repository. For an S3 repository, this can be the username or Amazon Web+-- Services account ID+thirdPartySourceRepository_owner :: Lens.Lens' ThirdPartySourceRepository Prelude.Text+thirdPartySourceRepository_owner = Lens.lens (\ThirdPartySourceRepository' {owner} -> owner) (\s@ThirdPartySourceRepository' {} a -> s {owner = a} :: ThirdPartySourceRepository)++instance Prelude.Hashable ThirdPartySourceRepository where+  hashWithSalt _salt ThirdPartySourceRepository' {..} =+    _salt+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` connectionArn+      `Prelude.hashWithSalt` owner++instance Prelude.NFData ThirdPartySourceRepository where+  rnf ThirdPartySourceRepository' {..} =+    Prelude.rnf name+      `Prelude.seq` Prelude.rnf connectionArn+      `Prelude.seq` Prelude.rnf owner++instance Data.ToJSON ThirdPartySourceRepository where+  toJSON ThirdPartySourceRepository' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("Name" Data..= name),+            Prelude.Just ("ConnectionArn" Data..= connectionArn),+            Prelude.Just ("Owner" Data..= owner)+          ]+      )
+ gen/Amazonka/CodeGuruReviewer/Types/Type.hs view
@@ -0,0 +1,68 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CodeGuruReviewer.Types.Type+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.CodeGuruReviewer.Types.Type+  ( Type+      ( ..,+        Type_PullRequest,+        Type_RepositoryAnalysis+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype Type = Type' {fromType :: Data.Text}+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern Type_PullRequest :: Type+pattern Type_PullRequest = Type' "PullRequest"++pattern Type_RepositoryAnalysis :: Type+pattern Type_RepositoryAnalysis = Type' "RepositoryAnalysis"++{-# COMPLETE+  Type_PullRequest,+  Type_RepositoryAnalysis,+  Type'+  #-}
+ gen/Amazonka/CodeGuruReviewer/Types/VendorName.hs view
@@ -0,0 +1,76 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CodeGuruReviewer.Types.VendorName+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.CodeGuruReviewer.Types.VendorName+  ( VendorName+      ( ..,+        VendorName_GitHub,+        VendorName_GitLab,+        VendorName_NativeS3+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype VendorName = VendorName'+  { fromVendorName ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern VendorName_GitHub :: VendorName+pattern VendorName_GitHub = VendorName' "GitHub"++pattern VendorName_GitLab :: VendorName+pattern VendorName_GitLab = VendorName' "GitLab"++pattern VendorName_NativeS3 :: VendorName+pattern VendorName_NativeS3 = VendorName' "NativeS3"++{-# COMPLETE+  VendorName_GitHub,+  VendorName_GitLab,+  VendorName_NativeS3,+  VendorName'+  #-}
+ gen/Amazonka/CodeGuruReviewer/UntagResource.hs view
@@ -0,0 +1,175 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CodeGuruReviewer.UntagResource+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Removes a tag from an associated repository.+module Amazonka.CodeGuruReviewer.UntagResource+  ( -- * Creating a Request+    UntagResource (..),+    newUntagResource,++    -- * Request Lenses+    untagResource_resourceArn,+    untagResource_tagKeys,++    -- * Destructuring the Response+    UntagResourceResponse (..),+    newUntagResourceResponse,++    -- * Response Lenses+    untagResourceResponse_httpStatus,+  )+where++import Amazonka.CodeGuruReviewer.Types+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUntagResource' smart constructor.+data UntagResource = UntagResource'+  { -- | The Amazon Resource Name (ARN) of the+    -- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_RepositoryAssociation.html RepositoryAssociation>+    -- object. You can retrieve this ARN by calling+    -- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_ListRepositoryAssociations.html ListRepositoryAssociations>.+    resourceArn :: Prelude.Text,+    -- | A list of the keys for each tag you want to remove from an associated+    -- repository.+    tagKeys :: Prelude.NonEmpty Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UntagResource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'resourceArn', 'untagResource_resourceArn' - The Amazon Resource Name (ARN) of the+-- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_RepositoryAssociation.html RepositoryAssociation>+-- object. You can retrieve this ARN by calling+-- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_ListRepositoryAssociations.html ListRepositoryAssociations>.+--+-- 'tagKeys', 'untagResource_tagKeys' - A list of the keys for each tag you want to remove from an associated+-- repository.+newUntagResource ::+  -- | 'resourceArn'+  Prelude.Text ->+  -- | 'tagKeys'+  Prelude.NonEmpty Prelude.Text ->+  UntagResource+newUntagResource pResourceArn_ pTagKeys_ =+  UntagResource'+    { resourceArn = pResourceArn_,+      tagKeys = Lens.coerced Lens.# pTagKeys_+    }++-- | The Amazon Resource Name (ARN) of the+-- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_RepositoryAssociation.html RepositoryAssociation>+-- object. You can retrieve this ARN by calling+-- <https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_ListRepositoryAssociations.html ListRepositoryAssociations>.+untagResource_resourceArn :: Lens.Lens' UntagResource Prelude.Text+untagResource_resourceArn = Lens.lens (\UntagResource' {resourceArn} -> resourceArn) (\s@UntagResource' {} a -> s {resourceArn = a} :: UntagResource)++-- | A list of the keys for each tag you want to remove from an associated+-- repository.+untagResource_tagKeys :: Lens.Lens' UntagResource (Prelude.NonEmpty Prelude.Text)+untagResource_tagKeys = Lens.lens (\UntagResource' {tagKeys} -> tagKeys) (\s@UntagResource' {} a -> s {tagKeys = a} :: UntagResource) Prelude.. Lens.coerced++instance Core.AWSRequest UntagResource where+  type+    AWSResponse UntagResource =+      UntagResourceResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          UntagResourceResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UntagResource where+  hashWithSalt _salt UntagResource' {..} =+    _salt+      `Prelude.hashWithSalt` resourceArn+      `Prelude.hashWithSalt` tagKeys++instance Prelude.NFData UntagResource where+  rnf UntagResource' {..} =+    Prelude.rnf resourceArn+      `Prelude.seq` Prelude.rnf tagKeys++instance Data.ToHeaders UntagResource where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath UntagResource where+  toPath UntagResource' {..} =+    Prelude.mconcat ["/tags/", Data.toBS resourceArn]++instance Data.ToQuery UntagResource where+  toQuery UntagResource' {..} =+    Prelude.mconcat+      ["tagKeys" Data.=: Data.toQueryList "member" tagKeys]++-- | /See:/ 'newUntagResourceResponse' smart constructor.+data UntagResourceResponse = UntagResourceResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UntagResourceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpStatus', 'untagResourceResponse_httpStatus' - The response's http status code.+newUntagResourceResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UntagResourceResponse+newUntagResourceResponse pHttpStatus_ =+  UntagResourceResponse' {httpStatus = pHttpStatus_}++-- | The response's http status code.+untagResourceResponse_httpStatus :: Lens.Lens' UntagResourceResponse Prelude.Int+untagResourceResponse_httpStatus = Lens.lens (\UntagResourceResponse' {httpStatus} -> httpStatus) (\s@UntagResourceResponse' {} a -> s {httpStatus = a} :: UntagResourceResponse)++instance Prelude.NFData UntagResourceResponse where+  rnf UntagResourceResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/CodeGuruReviewer/Waiters.hs view
@@ -0,0 +1,103 @@+{-# LANGUAGE DisambiguateRecordFields #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CodeGuruReviewer.Waiters+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.CodeGuruReviewer.Waiters where++import Amazonka.CodeGuruReviewer.DescribeCodeReview+import Amazonka.CodeGuruReviewer.DescribeRepositoryAssociation+import Amazonka.CodeGuruReviewer.Lens+import Amazonka.CodeGuruReviewer.Types+import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Polls 'Amazonka.CodeGuruReviewer.DescribeCodeReview' every 10 seconds until a successful state is reached. An error is returned after 180 failed checks.+newCodeReviewCompleted :: Core.Wait DescribeCodeReview+newCodeReviewCompleted =+  Core.Wait+    { Core.name = "CodeReviewCompleted",+      Core.attempts = 180,+      Core.delay = 10,+      Core.acceptors =+        [ Core.matchAll+            "Completed"+            Core.AcceptSuccess+            ( describeCodeReviewResponse_codeReview+                Prelude.. Lens._Just+                Prelude.. codeReview_state+                Prelude.. Lens._Just+                Prelude.. Lens.to Data.toTextCI+            ),+          Core.matchAll+            "Failed"+            Core.AcceptFailure+            ( describeCodeReviewResponse_codeReview+                Prelude.. Lens._Just+                Prelude.. codeReview_state+                Prelude.. Lens._Just+                Prelude.. Lens.to Data.toTextCI+            ),+          Core.matchAll+            "Pending"+            Core.AcceptRetry+            ( describeCodeReviewResponse_codeReview+                Prelude.. Lens._Just+                Prelude.. codeReview_state+                Prelude.. Lens._Just+                Prelude.. Lens.to Data.toTextCI+            )+        ]+    }++-- | Polls 'Amazonka.CodeGuruReviewer.DescribeRepositoryAssociation' every 10 seconds until a successful state is reached. An error is returned after 30 failed checks.+newRepositoryAssociationSucceeded :: Core.Wait DescribeRepositoryAssociation+newRepositoryAssociationSucceeded =+  Core.Wait+    { Core.name =+        "RepositoryAssociationSucceeded",+      Core.attempts = 30,+      Core.delay = 10,+      Core.acceptors =+        [ Core.matchAll+            "Associated"+            Core.AcceptSuccess+            ( describeRepositoryAssociationResponse_repositoryAssociation+                Prelude.. Lens._Just+                Prelude.. repositoryAssociation_state+                Prelude.. Lens._Just+                Prelude.. Lens.to Data.toTextCI+            ),+          Core.matchAll+            "Failed"+            Core.AcceptFailure+            ( describeRepositoryAssociationResponse_repositoryAssociation+                Prelude.. Lens._Just+                Prelude.. repositoryAssociation_state+                Prelude.. Lens._Just+                Prelude.. Lens.to Data.toTextCI+            ),+          Core.matchAll+            "Associating"+            Core.AcceptRetry+            ( describeRepositoryAssociationResponse_repositoryAssociation+                Prelude.. Lens._Just+                Prelude.. repositoryAssociation_state+                Prelude.. Lens._Just+                Prelude.. Lens.to Data.toTextCI+            )+        ]+    }
+ src/.gitkeep view
+ test/Main.hs view
@@ -0,0 +1,23 @@+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module      : Main+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Main (main) where++import Test.Amazonka.CodeGuruReviewer+import Test.Amazonka.CodeGuruReviewer.Internal+import Test.Tasty++main :: IO ()+main =+  defaultMain $+    testGroup+      "CodeGuruReviewer"+      [ testGroup "tests" tests,+        testGroup "fixtures" fixtures+      ]
+ test/Test/Amazonka/CodeGuruReviewer.hs view
@@ -0,0 +1,20 @@+-- |+-- Module      : Test.Amazonka.CodeGuruReviewer+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Test.Amazonka.CodeGuruReviewer+  ( tests,+    fixtures,+  )+where++import Test.Tasty (TestTree)++tests :: [TestTree]+tests = []++fixtures :: [TestTree]+fixtures = []
+ test/Test/Amazonka/CodeGuruReviewer/Internal.hs view
@@ -0,0 +1,8 @@+-- |+-- Module      : Test.Amazonka.CodeGuruReviewer.Internal+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Test.Amazonka.CodeGuruReviewer.Internal where
+ test/Test/Amazonka/Gen/CodeGuruReviewer.hs view
@@ -0,0 +1,318 @@+{-# OPTIONS_GHC -fno-warn-orphans #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Test.Amazonka.Gen.CodeGuruReviewer+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Test.Amazonka.Gen.CodeGuruReviewer where++import Amazonka.CodeGuruReviewer+import qualified Data.Proxy as Proxy+import Test.Amazonka.CodeGuruReviewer.Internal+import Test.Amazonka.Fixture+import Test.Amazonka.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"+--         [ requestAssociateRepository $+--             newAssociateRepository+--+--         , requestCreateCodeReview $+--             newCreateCodeReview+--+--         , requestDescribeCodeReview $+--             newDescribeCodeReview+--+--         , requestDescribeRecommendationFeedback $+--             newDescribeRecommendationFeedback+--+--         , requestDescribeRepositoryAssociation $+--             newDescribeRepositoryAssociation+--+--         , requestDisassociateRepository $+--             newDisassociateRepository+--+--         , requestListCodeReviews $+--             newListCodeReviews+--+--         , requestListRecommendationFeedback $+--             newListRecommendationFeedback+--+--         , requestListRecommendations $+--             newListRecommendations+--+--         , requestListRepositoryAssociations $+--             newListRepositoryAssociations+--+--         , requestListTagsForResource $+--             newListTagsForResource+--+--         , requestPutRecommendationFeedback $+--             newPutRecommendationFeedback+--+--         , requestTagResource $+--             newTagResource+--+--         , requestUntagResource $+--             newUntagResource+--+--           ]++--     , testGroup "response"+--         [ responseAssociateRepository $+--             newAssociateRepositoryResponse+--+--         , responseCreateCodeReview $+--             newCreateCodeReviewResponse+--+--         , responseDescribeCodeReview $+--             newDescribeCodeReviewResponse+--+--         , responseDescribeRecommendationFeedback $+--             newDescribeRecommendationFeedbackResponse+--+--         , responseDescribeRepositoryAssociation $+--             newDescribeRepositoryAssociationResponse+--+--         , responseDisassociateRepository $+--             newDisassociateRepositoryResponse+--+--         , responseListCodeReviews $+--             newListCodeReviewsResponse+--+--         , responseListRecommendationFeedback $+--             newListRecommendationFeedbackResponse+--+--         , responseListRecommendations $+--             newListRecommendationsResponse+--+--         , responseListRepositoryAssociations $+--             newListRepositoryAssociationsResponse+--+--         , responseListTagsForResource $+--             newListTagsForResourceResponse+--+--         , responsePutRecommendationFeedback $+--             newPutRecommendationFeedbackResponse+--+--         , responseTagResource $+--             newTagResourceResponse+--+--         , responseUntagResource $+--             newUntagResourceResponse+--+--           ]+--     ]++-- Requests++requestAssociateRepository :: AssociateRepository -> TestTree+requestAssociateRepository =+  req+    "AssociateRepository"+    "fixture/AssociateRepository.yaml"++requestCreateCodeReview :: CreateCodeReview -> TestTree+requestCreateCodeReview =+  req+    "CreateCodeReview"+    "fixture/CreateCodeReview.yaml"++requestDescribeCodeReview :: DescribeCodeReview -> TestTree+requestDescribeCodeReview =+  req+    "DescribeCodeReview"+    "fixture/DescribeCodeReview.yaml"++requestDescribeRecommendationFeedback :: DescribeRecommendationFeedback -> TestTree+requestDescribeRecommendationFeedback =+  req+    "DescribeRecommendationFeedback"+    "fixture/DescribeRecommendationFeedback.yaml"++requestDescribeRepositoryAssociation :: DescribeRepositoryAssociation -> TestTree+requestDescribeRepositoryAssociation =+  req+    "DescribeRepositoryAssociation"+    "fixture/DescribeRepositoryAssociation.yaml"++requestDisassociateRepository :: DisassociateRepository -> TestTree+requestDisassociateRepository =+  req+    "DisassociateRepository"+    "fixture/DisassociateRepository.yaml"++requestListCodeReviews :: ListCodeReviews -> TestTree+requestListCodeReviews =+  req+    "ListCodeReviews"+    "fixture/ListCodeReviews.yaml"++requestListRecommendationFeedback :: ListRecommendationFeedback -> TestTree+requestListRecommendationFeedback =+  req+    "ListRecommendationFeedback"+    "fixture/ListRecommendationFeedback.yaml"++requestListRecommendations :: ListRecommendations -> TestTree+requestListRecommendations =+  req+    "ListRecommendations"+    "fixture/ListRecommendations.yaml"++requestListRepositoryAssociations :: ListRepositoryAssociations -> TestTree+requestListRepositoryAssociations =+  req+    "ListRepositoryAssociations"+    "fixture/ListRepositoryAssociations.yaml"++requestListTagsForResource :: ListTagsForResource -> TestTree+requestListTagsForResource =+  req+    "ListTagsForResource"+    "fixture/ListTagsForResource.yaml"++requestPutRecommendationFeedback :: PutRecommendationFeedback -> TestTree+requestPutRecommendationFeedback =+  req+    "PutRecommendationFeedback"+    "fixture/PutRecommendationFeedback.yaml"++requestTagResource :: TagResource -> TestTree+requestTagResource =+  req+    "TagResource"+    "fixture/TagResource.yaml"++requestUntagResource :: UntagResource -> TestTree+requestUntagResource =+  req+    "UntagResource"+    "fixture/UntagResource.yaml"++-- Responses++responseAssociateRepository :: AssociateRepositoryResponse -> TestTree+responseAssociateRepository =+  res+    "AssociateRepositoryResponse"+    "fixture/AssociateRepositoryResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy AssociateRepository)++responseCreateCodeReview :: CreateCodeReviewResponse -> TestTree+responseCreateCodeReview =+  res+    "CreateCodeReviewResponse"+    "fixture/CreateCodeReviewResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateCodeReview)++responseDescribeCodeReview :: DescribeCodeReviewResponse -> TestTree+responseDescribeCodeReview =+  res+    "DescribeCodeReviewResponse"+    "fixture/DescribeCodeReviewResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeCodeReview)++responseDescribeRecommendationFeedback :: DescribeRecommendationFeedbackResponse -> TestTree+responseDescribeRecommendationFeedback =+  res+    "DescribeRecommendationFeedbackResponse"+    "fixture/DescribeRecommendationFeedbackResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeRecommendationFeedback)++responseDescribeRepositoryAssociation :: DescribeRepositoryAssociationResponse -> TestTree+responseDescribeRepositoryAssociation =+  res+    "DescribeRepositoryAssociationResponse"+    "fixture/DescribeRepositoryAssociationResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeRepositoryAssociation)++responseDisassociateRepository :: DisassociateRepositoryResponse -> TestTree+responseDisassociateRepository =+  res+    "DisassociateRepositoryResponse"+    "fixture/DisassociateRepositoryResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DisassociateRepository)++responseListCodeReviews :: ListCodeReviewsResponse -> TestTree+responseListCodeReviews =+  res+    "ListCodeReviewsResponse"+    "fixture/ListCodeReviewsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListCodeReviews)++responseListRecommendationFeedback :: ListRecommendationFeedbackResponse -> TestTree+responseListRecommendationFeedback =+  res+    "ListRecommendationFeedbackResponse"+    "fixture/ListRecommendationFeedbackResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListRecommendationFeedback)++responseListRecommendations :: ListRecommendationsResponse -> TestTree+responseListRecommendations =+  res+    "ListRecommendationsResponse"+    "fixture/ListRecommendationsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListRecommendations)++responseListRepositoryAssociations :: ListRepositoryAssociationsResponse -> TestTree+responseListRepositoryAssociations =+  res+    "ListRepositoryAssociationsResponse"+    "fixture/ListRepositoryAssociationsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListRepositoryAssociations)++responseListTagsForResource :: ListTagsForResourceResponse -> TestTree+responseListTagsForResource =+  res+    "ListTagsForResourceResponse"+    "fixture/ListTagsForResourceResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListTagsForResource)++responsePutRecommendationFeedback :: PutRecommendationFeedbackResponse -> TestTree+responsePutRecommendationFeedback =+  res+    "PutRecommendationFeedbackResponse"+    "fixture/PutRecommendationFeedbackResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy PutRecommendationFeedback)++responseTagResource :: TagResourceResponse -> TestTree+responseTagResource =+  res+    "TagResourceResponse"+    "fixture/TagResourceResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy TagResource)++responseUntagResource :: UntagResourceResponse -> TestTree+responseUntagResource =+  res+    "UntagResourceResponse"+    "fixture/UntagResourceResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UntagResource)