# Generated by the protocol buffer compiler.  DO NOT EDIT!
# Source: keyapis/notification/v1/keyapis_notification_push_token_v1.proto for package 'Keyapis.Notification.V1'
# Original file comments:
#
# Сервис реализует функционал управления пуш-токенами устройств.
# Используется как отдельное хранилихе пуш токенов, на первом этапе будет хранить только PWA токены

require 'grpc'
require 'keyapis/notification/v1/keyapis_notification_push_token_v1_pb'

module Keyapis
  module Notification
    module V1
      module PushTokenService
        # Сервис пуш-токенов устройств
        class Service

          include ::GRPC::GenericService

          self.marshal_class_method = :encode
          self.unmarshal_class_method = :decode
          self.service_name = 'keyapis.notification.v1.PushTokenService'

          # Метод сохранения пуш-токенов.
          # Поддерживает создание и обновление.
          # Метод доступен для: admin, master, employee, owner, service, application(notification:edit).
          # Для ролей master, employee, owner можно сохранять только собственные пуш-токены.
          # Для ролей admin, service доступны все пуш-токены
          rpc :PostPushToken, ::Keyapis::Notification::V1::PostPushTokenRequest, ::Keyapis::Notification::V1::PostPushTokenResponse
          # Метод получения пуш-токенов.
          # Метод доступен для: admin, master, employee, owner, service, application(notification:read или notification:edit).
          # Для ролей master, employee, owner можно просматривать только собственные пуш-токены.
          # Для ролей admin, service доступны все пуш-токены
          rpc :GetPushTokenList, ::Keyapis::Notification::V1::GetPushTokenListRequest, stream(::Keyapis::Notification::V1::GetPushTokenListResponse)
          # Метод получения количества пуш-токенов.
          # Метод доступен для: admin, master, employee, owner, service, application(notification:read или notification:edit).
          # Для ролей master, employee, owner можно просматривать только собственные пуш-токены.
          # Для ролей admin, service доступны все пуш-токены
          rpc :GetPushTokenCount, ::Keyapis::Notification::V1::GetPushTokenCountRequest, ::Keyapis::Notification::V1::GetPushTokenCountResponse
          # Метод удаления пуш-токена.
          # Метод доступен для: admin, master, employee, owner, service, application(notification:edit).
          # Для ролей master, employee, owner можно удалять только собственные пуш-токены.
          # Для ролей admin, service можно удалять все пуш-токены
          rpc :DeletePushToken, ::Keyapis::Notification::V1::DeletePushTokenRequest, ::Keyapis::Notification::V1::DeletePushTokenResponse
          # Метод удаления пуш-токена по идентификатору устройства пользователя.
          # Метод доступен для: admin, master, employee, owner, service, application(notification:edit).
          # Для ролей master, employee, owner можно удалять только собственные пуш-токены.
          # Для ролей admin, service можно удалять все пуш-токены
          rpc :DeletePushTokenUserAppId, ::Keyapis::Notification::V1::DeletePushTokenUserAppIdRequest, ::Keyapis::Notification::V1::DeletePushTokenUserAppIdResponse
          # Метод удаления пуш-токенов по идентификатору пользователя.
          # Метод доступен для: admin, master, employee, owner, service, application(notification:edit).
          # Для ролей master, employee, owner можно удалять только собственные пуш-токены.
          # Для ролей admin, service можно удалять все пуш-токены
          rpc :DeletePushTokenUserId, ::Keyapis::Notification::V1::DeletePushTokenUserIdRequest, ::Keyapis::Notification::V1::DeletePushTokenUserIdResponse
        end

        Stub = Service.rpc_stub_class
      end
    end
  end
end
