{-# 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 or 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