# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
"""Client and server classes corresponding to protobuf-defined services."""
import grpc
import warnings

from yandex.cloud.operation import operation_pb2 as yandex_dot_cloud_dot_operation_dot_operation__pb2
from yandex.cloud.video.v1 import style_preset_pb2 as yandex_dot_cloud_dot_video_dot_v1_dot_style__preset__pb2
from yandex.cloud.video.v1 import style_preset_service_pb2 as yandex_dot_cloud_dot_video_dot_v1_dot_style__preset__service__pb2

GRPC_GENERATED_VERSION = '1.70.0'
GRPC_VERSION = grpc.__version__
_version_not_supported = False

try:
    from grpc._utilities import first_version_is_lower
    _version_not_supported = first_version_is_lower(GRPC_VERSION, GRPC_GENERATED_VERSION)
except ImportError:
    _version_not_supported = True

if _version_not_supported:
    raise RuntimeError(
        f'The grpc package installed is at version {GRPC_VERSION},'
        + f' but the generated code in yandex/cloud/video/v1/style_preset_service_pb2_grpc.py depends on'
        + f' grpcio>={GRPC_GENERATED_VERSION}.'
        + f' Please upgrade your grpc module to grpcio>={GRPC_GENERATED_VERSION}'
        + f' or downgrade your generated code using grpcio-tools<={GRPC_VERSION}.'
    )


class StylePresetServiceStub(object):
    """StylePreset management service.
    Provides methods for creating, retrieving, updating, and deleting style presets,
    which define the visual appearance and layout of video players and associated widgets.
    """

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

        Args:
            channel: A grpc.Channel.
        """
        self.Get = channel.unary_unary(
                '/yandex.cloud.video.v1.StylePresetService/Get',
                request_serializer=yandex_dot_cloud_dot_video_dot_v1_dot_style__preset__service__pb2.GetStylePresetRequest.SerializeToString,
                response_deserializer=yandex_dot_cloud_dot_video_dot_v1_dot_style__preset__pb2.StylePreset.FromString,
                _registered_method=True)
        self.List = channel.unary_unary(
                '/yandex.cloud.video.v1.StylePresetService/List',
                request_serializer=yandex_dot_cloud_dot_video_dot_v1_dot_style__preset__service__pb2.ListStylePresetsRequest.SerializeToString,
                response_deserializer=yandex_dot_cloud_dot_video_dot_v1_dot_style__preset__service__pb2.ListStylePresetsResponse.FromString,
                _registered_method=True)
        self.Create = channel.unary_unary(
                '/yandex.cloud.video.v1.StylePresetService/Create',
                request_serializer=yandex_dot_cloud_dot_video_dot_v1_dot_style__preset__service__pb2.CreateStylePresetRequest.SerializeToString,
                response_deserializer=yandex_dot_cloud_dot_operation_dot_operation__pb2.Operation.FromString,
                _registered_method=True)
        self.Update = channel.unary_unary(
                '/yandex.cloud.video.v1.StylePresetService/Update',
                request_serializer=yandex_dot_cloud_dot_video_dot_v1_dot_style__preset__service__pb2.UpdateStylePresetRequest.SerializeToString,
                response_deserializer=yandex_dot_cloud_dot_operation_dot_operation__pb2.Operation.FromString,
                _registered_method=True)
        self.Delete = channel.unary_unary(
                '/yandex.cloud.video.v1.StylePresetService/Delete',
                request_serializer=yandex_dot_cloud_dot_video_dot_v1_dot_style__preset__service__pb2.DeleteStylePresetRequest.SerializeToString,
                response_deserializer=yandex_dot_cloud_dot_operation_dot_operation__pb2.Operation.FromString,
                _registered_method=True)


class StylePresetServiceServicer(object):
    """StylePreset management service.
    Provides methods for creating, retrieving, updating, and deleting style presets,
    which define the visual appearance and layout of video players and associated widgets.
    """

    def Get(self, request, context):
        """Retrieves detailed information about a specific style preset by its ID.
        Returns all style preset properties, colors, layout settings, and widget configurations.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def List(self, request, context):
        """Lists all style presets in a specific channel with pagination support.
        Results can be filtered and sorted using the provided parameters.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def Create(self, request, context):
        """Creates a new style preset in the specified channel with the provided visual settings.
        Style presets define the appearance of players, including colors, spacing, borders, and widgets.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def Update(self, request, context):
        """Updates an existing style preset's properties and visual settings.
        Only fields specified in the field_mask will be updated.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def Delete(self, request, context):
        """Deletes a specific style preset by its ID.
        This operation will fail if the style preset is currently in use by any videos, streams, or playlists.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')


def add_StylePresetServiceServicer_to_server(servicer, server):
    rpc_method_handlers = {
            'Get': grpc.unary_unary_rpc_method_handler(
                    servicer.Get,
                    request_deserializer=yandex_dot_cloud_dot_video_dot_v1_dot_style__preset__service__pb2.GetStylePresetRequest.FromString,
                    response_serializer=yandex_dot_cloud_dot_video_dot_v1_dot_style__preset__pb2.StylePreset.SerializeToString,
            ),
            'List': grpc.unary_unary_rpc_method_handler(
                    servicer.List,
                    request_deserializer=yandex_dot_cloud_dot_video_dot_v1_dot_style__preset__service__pb2.ListStylePresetsRequest.FromString,
                    response_serializer=yandex_dot_cloud_dot_video_dot_v1_dot_style__preset__service__pb2.ListStylePresetsResponse.SerializeToString,
            ),
            'Create': grpc.unary_unary_rpc_method_handler(
                    servicer.Create,
                    request_deserializer=yandex_dot_cloud_dot_video_dot_v1_dot_style__preset__service__pb2.CreateStylePresetRequest.FromString,
                    response_serializer=yandex_dot_cloud_dot_operation_dot_operation__pb2.Operation.SerializeToString,
            ),
            'Update': grpc.unary_unary_rpc_method_handler(
                    servicer.Update,
                    request_deserializer=yandex_dot_cloud_dot_video_dot_v1_dot_style__preset__service__pb2.UpdateStylePresetRequest.FromString,
                    response_serializer=yandex_dot_cloud_dot_operation_dot_operation__pb2.Operation.SerializeToString,
            ),
            'Delete': grpc.unary_unary_rpc_method_handler(
                    servicer.Delete,
                    request_deserializer=yandex_dot_cloud_dot_video_dot_v1_dot_style__preset__service__pb2.DeleteStylePresetRequest.FromString,
                    response_serializer=yandex_dot_cloud_dot_operation_dot_operation__pb2.Operation.SerializeToString,
            ),
    }
    generic_handler = grpc.method_handlers_generic_handler(
            'yandex.cloud.video.v1.StylePresetService', rpc_method_handlers)
    server.add_generic_rpc_handlers((generic_handler,))
    server.add_registered_method_handlers('yandex.cloud.video.v1.StylePresetService', rpc_method_handlers)


 # This class is part of an EXPERIMENTAL API.
class StylePresetService(object):
    """StylePreset management service.
    Provides methods for creating, retrieving, updating, and deleting style presets,
    which define the visual appearance and layout of video players and associated widgets.
    """

    @staticmethod
    def Get(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,
            '/yandex.cloud.video.v1.StylePresetService/Get',
            yandex_dot_cloud_dot_video_dot_v1_dot_style__preset__service__pb2.GetStylePresetRequest.SerializeToString,
            yandex_dot_cloud_dot_video_dot_v1_dot_style__preset__pb2.StylePreset.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def List(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,
            '/yandex.cloud.video.v1.StylePresetService/List',
            yandex_dot_cloud_dot_video_dot_v1_dot_style__preset__service__pb2.ListStylePresetsRequest.SerializeToString,
            yandex_dot_cloud_dot_video_dot_v1_dot_style__preset__service__pb2.ListStylePresetsResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def Create(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,
            '/yandex.cloud.video.v1.StylePresetService/Create',
            yandex_dot_cloud_dot_video_dot_v1_dot_style__preset__service__pb2.CreateStylePresetRequest.SerializeToString,
            yandex_dot_cloud_dot_operation_dot_operation__pb2.Operation.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def Update(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,
            '/yandex.cloud.video.v1.StylePresetService/Update',
            yandex_dot_cloud_dot_video_dot_v1_dot_style__preset__service__pb2.UpdateStylePresetRequest.SerializeToString,
            yandex_dot_cloud_dot_operation_dot_operation__pb2.Operation.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def Delete(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,
            '/yandex.cloud.video.v1.StylePresetService/Delete',
            yandex_dot_cloud_dot_video_dot_v1_dot_style__preset__service__pb2.DeleteStylePresetRequest.SerializeToString,
            yandex_dot_cloud_dot_operation_dot_operation__pb2.Operation.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)
