<filename>google/cloud/recommender_v1beta1/proto/recommender_service_pb2_grpc.py
# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
"""Client and server classes corresponding to protobuf-defined services."""
import grpc

from google.cloud.recommender_v1beta1.proto import (
    insight_pb2 as google_dot_cloud_dot_recommender__v1beta1_dot_proto_dot_insight__pb2,
)
from google.cloud.recommender_v1beta1.proto import (
    recommendation_pb2 as google_dot_cloud_dot_recommender__v1beta1_dot_proto_dot_recommendation__pb2,
)
from google.cloud.recommender_v1beta1.proto import (
    recommender_service_pb2 as google_dot_cloud_dot_recommender__v1beta1_dot_proto_dot_recommender__service__pb2,
)


class RecommenderStub(object):
    """Provides insights and recommendations for cloud customers for various
    categories like performance optimization, cost savings, reliability, feature
    discovery, etc. Insights and recommendations are generated automatically
    based on analysis of user resources, configuration and monitoring metrics.
    """

    def __init__(self, channel):
        """Constructor.

        Args:
            channel: A grpc.Channel.
        """
        self.ListInsights = channel.unary_unary(
            "/google.cloud.recommender.v1beta1.Recommender/ListInsights",
            request_serializer=google_dot_cloud_dot_recommender__v1beta1_dot_proto_dot_recommender__service__pb2.ListInsightsRequest.SerializeToString,
            response_deserializer=google_dot_cloud_dot_recommender__v1beta1_dot_proto_dot_recommender__service__pb2.ListInsightsResponse.FromString,
        )
        self.GetInsight = channel.unary_unary(
            "/google.cloud.recommender.v1beta1.Recommender/GetInsight",
            request_serializer=google_dot_cloud_dot_recommender__v1beta1_dot_proto_dot_recommender__service__pb2.GetInsightRequest.SerializeToString,
            response_deserializer=google_dot_cloud_dot_recommender__v1beta1_dot_proto_dot_insight__pb2.Insight.FromString,
        )
        self.MarkInsightAccepted = channel.unary_unary(
            "/google.cloud.recommender.v1beta1.Recommender/MarkInsightAccepted",
            request_serializer=google_dot_cloud_dot_recommender__v1beta1_dot_proto_dot_recommender__service__pb2.MarkInsightAcceptedRequest.SerializeToString,
            response_deserializer=google_dot_cloud_dot_recommender__v1beta1_dot_proto_dot_insight__pb2.Insight.FromString,
        )
        self.ListRecommendations = channel.unary_unary(
            "/google.cloud.recommender.v1beta1.Recommender/ListRecommendations",
            request_serializer=google_dot_cloud_dot_recommender__v1beta1_dot_proto_dot_recommender__service__pb2.ListRecommendationsRequest.SerializeToString,
            response_deserializer=google_dot_cloud_dot_recommender__v1beta1_dot_proto_dot_recommender__service__pb2.ListRecommendationsResponse.FromString,
        )
        self.GetRecommendation = channel.unary_unary(
            "/google.cloud.recommender.v1beta1.Recommender/GetRecommendation",
            request_serializer=google_dot_cloud_dot_recommender__v1beta1_dot_proto_dot_recommender__service__pb2.GetRecommendationRequest.SerializeToString,
            response_deserializer=google_dot_cloud_dot_recommender__v1beta1_dot_proto_dot_recommendation__pb2.Recommendation.FromString,
        )
        self.MarkRecommendationClaimed = channel.unary_unary(
            "/google.cloud.recommender.v1beta1.Recommender/MarkRecommendationClaimed",
            request_serializer=google_dot_cloud_dot_recommender__v1beta1_dot_proto_dot_recommender__service__pb2.MarkRecommendationClaimedRequest.SerializeToString,
            response_deserializer=google_dot_cloud_dot_recommender__v1beta1_dot_proto_dot_recommendation__pb2.Recommendation.FromString,
        )
        self.MarkRecommendationSucceeded = channel.unary_unary(
            "/google.cloud.recommender.v1beta1.Recommender/MarkRecommendationSucceeded",
            request_serializer=google_dot_cloud_dot_recommender__v1beta1_dot_proto_dot_recommender__service__pb2.MarkRecommendationSucceededRequest.SerializeToString,
            response_deserializer=google_dot_cloud_dot_recommender__v1beta1_dot_proto_dot_recommendation__pb2.Recommendation.FromString,
        )
        self.MarkRecommendationFailed = channel.unary_unary(
            "/google.cloud.recommender.v1beta1.Recommender/MarkRecommendationFailed",
            request_serializer=google_dot_cloud_dot_recommender__v1beta1_dot_proto_dot_recommender__service__pb2.MarkRecommendationFailedRequest.SerializeToString,
            response_deserializer=google_dot_cloud_dot_recommender__v1beta1_dot_proto_dot_recommendation__pb2.Recommendation.FromString,
        )


class RecommenderServicer(object):
    """Provides insights and recommendations for cloud customers for various
    categories like performance optimization, cost savings, reliability, feature
    discovery, etc. Insights and recommendations are generated automatically
    based on analysis of user resources, configuration and monitoring metrics.
    """

    def ListInsights(self, request, context):
        """Lists insights for a Cloud project. Requires the recommender.*.list IAM
        permission for the specified insight type.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details("Method not implemented!")
        raise NotImplementedError("Method not implemented!")

    def GetInsight(self, request, context):
        """Gets the requested insight. Requires the recommender.*.get IAM permission
        for the specified insight type.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details("Method not implemented!")
        raise NotImplementedError("Method not implemented!")

    def MarkInsightAccepted(self, request, context):
        """Marks the Insight State as Accepted. Users can use this method to
        indicate to the Recommender API that they have applied some action based
        on the insight. This stops the insight content from being updated.

        MarkInsightAccepted can be applied to insights in ACTIVE state. Requires
        the recommender.*.update IAM permission for the specified insight.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details("Method not implemented!")
        raise NotImplementedError("Method not implemented!")

    def ListRecommendations(self, request, context):
        """Lists recommendations for a Cloud project. Requires the recommender.*.list
        IAM permission for the specified recommender.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details("Method not implemented!")
        raise NotImplementedError("Method not implemented!")

    def GetRecommendation(self, request, context):
        """Gets the requested recommendation. Requires the recommender.*.get
        IAM permission for the specified recommender.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details("Method not implemented!")
        raise NotImplementedError("Method not implemented!")

    def MarkRecommendationClaimed(self, request, context):
        """Marks the Recommendation State as Claimed. Users can use this method to
        indicate to the Recommender API that they are starting to apply the
        recommendation themselves. This stops the recommendation content from being
        updated. Associated insights are frozen and placed in the ACCEPTED state.

        MarkRecommendationClaimed can be applied to recommendations in CLAIMED or
        ACTIVE state.

        Requires the recommender.*.update IAM permission for the specified
        recommender.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details("Method not implemented!")
        raise NotImplementedError("Method not implemented!")

    def MarkRecommendationSucceeded(self, request, context):
        """Marks the Recommendation State as Succeeded. Users can use this method to
        indicate to the Recommender API that they have applied the recommendation
        themselves, and the operation was successful. This stops the recommendation
        content from being updated. Associated insights are frozen and placed in
        the ACCEPTED state.

        MarkRecommendationSucceeded can be applied to recommendations in ACTIVE,
        CLAIMED, SUCCEEDED, or FAILED state.

        Requires the recommender.*.update IAM permission for the specified
        recommender.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details("Method not implemented!")
        raise NotImplementedError("Method not implemented!")

    def MarkRecommendationFailed(self, request, context):
        """Marks the Recommendation State as Failed. Users can use this method to
        indicate to the Recommender API that they have applied the recommendation
        themselves, and the operation failed. This stops the recommendation content
        from being updated. Associated insights are frozen and placed in the
        ACCEPTED state.

        MarkRecommendationFailed can be applied to recommendations in ACTIVE,
        CLAIMED, SUCCEEDED, or FAILED state.

        Requires the recommender.*.update IAM permission for the specified
        recommender.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details("Method not implemented!")
        raise NotImplementedError("Method not implemented!")


def add_RecommenderServicer_to_server(servicer, server):
    rpc_method_handlers = {
        "ListInsights": grpc.unary_unary_rpc_method_handler(
            servicer.ListInsights,
            request_deserializer=google_dot_cloud_dot_recommender__v1beta1_dot_proto_dot_recommender__service__pb2.ListInsightsRequest.FromString,
            response_serializer=google_dot_cloud_dot_recommender__v1beta1_dot_proto_dot_recommender__service__pb2.ListInsightsResponse.SerializeToString,
        ),
        "GetInsight": grpc.unary_unary_rpc_method_handler(
            servicer.GetInsight,
            request_deserializer=google_dot_cloud_dot_recommender__v1beta1_dot_proto_dot_recommender__service__pb2.GetInsightRequest.FromString,
            response_serializer=google_dot_cloud_dot_recommender__v1beta1_dot_proto_dot_insight__pb2.Insight.SerializeToString,
        ),
        "MarkInsightAccepted": grpc.unary_unary_rpc_method_handler(
            servicer.MarkInsightAccepted,
            request_deserializer=google_dot_cloud_dot_recommender__v1beta1_dot_proto_dot_recommender__service__pb2.MarkInsightAcceptedRequest.FromString,
            response_serializer=google_dot_cloud_dot_recommender__v1beta1_dot_proto_dot_insight__pb2.Insight.SerializeToString,
        ),
        "ListRecommendations": grpc.unary_unary_rpc_method_handler(
            servicer.ListRecommendations,
            request_deserializer=google_dot_cloud_dot_recommender__v1beta1_dot_proto_dot_recommender__service__pb2.ListRecommendationsRequest.FromString,
            response_serializer=google_dot_cloud_dot_recommender__v1beta1_dot_proto_dot_recommender__service__pb2.ListRecommendationsResponse.SerializeToString,
        ),
        "GetRecommendation": grpc.unary_unary_rpc_method_handler(
            servicer.GetRecommendation,
            request_deserializer=google_dot_cloud_dot_recommender__v1beta1_dot_proto_dot_recommender__service__pb2.GetRecommendationRequest.FromString,
            response_serializer=google_dot_cloud_dot_recommender__v1beta1_dot_proto_dot_recommendation__pb2.Recommendation.SerializeToString,
        ),
        "MarkRecommendationClaimed": grpc.unary_unary_rpc_method_handler(
            servicer.MarkRecommendationClaimed,
            request_deserializer=google_dot_cloud_dot_recommender__v1beta1_dot_proto_dot_recommender__service__pb2.MarkRecommendationClaimedRequest.FromString,
            response_serializer=google_dot_cloud_dot_recommender__v1beta1_dot_proto_dot_recommendation__pb2.Recommendation.SerializeToString,
        ),
        "MarkRecommendationSucceeded": grpc.unary_unary_rpc_method_handler(
            servicer.MarkRecommendationSucceeded,
            request_deserializer=google_dot_cloud_dot_recommender__v1beta1_dot_proto_dot_recommender__service__pb2.MarkRecommendationSucceededRequest.FromString,
            response_serializer=google_dot_cloud_dot_recommender__v1beta1_dot_proto_dot_recommendation__pb2.Recommendation.SerializeToString,
        ),
        "MarkRecommendationFailed": grpc.unary_unary_rpc_method_handler(
            servicer.MarkRecommendationFailed,
            request_deserializer=google_dot_cloud_dot_recommender__v1beta1_dot_proto_dot_recommender__service__pb2.MarkRecommendationFailedRequest.FromString,
            response_serializer=google_dot_cloud_dot_recommender__v1beta1_dot_proto_dot_recommendation__pb2.Recommendation.SerializeToString,
        ),
    }
    generic_handler = grpc.method_handlers_generic_handler(
        "google.cloud.recommender.v1beta1.Recommender", rpc_method_handlers
    )
    server.add_generic_rpc_handlers((generic_handler,))


# This class is part of an EXPERIMENTAL API.
class Recommender(object):
    """Provides insights and recommendations for cloud customers for various
    categories like performance optimization, cost savings, reliability, feature
    discovery, etc. Insights and recommendations are generated automatically
    based on analysis of user resources, configuration and monitoring metrics.
    """

    @staticmethod
    def ListInsights(
        request,
        target,
        options=(),
        channel_credentials=None,
        call_credentials=None,
        insecure=False,
        compression=None,
        wait_for_ready=None,
        timeout=None,
        metadata=None,
    ):
        return grpc.experimental.unary_unary(
            request,
            target,
            "/google.cloud.recommender.v1beta1.Recommender/ListInsights",
            google_dot_cloud_dot_recommender__v1beta1_dot_proto_dot_recommender__service__pb2.ListInsightsRequest.SerializeToString,
            google_dot_cloud_dot_recommender__v1beta1_dot_proto_dot_recommender__service__pb2.ListInsightsResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
        )

    @staticmethod
    def GetInsight(
        request,
        target,
        options=(),
        channel_credentials=None,
        call_credentials=None,
        insecure=False,
        compression=None,
        wait_for_ready=None,
        timeout=None,
        metadata=None,
    ):
        return grpc.experimental.unary_unary(
            request,
            target,
            "/google.cloud.recommender.v1beta1.Recommender/GetInsight",
            google_dot_cloud_dot_recommender__v1beta1_dot_proto_dot_recommender__service__pb2.GetInsightRequest.SerializeToString,
            google_dot_cloud_dot_recommender__v1beta1_dot_proto_dot_insight__pb2.Insight.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
        )

    @staticmethod
    def MarkInsightAccepted(
        request,
        target,
        options=(),
        channel_credentials=None,
        call_credentials=None,
        insecure=False,
        compression=None,
        wait_for_ready=None,
        timeout=None,
        metadata=None,
    ):
        return grpc.experimental.unary_unary(
            request,
            target,
            "/google.cloud.recommender.v1beta1.Recommender/MarkInsightAccepted",
            google_dot_cloud_dot_recommender__v1beta1_dot_proto_dot_recommender__service__pb2.MarkInsightAcceptedRequest.SerializeToString,
            google_dot_cloud_dot_recommender__v1beta1_dot_proto_dot_insight__pb2.Insight.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
        )

    @staticmethod
    def ListRecommendations(
        request,
        target,
        options=(),
        channel_credentials=None,
        call_credentials=None,
        insecure=False,
        compression=None,
        wait_for_ready=None,
        timeout=None,
        metadata=None,
    ):
        return grpc.experimental.unary_unary(
            request,
            target,
            "/google.cloud.recommender.v1beta1.Recommender/ListRecommendations",
            google_dot_cloud_dot_recommender__v1beta1_dot_proto_dot_recommender__service__pb2.ListRecommendationsRequest.SerializeToString,
            google_dot_cloud_dot_recommender__v1beta1_dot_proto_dot_recommender__service__pb2.ListRecommendationsResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
        )

    @staticmethod
    def GetRecommendation(
        request,
        target,
        options=(),
        channel_credentials=None,
        call_credentials=None,
        insecure=False,
        compression=None,
        wait_for_ready=None,
        timeout=None,
        metadata=None,
    ):
        return grpc.experimental.unary_unary(
            request,
            target,
            "/google.cloud.recommender.v1beta1.Recommender/GetRecommendation",
            google_dot_cloud_dot_recommender__v1beta1_dot_proto_dot_recommender__service__pb2.GetRecommendationRequest.SerializeToString,
            google_dot_cloud_dot_recommender__v1beta1_dot_proto_dot_recommendation__pb2.Recommendation.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
        )

    @staticmethod
    def MarkRecommendationClaimed(
        request,
        target,
        options=(),
        channel_credentials=None,
        call_credentials=None,
        insecure=False,
        compression=None,
        wait_for_ready=None,
        timeout=None,
        metadata=None,
    ):
        return grpc.experimental.unary_unary(
            request,
            target,
            "/google.cloud.recommender.v1beta1.Recommender/MarkRecommendationClaimed",
            google_dot_cloud_dot_recommender__v1beta1_dot_proto_dot_recommender__service__pb2.MarkRecommendationClaimedRequest.SerializeToString,
            google_dot_cloud_dot_recommender__v1beta1_dot_proto_dot_recommendation__pb2.Recommendation.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
        )

    @staticmethod
    def MarkRecommendationSucceeded(
        request,
        target,
        options=(),
        channel_credentials=None,
        call_credentials=None,
        insecure=False,
        compression=None,
        wait_for_ready=None,
        timeout=None,
        metadata=None,
    ):
        return grpc.experimental.unary_unary(
            request,
            target,
            "/google.cloud.recommender.v1beta1.Recommender/MarkRecommendationSucceeded",
            google_dot_cloud_dot_recommender__v1beta1_dot_proto_dot_recommender__service__pb2.MarkRecommendationSucceededRequest.SerializeToString,
            google_dot_cloud_dot_recommender__v1beta1_dot_proto_dot_recommendation__pb2.Recommendation.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
        )

    @staticmethod
    def MarkRecommendationFailed(
        request,
        target,
        options=(),
        channel_credentials=None,
        call_credentials=None,
        insecure=False,
        compression=None,
        wait_for_ready=None,
        timeout=None,
        metadata=None,
    ):
        return grpc.experimental.unary_unary(
            request,
            target,
            "/google.cloud.recommender.v1beta1.Recommender/MarkRecommendationFailed",
            google_dot_cloud_dot_recommender__v1beta1_dot_proto_dot_recommender__service__pb2.MarkRecommendationFailedRequest.SerializeToString,
            google_dot_cloud_dot_recommender__v1beta1_dot_proto_dot_recommendation__pb2.Recommendation.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
        )

<filename>google/cloud/recommender_v1beta1/proto/recommender_service_pb2_grpc.py
# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
"""Client and server classes corresponding to protobuf-defined services."""
import grpc

from google.cloud.recommender_v1beta1.proto import (
    insight_pb2 as google_dot_cloud_dot_recommender__v1beta1_dot_proto_dot_insight__pb2,
)
from google.cloud.recommender_v1beta1.proto import (
    recommendation_pb2 as google_dot_cloud_dot_recommender__v1beta1_dot_proto_dot_recommendation__pb2,
)
from google.cloud.recommender_v1beta1.proto import (
    recommender_service_pb2 as google_dot_cloud_dot_recommender__v1beta1_dot_proto_dot_recommender__service__pb2,
)


class RecommenderStub(object):
    """Provides insights and recommendations for cloud customers for various
    categories like performance optimization, cost savings, reliability, feature
    discovery, etc. Insights and recommendations are generated automatically
    based on analysis of user resources, configuration and monitoring metrics.
    """

    def __init__(self, channel):
        """Constructor.

        Args:
            channel: A grpc.Channel.
        """
        self.ListInsights = channel.unary_unary(
            "/google.cloud.recommender.v1beta1.Recommender/ListInsights",
            request_serializer=google_dot_cloud_dot_recommender__v1beta1_dot_proto_dot_recommender__service__pb2.ListInsightsRequest.SerializeToString,
            response_deserializer=google_dot_cloud_dot_recommender__v1beta1_dot_proto_dot_recommender__service__pb2.ListInsightsResponse.FromString,
        )
        self.GetInsight = channel.unary_unary(
            "/google.cloud.recommender.v1beta1.Recommender/GetInsight",
            request_serializer=google_dot_cloud_dot_recommender__v1beta1_dot_proto_dot_recommender__service__pb2.GetInsightRequest.SerializeToString,
            response_deserializer=google_dot_cloud_dot_recommender__v1beta1_dot_proto_dot_insight__pb2.Insight.FromString,
        )
        self.MarkInsightAccepted = channel.unary_unary(
            "/google.cloud.recommender.v1beta1.Recommender/MarkInsightAccepted",
            request_serializer=google_dot_cloud_dot_recommender__v1beta1_dot_proto_dot_recommender__service__pb2.MarkInsightAcceptedRequest.SerializeToString,
            response_deserializer=google_dot_cloud_dot_recommender__v1beta1_dot_proto_dot_insight__pb2.Insight.FromString,
        )
        self.ListRecommendations = channel.unary_unary(
            "/google.cloud.recommender.v1beta1.Recommender/ListRecommendations",
            request_serializer=google_dot_cloud_dot_recommender__v1beta1_dot_proto_dot_recommender__service__pb2.ListRecommendationsRequest.SerializeToString,
            response_deserializer=google_dot_cloud_dot_recommender__v1beta1_dot_proto_dot_recommender__service__pb2.ListRecommendationsResponse.FromString,
        )
        self.GetRecommendation = channel.unary_unary(
            "/google.cloud.recommender.v1beta1.Recommender/GetRecommendation",
            request_serializer=google_dot_cloud_dot_recommender__v1beta1_dot_proto_dot_recommender__service__pb2.GetRecommendationRequest.SerializeToString,
            response_deserializer=google_dot_cloud_dot_recommender__v1beta1_dot_proto_dot_recommendation__pb2.Recommendation.FromString,
        )
        self.MarkRecommendationClaimed = channel.unary_unary(
            "/google.cloud.recommender.v1beta1.Recommender/MarkRecommendationClaimed",
            request_serializer=google_dot_cloud_dot_recommender__v1beta1_dot_proto_dot_recommender__service__pb2.MarkRecommendationClaimedRequest.SerializeToString,
            response_deserializer=google_dot_cloud_dot_recommender__v1beta1_dot_proto_dot_recommendation__pb2.Recommendation.FromString,
        )
        self.MarkRecommendationSucceeded = channel.unary_unary(
            "/google.cloud.recommender.v1beta1.Recommender/MarkRecommendationSucceeded",
            request_serializer=google_dot_cloud_dot_recommender__v1beta1_dot_proto_dot_recommender__service__pb2.MarkRecommendationSucceededRequest.SerializeToString,
            response_deserializer=google_dot_cloud_dot_recommender__v1beta1_dot_proto_dot_recommendation__pb2.Recommendation.FromString,
        )
        self.MarkRecommendationFailed = channel.unary_unary(
            "/google.cloud.recommender.v1beta1.Recommender/MarkRecommendationFailed",
            request_serializer=google_dot_cloud_dot_recommender__v1beta1_dot_proto_dot_recommender__service__pb2.MarkRecommendationFailedRequest.SerializeToString,
            response_deserializer=google_dot_cloud_dot_recommender__v1beta1_dot_proto_dot_recommendation__pb2.Recommendation.FromString,
        )


class RecommenderServicer(object):
    """Provides insights and recommendations for cloud customers for various
    categories like performance optimization, cost savings, reliability, feature
    discovery, etc. Insights and recommendations are generated automatically
    based on analysis of user resources, configuration and monitoring metrics.
    """

    def ListInsights(self, request, context):
        """Lists insights for a Cloud project. Requires the recommender.*.list IAM
        permission for the specified insight type.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details("Method not implemented!")
        raise NotImplementedError("Method not implemented!")

    def GetInsight(self, request, context):
        """Gets the requested insight. Requires the recommender.*.get IAM permission
        for the specified insight type.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details("Method not implemented!")
        raise NotImplementedError("Method not implemented!")

    def MarkInsightAccepted(self, request, context):
        """Marks the Insight State as Accepted. Users can use this method to
        indicate to the Recommender API that they have applied some action based
        on the insight. This stops the insight content from being updated.

        MarkInsightAccepted can be applied to insights in ACTIVE state. Requires
        the recommender.*.update IAM permission for the specified insight.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details("Method not implemented!")
        raise NotImplementedError("Method not implemented!")

    def ListRecommendations(self, request, context):
        """Lists recommendations for a Cloud project. Requires the recommender.*.list
        IAM permission for the specified recommender.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details("Method not implemented!")
        raise NotImplementedError("Method not implemented!")

    def GetRecommendation(self, request, context):
        """Gets the requested recommendation. Requires the recommender.*.get
        IAM permission for the specified recommender.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details("Method not implemented!")
        raise NotImplementedError("Method not implemented!")

    def MarkRecommendationClaimed(self, request, context):
        """Marks the Recommendation State as Claimed. Users can use this method to
        indicate to the Recommender API that they are starting to apply the
        recommendation themselves. This stops the recommendation content from being
        updated. Associated insights are frozen and placed in the ACCEPTED state.

        MarkRecommendationClaimed can be applied to recommendations in CLAIMED or
        ACTIVE state.

        Requires the recommender.*.update IAM permission for the specified
        recommender.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details("Method not implemented!")
        raise NotImplementedError("Method not implemented!")

    def MarkRecommendationSucceeded(self, request, context):
        """Marks the Recommendation State as Succeeded. Users can use this method to
        indicate to the Recommender API that they have applied the recommendation
        themselves, and the operation was successful. This stops the recommendation
        content from being updated. Associated insights are frozen and placed in
        the ACCEPTED state.

        MarkRecommendationSucceeded can be applied to recommendations in ACTIVE,
        CLAIMED, SUCCEEDED, or FAILED state.

        Requires the recommender.*.update IAM permission for the specified
        recommender.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details("Method not implemented!")
        raise NotImplementedError("Method not implemented!")

    def MarkRecommendationFailed(self, request, context):
        """Marks the Recommendation State as Failed. Users can use this method to
        indicate to the Recommender API that they have applied the recommendation
        themselves, and the operation failed. This stops the recommendation content
        from being updated. Associated insights are frozen and placed in the
        ACCEPTED state.

        MarkRecommendationFailed can be applied to recommendations in ACTIVE,
        CLAIMED, SUCCEEDED, or FAILED state.

        Requires the recommender.*.update IAM permission for the specified
        recommender.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details("Method not implemented!")
        raise NotImplementedError("Method not implemented!")


def add_RecommenderServicer_to_server(servicer, server):
    rpc_method_handlers = {
        "ListInsights": grpc.unary_unary_rpc_method_handler(
            servicer.ListInsights,
            request_deserializer=google_dot_cloud_dot_recommender__v1beta1_dot_proto_dot_recommender__service__pb2.ListInsightsRequest.FromString,
            response_serializer=google_dot_cloud_dot_recommender__v1beta1_dot_proto_dot_recommender__service__pb2.ListInsightsResponse.SerializeToString,
        ),
        "GetInsight": grpc.unary_unary_rpc_method_handler(
            servicer.GetInsight,
            request_deserializer=google_dot_cloud_dot_recommender__v1beta1_dot_proto_dot_recommender__service__pb2.GetInsightRequest.FromString,
            response_serializer=google_dot_cloud_dot_recommender__v1beta1_dot_proto_dot_insight__pb2.Insight.SerializeToString,
        ),
        "MarkInsightAccepted": grpc.unary_unary_rpc_method_handler(
            servicer.MarkInsightAccepted,
            request_deserializer=google_dot_cloud_dot_recommender__v1beta1_dot_proto_dot_recommender__service__pb2.MarkInsightAcceptedRequest.FromString,
            response_serializer=google_dot_cloud_dot_recommender__v1beta1_dot_proto_dot_insight__pb2.Insight.SerializeToString,
        ),
        "ListRecommendations": grpc.unary_unary_rpc_method_handler(
            servicer.ListRecommendations,
            request_deserializer=google_dot_cloud_dot_recommender__v1beta1_dot_proto_dot_recommender__service__pb2.ListRecommendationsRequest.FromString,
            response_serializer=google_dot_cloud_dot_recommender__v1beta1_dot_proto_dot_recommender__service__pb2.ListRecommendationsResponse.SerializeToString,
        ),
        "GetRecommendation": grpc.unary_unary_rpc_method_handler(
            servicer.GetRecommendation,
            request_deserializer=google_dot_cloud_dot_recommender__v1beta1_dot_proto_dot_recommender__service__pb2.GetRecommendationRequest.FromString,
            response_serializer=google_dot_cloud_dot_recommender__v1beta1_dot_proto_dot_recommendation__pb2.Recommendation.SerializeToString,
        ),
        "MarkRecommendationClaimed": grpc.unary_unary_rpc_method_handler(
            servicer.MarkRecommendationClaimed,
            request_deserializer=google_dot_cloud_dot_recommender__v1beta1_dot_proto_dot_recommender__service__pb2.MarkRecommendationClaimedRequest.FromString,
            response_serializer=google_dot_cloud_dot_recommender__v1beta1_dot_proto_dot_recommendation__pb2.Recommendation.SerializeToString,
        ),
        "MarkRecommendationSucceeded": grpc.unary_unary_rpc_method_handler(
            servicer.MarkRecommendationSucceeded,
            request_deserializer=google_dot_cloud_dot_recommender__v1beta1_dot_proto_dot_recommender__service__pb2.MarkRecommendationSucceededRequest.FromString,
            response_serializer=google_dot_cloud_dot_recommender__v1beta1_dot_proto_dot_recommendation__pb2.Recommendation.SerializeToString,
        ),
        "MarkRecommendationFailed": grpc.unary_unary_rpc_method_handler(
            servicer.MarkRecommendationFailed,
            request_deserializer=google_dot_cloud_dot_recommender__v1beta1_dot_proto_dot_recommender__service__pb2.MarkRecommendationFailedRequest.FromString,
            response_serializer=google_dot_cloud_dot_recommender__v1beta1_dot_proto_dot_recommendation__pb2.Recommendation.SerializeToString,
        ),
    }
    generic_handler = grpc.method_handlers_generic_handler(
        "google.cloud.recommender.v1beta1.Recommender", rpc_method_handlers
    )
    server.add_generic_rpc_handlers((generic_handler,))


# This class is part of an EXPERIMENTAL API.
class Recommender(object):
    """Provides insights and recommendations for cloud customers for various
    categories like performance optimization, cost savings, reliability, feature
    discovery, etc. Insights and recommendations are generated automatically
    based on analysis of user resources, configuration and monitoring metrics.
    """

    @staticmethod
    def ListInsights(
        request,
        target,
        options=(),
        channel_credentials=None,
        call_credentials=None,
        insecure=False,
        compression=None,
        wait_for_ready=None,
        timeout=None,
        metadata=None,
    ):
        return grpc.experimental.unary_unary(
            request,
            target,
            "/google.cloud.recommender.v1beta1.Recommender/ListInsights",
            google_dot_cloud_dot_recommender__v1beta1_dot_proto_dot_recommender__service__pb2.ListInsightsRequest.SerializeToString,
            google_dot_cloud_dot_recommender__v1beta1_dot_proto_dot_recommender__service__pb2.ListInsightsResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
        )

    @staticmethod
    def GetInsight(
        request,
        target,
        options=(),
        channel_credentials=None,
        call_credentials=None,
        insecure=False,
        compression=None,
        wait_for_ready=None,
        timeout=None,
        metadata=None,
    ):
        return grpc.experimental.unary_unary(
            request,
            target,
            "/google.cloud.recommender.v1beta1.Recommender/GetInsight",
            google_dot_cloud_dot_recommender__v1beta1_dot_proto_dot_recommender__service__pb2.GetInsightRequest.SerializeToString,
            google_dot_cloud_dot_recommender__v1beta1_dot_proto_dot_insight__pb2.Insight.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
        )

    @staticmethod
    def MarkInsightAccepted(
        request,
        target,
        options=(),
        channel_credentials=None,
        call_credentials=None,
        insecure=False,
        compression=None,
        wait_for_ready=None,
        timeout=None,
        metadata=None,
    ):
        return grpc.experimental.unary_unary(
            request,
            target,
            "/google.cloud.recommender.v1beta1.Recommender/MarkInsightAccepted",
            google_dot_cloud_dot_recommender__v1beta1_dot_proto_dot_recommender__service__pb2.MarkInsightAcceptedRequest.SerializeToString,
            google_dot_cloud_dot_recommender__v1beta1_dot_proto_dot_insight__pb2.Insight.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
        )

    @staticmethod
    def ListRecommendations(
        request,
        target,
        options=(),
        channel_credentials=None,
        call_credentials=None,
        insecure=False,
        compression=None,
        wait_for_ready=None,
        timeout=None,
        metadata=None,
    ):
        return grpc.experimental.unary_unary(
            request,
            target,
            "/google.cloud.recommender.v1beta1.Recommender/ListRecommendations",
            google_dot_cloud_dot_recommender__v1beta1_dot_proto_dot_recommender__service__pb2.ListRecommendationsRequest.SerializeToString,
            google_dot_cloud_dot_recommender__v1beta1_dot_proto_dot_recommender__service__pb2.ListRecommendationsResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
        )

    @staticmethod
    def GetRecommendation(
        request,
        target,
        options=(),
        channel_credentials=None,
        call_credentials=None,
        insecure=False,
        compression=None,
        wait_for_ready=None,
        timeout=None,
        metadata=None,
    ):
        return grpc.experimental.unary_unary(
            request,
            target,
            "/google.cloud.recommender.v1beta1.Recommender/GetRecommendation",
            google_dot_cloud_dot_recommender__v1beta1_dot_proto_dot_recommender__service__pb2.GetRecommendationRequest.SerializeToString,
            google_dot_cloud_dot_recommender__v1beta1_dot_proto_dot_recommendation__pb2.Recommendation.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
        )

    @staticmethod
    def MarkRecommendationClaimed(
        request,
        target,
        options=(),
        channel_credentials=None,
        call_credentials=None,
        insecure=False,
        compression=None,
        wait_for_ready=None,
        timeout=None,
        metadata=None,
    ):
        return grpc.experimental.unary_unary(
            request,
            target,
            "/google.cloud.recommender.v1beta1.Recommender/MarkRecommendationClaimed",
            google_dot_cloud_dot_recommender__v1beta1_dot_proto_dot_recommender__service__pb2.MarkRecommendationClaimedRequest.SerializeToString,
            google_dot_cloud_dot_recommender__v1beta1_dot_proto_dot_recommendation__pb2.Recommendation.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
        )

    @staticmethod
    def MarkRecommendationSucceeded(
        request,
        target,
        options=(),
        channel_credentials=None,
        call_credentials=None,
        insecure=False,
        compression=None,
        wait_for_ready=None,
        timeout=None,
        metadata=None,
    ):
        return grpc.experimental.unary_unary(
            request,
            target,
            "/google.cloud.recommender.v1beta1.Recommender/MarkRecommendationSucceeded",
            google_dot_cloud_dot_recommender__v1beta1_dot_proto_dot_recommender__service__pb2.MarkRecommendationSucceededRequest.SerializeToString,
            google_dot_cloud_dot_recommender__v1beta1_dot_proto_dot_recommendation__pb2.Recommendation.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
        )

    @staticmethod
    def MarkRecommendationFailed(
        request,
        target,
        options=(),
        channel_credentials=None,
        call_credentials=None,
        insecure=False,
        compression=None,
        wait_for_ready=None,
        timeout=None,
        metadata=None,
    ):
        return grpc.experimental.unary_unary(
            request,
            target,
            "/google.cloud.recommender.v1beta1.Recommender/MarkRecommendationFailed",
            google_dot_cloud_dot_recommender__v1beta1_dot_proto_dot_recommender__service__pb2.MarkRecommendationFailedRequest.SerializeToString,
            google_dot_cloud_dot_recommender__v1beta1_dot_proto_dot_recommendation__pb2.Recommendation.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
        )

# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! Client and server classes corresponding to protobuf-defined services. Provides insights and recommendations for cloud customers for various     categories like performance optimization, cost savings, reliability, feature     discovery, etc. Insights and recommendations are generated automatically     based on analysis of user resources, configuration and monitoring metrics. Constructor.          Args:             channel: A grpc.Channel. Provides insights and recommendations for cloud customers for various     categories like performance optimization, cost savings, reliability, feature     discovery, etc. Insights and recommendations are generated automatically     based on analysis of user resources, configuration and monitoring metrics. Lists insights for a Cloud project. Requires the recommender.*.list IAM         permission for the specified insight type. Gets the requested insight. Requires the recommender.*.get IAM permission         for the specified insight type. Marks the Insight State as Accepted. Users can use this method to         indicate to the Recommender API that they have applied some action based         on the insight. This stops the insight content from being updated.          MarkInsightAccepted can be applied to insights in ACTIVE state. Requires         the recommender.*.update IAM permission for the specified insight. Lists recommendations for a Cloud project. Requires the recommender.*.list         IAM permission for the specified recommender. Gets the requested recommendation. Requires the recommender.*.get         IAM permission for the specified recommender. Marks the Recommendation State as Claimed. Users can use this method to         indicate to the Recommender API that they are starting to apply the         recommendation themselves. This stops the recommendation content from being         updated. Associated insights are frozen and placed in the ACCEPTED state.          MarkRecommendationClaimed can be applied to recommendations in CLAIMED or         ACTIVE state.          Requires the recommender.*.update IAM permission for the specified         recommender. Marks the Recommendation State as Succeeded. Users can use this method to         indicate to the Recommender API that they have applied the recommendation         themselves, and the operation was successful. This stops the recommendation         content from being updated. Associated insights are frozen and placed in         the ACCEPTED state.          MarkRecommendationSucceeded can be applied to recommendations in ACTIVE,         CLAIMED, SUCCEEDED, or FAILED state.          Requires the recommender.*.update IAM permission for the specified         recommender. Marks the Recommendation State as Failed. Users can use this method to         indicate to the Recommender API that they have applied the recommendation         themselves, and the operation failed. This stops the recommendation content         from being updated. Associated insights are frozen and placed in the         ACCEPTED state.          MarkRecommendationFailed can be applied to recommendations in ACTIVE,         CLAIMED, SUCCEEDED, or FAILED state.          Requires the recommender.*.update IAM permission for the specified         recommender. # This class is part of an EXPERIMENTAL API. Provides insights and recommendations for cloud customers for various     categories like performance optimization, cost savings, reliability, feature     discovery, etc. Insights and recommendations are generated automatically     based on analysis of user resources, configuration and monitoring metrics.