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

require 'grpc'
require 'keyapis/multiapp/v1/keyapis_multiapp_app_v1_pb'

module Keyapis
  module Multiapp
    module V1
      module AppService
        # Сервис управления приложениями для суперапа
        class Service

          include ::GRPC::GenericService

          self.marshal_class_method = :encode
          self.unmarshal_class_method = :decode
          self.service_name = 'keyapis.multiapp.v1.AppService'

          # Метод сохранения приложения.
          # Поддерживает создание и обновление.
          # Сценарий использования метода: https://confluence.rt.ru/pages/viewpage.action?pageId=664695668.
          # Метод доступен для: admin, manager, service
          rpc :PostApp, ::Keyapis::Multiapp::V1::PostAppRequest, ::Keyapis::Multiapp::V1::PostAppResponse
          # Метод получения приложения.
          # Сценарий использования метода: https://confluence.rt.ru/pages/viewpage.action?pageId=682907591.
          # Метод доступен для: admin, manager, service, ltp_first
          rpc :GetApp, ::Keyapis::Multiapp::V1::GetAppRequest, ::Keyapis::Multiapp::V1::GetAppResponse
          # Метод получения упрощённого приложения.
          # Не требует авторизации
          rpc :GetAppLite, ::Keyapis::Multiapp::V1::GetAppLiteRequest, ::Keyapis::Multiapp::V1::GetAppLiteResponse
          # Метод получения списка приложений.
          # Сценарий использования метода: https://confluence.rt.ru/pages/viewpage.action?pageId=682907591.
          # Метод доступен для: admin, manager, service, ltp_first
          rpc :GetAppList, ::Keyapis::Multiapp::V1::GetAppListRequest, stream(::Keyapis::Multiapp::V1::GetAppListResponse)
          # Метод получения списка упрощённых приложений.
          # Возвращает приложения не в статусе DELETED.
          # Если не передан параметр app_lite_tag.platform_type возвращает пустой список.
          # Если не передан параметр app_lite_tag.app_name возвращает пустой список.
          # Если не передан параметр user_tags, либо user_tags пустой, возвращает пустой список.
          # На основе переданных параметра app_lite_tag формируются app_tags по правилу: https://confluence.rt.ru/pages/viewpage.action?pageId=734713874.
          # Сценарий использования метода: https://confluence.rt.ru/pages/viewpage.action?pageId=664695692.
          # Не требует авторизации
          rpc :GetAppLiteList, ::Keyapis::Multiapp::V1::GetAppLiteListRequest, stream(::Keyapis::Multiapp::V1::GetAppLiteListResponse)
          # Метод получения количества упрощённых приложений.
          # Учитывает приложения не в статусе DELETED.
          # Если не передан параметр app_lite_tag.platform_type возвращает 0.
          # Если не передан параметр app_lite_tag.app_name возвращает 0.
          # Если не передан параметр user_tags, либо user_tags пустой, возвращает 0.
          # На основе переданных параметра app_lite_tag формируются app_tags по правилу: https://confluence.rt.ru/pages/viewpage.action?pageId=734713874.
          # Не требует авторизации
          rpc :GetAppLiteCount, ::Keyapis::Multiapp::V1::GetAppLiteCountRequest, ::Keyapis::Multiapp::V1::GetAppLiteCountResponse
          # Метод получения количества приложений.
          # Сценарий использования метода: https://confluence.rt.ru/pages/viewpage.action?pageId=664695692.
          # Метод доступен для: admin, manager, service, ltp_first
          rpc :GetAppCount, ::Keyapis::Multiapp::V1::GetAppCountRequest, ::Keyapis::Multiapp::V1::GetAppCountResponse
          # Метод получения кода для перехода в приложение.
          # Логика работы метода: https://confluence.rt.ru/pages/viewpage.action?pageId=664695692.
          # Метод доступен для: admin, service, master, slave
          rpc :GetAppCode, ::Keyapis::Multiapp::V1::GetAppCodeRequest, ::Keyapis::Multiapp::V1::GetAppCodeResponse
          # Метод удаления приложения.
          # Soft delete, из базы не удаляется, проставляется статус.
          # Сценарий использования метода: https://confluence.rt.ru/pages/viewpage.action?pageId=682907591.
          # Метод доступен для: admin, manager, service
          rpc :DeleteApp, ::Keyapis::Multiapp::V1::DeleteAppRequest, ::Keyapis::Multiapp::V1::DeleteAppResponse
        end

        Stub = Service.rpc_stub_class
      end
    end
  end
end
