Skip to content

put_recommendation_feedback

put_recommendation_feedback(
    code_review_arn: Arn,
    recommendation_id: RecommendationId,
    reactions: Reactions,
    *,
    config_overrides: Optional[CodeGuruReviewerClientConfig] = None,
) -> PutRecommendationFeedbackResponse

Stores customer feedback for a CodeGuru Reviewer recommendation. When this API is called again with different reactions the previous feedback is overwritten.

Parameters:

  • code_review_arn (Arn) –

    The Amazon Resource Name (ARN) of the CodeReview object.

  • recommendation_id (RecommendationId) –

    The recommendation ID that can be used to track the provided recommendations and then to collect the feedback.

  • reactions (Reactions) –

    List for storing reactions. Reactions are utf-8 text code for emojis. If you send an empty list it clears all your feedback.

Raises:

Source code in docs_src/capo_codeguru_reviewer/_services/code_guru_reviewer.py
def put_recommendation_feedback(
    self,
    code_review_arn: "capo_codeguru_reviewer.types.arn.Arn",
    recommendation_id: "capo_codeguru_reviewer.types.recommendation_id.RecommendationId",
    reactions: "capo_codeguru_reviewer.types.reactions.Reactions",
    *,
    config_overrides: Optional[CodeGuruReviewerClientConfig] = None,
) -> "capo_codeguru_reviewer.types.put_recommendation_feedback_response.PutRecommendationFeedbackResponse":
    """<p>Stores customer feedback for a CodeGuru Reviewer recommendation. When this API is called again with different reactions the previous feedback is overwritten.</p>

    Args:
        code_review_arn: <p>The Amazon Resource Name (ARN) of the <a href="https://docs.aws.amazon.com/codeguru/latest/reviewer-api/API_CodeReview.html">CodeReview</a> object. </p>
        recommendation_id: <p>The recommendation ID that can be used to track the provided recommendations and then to collect the feedback.</p>
        reactions: <p>List for storing reactions. Reactions are utf-8 text code for emojis. If you send an empty list it clears all your feedback.</p>

    Raises:
        capo_codeguru_reviewer.errors.access_denied_exception.AccessDeniedException: <p>You do not have sufficient access to perform this action.</p>
        capo_codeguru_reviewer.errors.internal_server_exception.InternalServerException: <p>The server encountered an internal error and is unable to complete the request.</p>
        capo_codeguru_reviewer.errors.resource_not_found_exception.ResourceNotFoundException: <p> The resource specified in the request was not found. </p>
        capo_codeguru_reviewer.errors.throttling_exception.ThrottlingException: <p>The request was denied due to request throttling.</p>
        capo_codeguru_reviewer.errors.validation_exception.ValidationException: <p>The input fails to satisfy the specified constraints.</p>
        capo_codeguru_reviewer.errors.UnknownServiceError: The service returned an error code this client does not model.
    """

    def _handler(
        req: "OperationRequest[capo_codeguru_reviewer.types.put_recommendation_feedback_request.PutRecommendationFeedbackRequest]",
    ) -> OperationResponse[
        "capo_codeguru_reviewer.types.put_recommendation_feedback_response.PutRecommendationFeedbackResponse"
    ]:
        import capo_codeguru_reviewer._operations.aws_guru_frontend_service.put_recommendation_feedback

        output, http_response = (
            capo_codeguru_reviewer._operations.aws_guru_frontend_service.put_recommendation_feedback.put_recommendation_feedback(
                req.options, req.input
            )
        )
        return OperationResponse(output=output, response=http_response)

    interceptors_, options_ = self.operation_options(
        config_overrides, OperationLogging("PutRecommendationFeedback")
    )
    input_: capo_codeguru_reviewer.types.put_recommendation_feedback_request.PutRecommendationFeedbackRequest = {
        "code_review_arn": code_review_arn,
        "recommendation_id": recommendation_id,
        "reactions": reactions,
    }

    response = execute_pipeline(
        OperationRequest(input=input_, options=options_),
        handler=_handler,
        interceptors=list(interceptors_),
    )
    response.response.close()
    return response.output