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

require 'grpc'
require 'keyapis/multiapp/v1/keyapis_multiapp_notification_template_v1_pb'

module Keyapis
  module Multiapp
    module V1
      module NotificationTemplateService
        # Сервис шаблонов уведомлений
        class Service

          include ::GRPC::GenericService

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

          # Метод сохранения шаблона уведомления.
          # Поддерживает создание и обновление.
          # Поддерживает mustache теги в переменных template_header и template_text.
          # Сценарий использования метода: https://confluence.rt.ru/pages/viewpage.action?pageId=774989444.
          # Метод доступен для: admin, manager, service
          rpc :PostNotificationTemplate, ::Keyapis::Multiapp::V1::PostNotificationTemplateRequest, ::Keyapis::Multiapp::V1::PostNotificationTemplateResponse
          # Метод получения шаблона уведомления.
          # Метод доступен для: admin, manager, service, partner.
          # Роль partner определяется по наличию заголовка X-API-KEY вместо Authorization.
          # Роли partner доступны только связанные с ней шаблоны
          rpc :GetNotificationTemplate, ::Keyapis::Multiapp::V1::GetNotificationTemplateRequest, ::Keyapis::Multiapp::V1::GetNotificationTemplateResponse
          # Метод удаления шаблона уведомления.
          # Устанавливает текущую дату и время в параметр deleted_at.
          # Метод доступен для: admin, manager, service
          rpc :DeleteNotificationTemplate, ::Keyapis::Multiapp::V1::DeleteNotificationTemplateRequest, ::Keyapis::Multiapp::V1::DeleteNotificationTemplateResponse
          # Метод получения списка шаблонов уведомлений.
          # Метод доступен для: admin, manager, service, partner.
          # Роль partner определяется по наличию заголовка X-API-KEY вместо Authorization.
          # Если метод вызван ролью partner в фильтре поле partner_ids принудительно замещается его идентификатором
          rpc :GetNotificationTemplateList, ::Keyapis::Multiapp::V1::GetNotificationTemplateListRequest, stream(::Keyapis::Multiapp::V1::GetNotificationTemplateListResponse)
          # Метод получения количества шаблонов уведомлений.
          # Метод доступен для: admin, manager, service, partner.
          # Роль partner определяется по наличию заголовка X-API-KEY вместо Authorization.
          # Если метод вызван ролью partner в фильтре поле partner_ids принудительно замещается его идентификатором
          rpc :GetNotificationTemplateCount, ::Keyapis::Multiapp::V1::GetNotificationTemplateCountRequest, ::Keyapis::Multiapp::V1::GetNotificationTemplateCountResponse
          # Метод создания связи шаблона уведомления и партнера.
          # Метод доступен для: admin, manager, service
          rpc :PutNotificationTemplatePartnerAttach, ::Keyapis::Multiapp::V1::PutNotificationTemplatePartnerAttachRequest, ::Keyapis::Multiapp::V1::PutNotificationTemplatePartnerAttachResponse
          # Метод удаления связи шаблона уведомления и партнера.
          # Метод доступен для: admin, manager, service
          rpc :PutNotificationTemplatePartnerDetach, ::Keyapis::Multiapp::V1::PutNotificationTemplatePartnerDetachRequest, ::Keyapis::Multiapp::V1::PutNotificationTemplatePartnerDetachResponse
        end

        Stub = Service.rpc_stub_class
      end
    end
  end
end
