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

require 'grpc'
require 'keyapis/access_management/v1/keyapis_access_management_template_v1_pb'

module Keyapis
  module AccessManagement
    module V1
      module GroupTemplateService
        # Сервис управления шаблонами пользовательских групп
        class Service

          include ::GRPC::GenericService

          self.marshal_class_method = :encode
          self.unmarshal_class_method = :decode
          self.service_name = 'keyapis.access_management.v1.GroupTemplateService'

          # Метод получения шаблона группы.
          # Метод доступен для: admin, service, bti, seller
          rpc :GetGroupTemplate, ::Keyapis::AccessManagement::V1::GetGroupTemplateRequest, ::Keyapis::AccessManagement::V1::GetGroupTemplateResponse
          # Метод получения списка шаблонов групп.
          # Метод доступен для: admin, service, bti, seller
          rpc :GetGroupTemplateList, ::Keyapis::AccessManagement::V1::GetGroupTemplateListRequest, stream(::Keyapis::AccessManagement::V1::GetGroupTemplateListResponse)
          # Метод получения количества шаблонов групп.
          # Метод доступен для: admin, service, bti, seller
          rpc :GetGroupTemplateCount, ::Keyapis::AccessManagement::V1::GetGroupTemplateCountRequest, ::Keyapis::AccessManagement::V1::GetGroupTemplateCountResponse
          # Метод сохранения шаблона группы.
          # Поддерживает создание и обновление как UPSERT по GroupTemplate.id.
          # Метод доступен для: admin, service
          rpc :PostGroupTemplate, ::Keyapis::AccessManagement::V1::PostGroupTemplateRequest, ::Keyapis::AccessManagement::V1::PostGroupTemplateResponse
          # Метод удаления шаблона группы.
          # Проставляет дату удаления GroupTemplate.deleted_at.
          # Метод доступен для: admin, service
          rpc :DeleteGroupTemplate, ::Keyapis::AccessManagement::V1::DeleteGroupTemplateRequest, ::Keyapis::AccessManagement::V1::DeleteGroupTemplateResponse
          # Метод получения списка связей шаблонов групп и группы пользователя.
          # Метод доступен для: admin, service
          rpc :GetGroupTemplateGroupList, ::Keyapis::AccessManagement::V1::GetGroupTemplateGroupListRequest, stream(::Keyapis::AccessManagement::V1::GetGroupTemplateGroupListResponse)
          # Метод получения количества связей шаблонов групп и группы пользователя.
          # Метод доступен для: admin, service
          rpc :GetGroupTemplateGroupCount, ::Keyapis::AccessManagement::V1::GetGroupTemplateGroupCountRequest, ::Keyapis::AccessManagement::V1::GetGroupTemplateGroupCountResponse
          # Метод сохранения связей шаблонов групп и группы пользователя.
          # Метод доступен для: admin, service
          rpc :PutGroupTemplateGroupAttach, ::Keyapis::AccessManagement::V1::PutGroupTemplateGroupAttachRequest, ::Keyapis::AccessManagement::V1::PutGroupTemplateGroupAttachResponse
          # Метод удаления связей шаблонов групп и группы пользователя.
          # Метод доступен для: admin, service
          rpc :PutGroupTemplateGroupDetach, ::Keyapis::AccessManagement::V1::PutGroupTemplateGroupDetachRequest, ::Keyapis::AccessManagement::V1::PutGroupTemplateGroupDetachResponse
        end

        Stub = Service.rpc_stub_class
      end
    end
  end
end
