//
//Сервис реализует функционал управления шаблонами пользовательских групп

// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
// versions:
// - protoc-gen-go-grpc v1.3.0
// - protoc             v4.23.1
// source: keyapis/access_management/v1/keyapis_access_management_template_v1.proto

package keyapis_access_management_v1

import (
	context "context"
	grpc "google.golang.org/grpc"
	codes "google.golang.org/grpc/codes"
	status "google.golang.org/grpc/status"
)

// This is a compile-time assertion to ensure that this generated file
// is compatible with the grpc package it is being compiled against.
// Requires gRPC-Go v1.32.0 or later.
const _ = grpc.SupportPackageIsVersion7

const (
	GroupTemplateService_GetGroupTemplate_FullMethodName            = "/keyapis.access_management.v1.GroupTemplateService/GetGroupTemplate"
	GroupTemplateService_GetGroupTemplateList_FullMethodName        = "/keyapis.access_management.v1.GroupTemplateService/GetGroupTemplateList"
	GroupTemplateService_GetGroupTemplateCount_FullMethodName       = "/keyapis.access_management.v1.GroupTemplateService/GetGroupTemplateCount"
	GroupTemplateService_PostGroupTemplate_FullMethodName           = "/keyapis.access_management.v1.GroupTemplateService/PostGroupTemplate"
	GroupTemplateService_DeleteGroupTemplate_FullMethodName         = "/keyapis.access_management.v1.GroupTemplateService/DeleteGroupTemplate"
	GroupTemplateService_GetGroupTemplateGroupList_FullMethodName   = "/keyapis.access_management.v1.GroupTemplateService/GetGroupTemplateGroupList"
	GroupTemplateService_GetGroupTemplateGroupCount_FullMethodName  = "/keyapis.access_management.v1.GroupTemplateService/GetGroupTemplateGroupCount"
	GroupTemplateService_PutGroupTemplateGroupAttach_FullMethodName = "/keyapis.access_management.v1.GroupTemplateService/PutGroupTemplateGroupAttach"
	GroupTemplateService_PutGroupTemplateGroupDetach_FullMethodName = "/keyapis.access_management.v1.GroupTemplateService/PutGroupTemplateGroupDetach"
)

// GroupTemplateServiceClient is the client API for GroupTemplateService service.
//
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
type GroupTemplateServiceClient interface {
	// Метод получения шаблона группы.
	// Метод доступен для: admin, service, bti, seller
	GetGroupTemplate(ctx context.Context, in *GetGroupTemplateRequest, opts ...grpc.CallOption) (*GetGroupTemplateResponse, error)
	// Метод получения списка шаблонов групп.
	// Метод доступен для: admin, service, bti, seller
	GetGroupTemplateList(ctx context.Context, in *GetGroupTemplateListRequest, opts ...grpc.CallOption) (GroupTemplateService_GetGroupTemplateListClient, error)
	// Метод получения количества шаблонов групп.
	// Метод доступен для: admin, service, bti, seller
	GetGroupTemplateCount(ctx context.Context, in *GetGroupTemplateCountRequest, opts ...grpc.CallOption) (*GetGroupTemplateCountResponse, error)
	// Метод сохранения шаблона группы.
	// Поддерживает создание и обновление как UPSERT по GroupTemplate.id.
	// Метод доступен для: admin, service
	PostGroupTemplate(ctx context.Context, in *PostGroupTemplateRequest, opts ...grpc.CallOption) (*PostGroupTemplateResponse, error)
	// Метод удаления шаблона группы.
	// Проставляет дату удаления GroupTemplate.deleted_at.
	// Метод доступен для: admin, service
	DeleteGroupTemplate(ctx context.Context, in *DeleteGroupTemplateRequest, opts ...grpc.CallOption) (*DeleteGroupTemplateResponse, error)
	// Метод получения списка связей шаблонов групп и группы пользователя.
	// Метод доступен для: admin, service
	GetGroupTemplateGroupList(ctx context.Context, in *GetGroupTemplateGroupListRequest, opts ...grpc.CallOption) (GroupTemplateService_GetGroupTemplateGroupListClient, error)
	// Метод получения количества связей шаблонов групп и группы пользователя.
	// Метод доступен для: admin, service
	GetGroupTemplateGroupCount(ctx context.Context, in *GetGroupTemplateGroupCountRequest, opts ...grpc.CallOption) (*GetGroupTemplateGroupCountResponse, error)
	// Метод сохранения связей шаблонов групп и группы пользователя.
	// Метод доступен для: admin, service
	PutGroupTemplateGroupAttach(ctx context.Context, in *PutGroupTemplateGroupAttachRequest, opts ...grpc.CallOption) (*PutGroupTemplateGroupAttachResponse, error)
	// Метод удаления связей шаблонов групп и группы пользователя.
	// Метод доступен для: admin, service
	PutGroupTemplateGroupDetach(ctx context.Context, in *PutGroupTemplateGroupDetachRequest, opts ...grpc.CallOption) (*PutGroupTemplateGroupDetachResponse, error)
}

type groupTemplateServiceClient struct {
	cc grpc.ClientConnInterface
}

func NewGroupTemplateServiceClient(cc grpc.ClientConnInterface) GroupTemplateServiceClient {
	return &groupTemplateServiceClient{cc}
}

func (c *groupTemplateServiceClient) GetGroupTemplate(ctx context.Context, in *GetGroupTemplateRequest, opts ...grpc.CallOption) (*GetGroupTemplateResponse, error) {
	out := new(GetGroupTemplateResponse)
	err := c.cc.Invoke(ctx, GroupTemplateService_GetGroupTemplate_FullMethodName, in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *groupTemplateServiceClient) GetGroupTemplateList(ctx context.Context, in *GetGroupTemplateListRequest, opts ...grpc.CallOption) (GroupTemplateService_GetGroupTemplateListClient, error) {
	stream, err := c.cc.NewStream(ctx, &GroupTemplateService_ServiceDesc.Streams[0], GroupTemplateService_GetGroupTemplateList_FullMethodName, opts...)
	if err != nil {
		return nil, err
	}
	x := &groupTemplateServiceGetGroupTemplateListClient{stream}
	if err := x.ClientStream.SendMsg(in); err != nil {
		return nil, err
	}
	if err := x.ClientStream.CloseSend(); err != nil {
		return nil, err
	}
	return x, nil
}

type GroupTemplateService_GetGroupTemplateListClient interface {
	Recv() (*GetGroupTemplateListResponse, error)
	grpc.ClientStream
}

type groupTemplateServiceGetGroupTemplateListClient struct {
	grpc.ClientStream
}

func (x *groupTemplateServiceGetGroupTemplateListClient) Recv() (*GetGroupTemplateListResponse, error) {
	m := new(GetGroupTemplateListResponse)
	if err := x.ClientStream.RecvMsg(m); err != nil {
		return nil, err
	}
	return m, nil
}

func (c *groupTemplateServiceClient) GetGroupTemplateCount(ctx context.Context, in *GetGroupTemplateCountRequest, opts ...grpc.CallOption) (*GetGroupTemplateCountResponse, error) {
	out := new(GetGroupTemplateCountResponse)
	err := c.cc.Invoke(ctx, GroupTemplateService_GetGroupTemplateCount_FullMethodName, in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *groupTemplateServiceClient) PostGroupTemplate(ctx context.Context, in *PostGroupTemplateRequest, opts ...grpc.CallOption) (*PostGroupTemplateResponse, error) {
	out := new(PostGroupTemplateResponse)
	err := c.cc.Invoke(ctx, GroupTemplateService_PostGroupTemplate_FullMethodName, in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *groupTemplateServiceClient) DeleteGroupTemplate(ctx context.Context, in *DeleteGroupTemplateRequest, opts ...grpc.CallOption) (*DeleteGroupTemplateResponse, error) {
	out := new(DeleteGroupTemplateResponse)
	err := c.cc.Invoke(ctx, GroupTemplateService_DeleteGroupTemplate_FullMethodName, in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *groupTemplateServiceClient) GetGroupTemplateGroupList(ctx context.Context, in *GetGroupTemplateGroupListRequest, opts ...grpc.CallOption) (GroupTemplateService_GetGroupTemplateGroupListClient, error) {
	stream, err := c.cc.NewStream(ctx, &GroupTemplateService_ServiceDesc.Streams[1], GroupTemplateService_GetGroupTemplateGroupList_FullMethodName, opts...)
	if err != nil {
		return nil, err
	}
	x := &groupTemplateServiceGetGroupTemplateGroupListClient{stream}
	if err := x.ClientStream.SendMsg(in); err != nil {
		return nil, err
	}
	if err := x.ClientStream.CloseSend(); err != nil {
		return nil, err
	}
	return x, nil
}

type GroupTemplateService_GetGroupTemplateGroupListClient interface {
	Recv() (*GetGroupTemplateGroupListResponse, error)
	grpc.ClientStream
}

type groupTemplateServiceGetGroupTemplateGroupListClient struct {
	grpc.ClientStream
}

func (x *groupTemplateServiceGetGroupTemplateGroupListClient) Recv() (*GetGroupTemplateGroupListResponse, error) {
	m := new(GetGroupTemplateGroupListResponse)
	if err := x.ClientStream.RecvMsg(m); err != nil {
		return nil, err
	}
	return m, nil
}

func (c *groupTemplateServiceClient) GetGroupTemplateGroupCount(ctx context.Context, in *GetGroupTemplateGroupCountRequest, opts ...grpc.CallOption) (*GetGroupTemplateGroupCountResponse, error) {
	out := new(GetGroupTemplateGroupCountResponse)
	err := c.cc.Invoke(ctx, GroupTemplateService_GetGroupTemplateGroupCount_FullMethodName, in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *groupTemplateServiceClient) PutGroupTemplateGroupAttach(ctx context.Context, in *PutGroupTemplateGroupAttachRequest, opts ...grpc.CallOption) (*PutGroupTemplateGroupAttachResponse, error) {
	out := new(PutGroupTemplateGroupAttachResponse)
	err := c.cc.Invoke(ctx, GroupTemplateService_PutGroupTemplateGroupAttach_FullMethodName, in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *groupTemplateServiceClient) PutGroupTemplateGroupDetach(ctx context.Context, in *PutGroupTemplateGroupDetachRequest, opts ...grpc.CallOption) (*PutGroupTemplateGroupDetachResponse, error) {
	out := new(PutGroupTemplateGroupDetachResponse)
	err := c.cc.Invoke(ctx, GroupTemplateService_PutGroupTemplateGroupDetach_FullMethodName, in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

// GroupTemplateServiceServer is the server API for GroupTemplateService service.
// All implementations should embed UnimplementedGroupTemplateServiceServer
// for forward compatibility
type GroupTemplateServiceServer interface {
	// Метод получения шаблона группы.
	// Метод доступен для: admin, service, bti, seller
	GetGroupTemplate(context.Context, *GetGroupTemplateRequest) (*GetGroupTemplateResponse, error)
	// Метод получения списка шаблонов групп.
	// Метод доступен для: admin, service, bti, seller
	GetGroupTemplateList(*GetGroupTemplateListRequest, GroupTemplateService_GetGroupTemplateListServer) error
	// Метод получения количества шаблонов групп.
	// Метод доступен для: admin, service, bti, seller
	GetGroupTemplateCount(context.Context, *GetGroupTemplateCountRequest) (*GetGroupTemplateCountResponse, error)
	// Метод сохранения шаблона группы.
	// Поддерживает создание и обновление как UPSERT по GroupTemplate.id.
	// Метод доступен для: admin, service
	PostGroupTemplate(context.Context, *PostGroupTemplateRequest) (*PostGroupTemplateResponse, error)
	// Метод удаления шаблона группы.
	// Проставляет дату удаления GroupTemplate.deleted_at.
	// Метод доступен для: admin, service
	DeleteGroupTemplate(context.Context, *DeleteGroupTemplateRequest) (*DeleteGroupTemplateResponse, error)
	// Метод получения списка связей шаблонов групп и группы пользователя.
	// Метод доступен для: admin, service
	GetGroupTemplateGroupList(*GetGroupTemplateGroupListRequest, GroupTemplateService_GetGroupTemplateGroupListServer) error
	// Метод получения количества связей шаблонов групп и группы пользователя.
	// Метод доступен для: admin, service
	GetGroupTemplateGroupCount(context.Context, *GetGroupTemplateGroupCountRequest) (*GetGroupTemplateGroupCountResponse, error)
	// Метод сохранения связей шаблонов групп и группы пользователя.
	// Метод доступен для: admin, service
	PutGroupTemplateGroupAttach(context.Context, *PutGroupTemplateGroupAttachRequest) (*PutGroupTemplateGroupAttachResponse, error)
	// Метод удаления связей шаблонов групп и группы пользователя.
	// Метод доступен для: admin, service
	PutGroupTemplateGroupDetach(context.Context, *PutGroupTemplateGroupDetachRequest) (*PutGroupTemplateGroupDetachResponse, error)
}

// UnimplementedGroupTemplateServiceServer should be embedded to have forward compatible implementations.
type UnimplementedGroupTemplateServiceServer struct {
}

func (UnimplementedGroupTemplateServiceServer) GetGroupTemplate(context.Context, *GetGroupTemplateRequest) (*GetGroupTemplateResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetGroupTemplate not implemented")
}
func (UnimplementedGroupTemplateServiceServer) GetGroupTemplateList(*GetGroupTemplateListRequest, GroupTemplateService_GetGroupTemplateListServer) error {
	return status.Errorf(codes.Unimplemented, "method GetGroupTemplateList not implemented")
}
func (UnimplementedGroupTemplateServiceServer) GetGroupTemplateCount(context.Context, *GetGroupTemplateCountRequest) (*GetGroupTemplateCountResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetGroupTemplateCount not implemented")
}
func (UnimplementedGroupTemplateServiceServer) PostGroupTemplate(context.Context, *PostGroupTemplateRequest) (*PostGroupTemplateResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method PostGroupTemplate not implemented")
}
func (UnimplementedGroupTemplateServiceServer) DeleteGroupTemplate(context.Context, *DeleteGroupTemplateRequest) (*DeleteGroupTemplateResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method DeleteGroupTemplate not implemented")
}
func (UnimplementedGroupTemplateServiceServer) GetGroupTemplateGroupList(*GetGroupTemplateGroupListRequest, GroupTemplateService_GetGroupTemplateGroupListServer) error {
	return status.Errorf(codes.Unimplemented, "method GetGroupTemplateGroupList not implemented")
}
func (UnimplementedGroupTemplateServiceServer) GetGroupTemplateGroupCount(context.Context, *GetGroupTemplateGroupCountRequest) (*GetGroupTemplateGroupCountResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetGroupTemplateGroupCount not implemented")
}
func (UnimplementedGroupTemplateServiceServer) PutGroupTemplateGroupAttach(context.Context, *PutGroupTemplateGroupAttachRequest) (*PutGroupTemplateGroupAttachResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method PutGroupTemplateGroupAttach not implemented")
}
func (UnimplementedGroupTemplateServiceServer) PutGroupTemplateGroupDetach(context.Context, *PutGroupTemplateGroupDetachRequest) (*PutGroupTemplateGroupDetachResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method PutGroupTemplateGroupDetach not implemented")
}

// UnsafeGroupTemplateServiceServer may be embedded to opt out of forward compatibility for this service.
// Use of this interface is not recommended, as added methods to GroupTemplateServiceServer will
// result in compilation errors.
type UnsafeGroupTemplateServiceServer interface {
	mustEmbedUnimplementedGroupTemplateServiceServer()
}

func RegisterGroupTemplateServiceServer(s grpc.ServiceRegistrar, srv GroupTemplateServiceServer) {
	s.RegisterService(&GroupTemplateService_ServiceDesc, srv)
}

func _GroupTemplateService_GetGroupTemplate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetGroupTemplateRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GroupTemplateServiceServer).GetGroupTemplate(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: GroupTemplateService_GetGroupTemplate_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GroupTemplateServiceServer).GetGroupTemplate(ctx, req.(*GetGroupTemplateRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GroupTemplateService_GetGroupTemplateList_Handler(srv interface{}, stream grpc.ServerStream) error {
	m := new(GetGroupTemplateListRequest)
	if err := stream.RecvMsg(m); err != nil {
		return err
	}
	return srv.(GroupTemplateServiceServer).GetGroupTemplateList(m, &groupTemplateServiceGetGroupTemplateListServer{stream})
}

type GroupTemplateService_GetGroupTemplateListServer interface {
	Send(*GetGroupTemplateListResponse) error
	grpc.ServerStream
}

type groupTemplateServiceGetGroupTemplateListServer struct {
	grpc.ServerStream
}

func (x *groupTemplateServiceGetGroupTemplateListServer) Send(m *GetGroupTemplateListResponse) error {
	return x.ServerStream.SendMsg(m)
}

func _GroupTemplateService_GetGroupTemplateCount_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetGroupTemplateCountRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GroupTemplateServiceServer).GetGroupTemplateCount(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: GroupTemplateService_GetGroupTemplateCount_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GroupTemplateServiceServer).GetGroupTemplateCount(ctx, req.(*GetGroupTemplateCountRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GroupTemplateService_PostGroupTemplate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(PostGroupTemplateRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GroupTemplateServiceServer).PostGroupTemplate(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: GroupTemplateService_PostGroupTemplate_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GroupTemplateServiceServer).PostGroupTemplate(ctx, req.(*PostGroupTemplateRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GroupTemplateService_DeleteGroupTemplate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(DeleteGroupTemplateRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GroupTemplateServiceServer).DeleteGroupTemplate(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: GroupTemplateService_DeleteGroupTemplate_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GroupTemplateServiceServer).DeleteGroupTemplate(ctx, req.(*DeleteGroupTemplateRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GroupTemplateService_GetGroupTemplateGroupList_Handler(srv interface{}, stream grpc.ServerStream) error {
	m := new(GetGroupTemplateGroupListRequest)
	if err := stream.RecvMsg(m); err != nil {
		return err
	}
	return srv.(GroupTemplateServiceServer).GetGroupTemplateGroupList(m, &groupTemplateServiceGetGroupTemplateGroupListServer{stream})
}

type GroupTemplateService_GetGroupTemplateGroupListServer interface {
	Send(*GetGroupTemplateGroupListResponse) error
	grpc.ServerStream
}

type groupTemplateServiceGetGroupTemplateGroupListServer struct {
	grpc.ServerStream
}

func (x *groupTemplateServiceGetGroupTemplateGroupListServer) Send(m *GetGroupTemplateGroupListResponse) error {
	return x.ServerStream.SendMsg(m)
}

func _GroupTemplateService_GetGroupTemplateGroupCount_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetGroupTemplateGroupCountRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GroupTemplateServiceServer).GetGroupTemplateGroupCount(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: GroupTemplateService_GetGroupTemplateGroupCount_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GroupTemplateServiceServer).GetGroupTemplateGroupCount(ctx, req.(*GetGroupTemplateGroupCountRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GroupTemplateService_PutGroupTemplateGroupAttach_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(PutGroupTemplateGroupAttachRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GroupTemplateServiceServer).PutGroupTemplateGroupAttach(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: GroupTemplateService_PutGroupTemplateGroupAttach_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GroupTemplateServiceServer).PutGroupTemplateGroupAttach(ctx, req.(*PutGroupTemplateGroupAttachRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GroupTemplateService_PutGroupTemplateGroupDetach_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(PutGroupTemplateGroupDetachRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GroupTemplateServiceServer).PutGroupTemplateGroupDetach(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: GroupTemplateService_PutGroupTemplateGroupDetach_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GroupTemplateServiceServer).PutGroupTemplateGroupDetach(ctx, req.(*PutGroupTemplateGroupDetachRequest))
	}
	return interceptor(ctx, in, info, handler)
}

// GroupTemplateService_ServiceDesc is the grpc.ServiceDesc for GroupTemplateService service.
// It's only intended for direct use with grpc.RegisterService,
// and not to be introspected or modified (even as a copy)
var GroupTemplateService_ServiceDesc = grpc.ServiceDesc{
	ServiceName: "keyapis.access_management.v1.GroupTemplateService",
	HandlerType: (*GroupTemplateServiceServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "GetGroupTemplate",
			Handler:    _GroupTemplateService_GetGroupTemplate_Handler,
		},
		{
			MethodName: "GetGroupTemplateCount",
			Handler:    _GroupTemplateService_GetGroupTemplateCount_Handler,
		},
		{
			MethodName: "PostGroupTemplate",
			Handler:    _GroupTemplateService_PostGroupTemplate_Handler,
		},
		{
			MethodName: "DeleteGroupTemplate",
			Handler:    _GroupTemplateService_DeleteGroupTemplate_Handler,
		},
		{
			MethodName: "GetGroupTemplateGroupCount",
			Handler:    _GroupTemplateService_GetGroupTemplateGroupCount_Handler,
		},
		{
			MethodName: "PutGroupTemplateGroupAttach",
			Handler:    _GroupTemplateService_PutGroupTemplateGroupAttach_Handler,
		},
		{
			MethodName: "PutGroupTemplateGroupDetach",
			Handler:    _GroupTemplateService_PutGroupTemplateGroupDetach_Handler,
		},
	},
	Streams: []grpc.StreamDesc{
		{
			StreamName:    "GetGroupTemplateList",
			Handler:       _GroupTemplateService_GetGroupTemplateList_Handler,
			ServerStreams: true,
		},
		{
			StreamName:    "GetGroupTemplateGroupList",
			Handler:       _GroupTemplateService_GetGroupTemplateGroupList_Handler,
			ServerStreams: true,
		},
	},
	Metadata: "keyapis/access_management/v1/keyapis_access_management_template_v1.proto",
}
