# Generated by the protocol buffer compiler.  DO NOT EDIT!
# Source: keyapis/user/v1/keyapis_user_user_v1.proto for package 'Keyapis.User.V1'
# Original file comments:
#
# Сервис реализует функционал управления пользователями

require 'grpc'
require 'keyapis/user/v1/keyapis_user_user_v1_pb'

module Keyapis
  module User
    module V1
      module UserService
        # Сервис пользователей
        class Service

          include ::GRPC::GenericService

          self.marshal_class_method = :encode
          self.unmarshal_class_method = :decode
          self.service_name = 'keyapis.user.v1.UserService'

          # Метод получения пользователей.
          # Метод доступен для: admin, service, manager, bti, ltp_first, owner, empolyee.
          # Роли owner или employee могут запрашивать только пользователей, принадлежащих их компании
          rpc :GetUser, ::Keyapis::User::V1::GetUserRequest, ::Keyapis::User::V1::GetUserResponse
          # Метод получения списка пользователей.
          # Метод доступен для: admin, service, manager, bti, ltp_first, owner, empolyee.
          # Если метод вызван ролями owner или employee в фильтре поле company_ids принудительно замещается их company_id
          rpc :GetUserList, ::Keyapis::User::V1::GetUserListRequest, stream(::Keyapis::User::V1::GetUserListResponse)
          # Метод получения количества пользователей.
          # Метод доступен для: admin, service, manager, bti, ltp_first, owner, empolyee.
          # Если метод вызван ролями owner или employee в фильтре поле company_ids принудительно замещается их company_id
          rpc :GetUserCount, ::Keyapis::User::V1::GetUserCountRequest, ::Keyapis::User::V1::GetUserCountResponse
          # Метод удаления пользователей.
          # Метод доступен для: admin, service
          rpc :DeleteUser, ::Keyapis::User::V1::DeleteUserRequest, ::Keyapis::User::V1::DeleteUserResponse
          # Метод удаления всех пользовательских сессий.
          # Метод доступен для: admin, service
          rpc :DeleteUserSessions, ::Keyapis::User::V1::DeleteUserSessionsRequest, ::Keyapis::User::V1::DeleteUserSessionsResponse
          # Метод получения идентификационного кода пользователя.
          # Метод доступен для: admin, service, ltp_first
          rpc :GetUserCode, ::Keyapis::User::V1::GetUserCodeRequest, ::Keyapis::User::V1::GetUserCodeResponse
          # Метод создания идентификационного кода пользователя.
          # После создания кода отправляется событие SendingSmsTask.
          # Метод доступен для: admin, service, ltp_first
          rpc :PostUserCodeCreate, ::Keyapis::User::V1::PostUserCodeCreateRequest, ::Keyapis::User::V1::PostUserCodeCreateResponse
          # Метод создания пользователя.
          # Метод доступен для: admin, service.
          # Доступно создание пользователей с типом: ADMIN, MRF, BTI, LTP_FIRST, SERVICE, DEVICE_ADMIN, MANAGER
          rpc :PostUser, ::Keyapis::User::V1::PostUserRequest, ::Keyapis::User::V1::PostUserResponse
        end

        Stub = Service.rpc_stub_class
      end
    end
  end
end
