// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
// versions:
// - protoc-gen-go-grpc v1.5.1
// - protoc             v3.21.12
// source: yandex/cloud/organizationmanager/v1/group_service.proto

package organizationmanager

import (
	context "context"
	access "github.com/yandex-cloud/go-genproto/yandex/cloud/access"
	operation "github.com/yandex-cloud/go-genproto/yandex/cloud/operation"
	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.64.0 or later.
const _ = grpc.SupportPackageIsVersion9

const (
	GroupService_Get_FullMethodName                  = "/yandex.cloud.organizationmanager.v1.GroupService/Get"
	GroupService_ResolveExternal_FullMethodName      = "/yandex.cloud.organizationmanager.v1.GroupService/ResolveExternal"
	GroupService_List_FullMethodName                 = "/yandex.cloud.organizationmanager.v1.GroupService/List"
	GroupService_ListExternal_FullMethodName         = "/yandex.cloud.organizationmanager.v1.GroupService/ListExternal"
	GroupService_Create_FullMethodName               = "/yandex.cloud.organizationmanager.v1.GroupService/Create"
	GroupService_CreateExternal_FullMethodName       = "/yandex.cloud.organizationmanager.v1.GroupService/CreateExternal"
	GroupService_Update_FullMethodName               = "/yandex.cloud.organizationmanager.v1.GroupService/Update"
	GroupService_ConvertToExternal_FullMethodName    = "/yandex.cloud.organizationmanager.v1.GroupService/ConvertToExternal"
	GroupService_ConvertAllToBasic_FullMethodName    = "/yandex.cloud.organizationmanager.v1.GroupService/ConvertAllToBasic"
	GroupService_Delete_FullMethodName               = "/yandex.cloud.organizationmanager.v1.GroupService/Delete"
	GroupService_ListOperations_FullMethodName       = "/yandex.cloud.organizationmanager.v1.GroupService/ListOperations"
	GroupService_ListMembers_FullMethodName          = "/yandex.cloud.organizationmanager.v1.GroupService/ListMembers"
	GroupService_UpdateMembers_FullMethodName        = "/yandex.cloud.organizationmanager.v1.GroupService/UpdateMembers"
	GroupService_ListAccessBindings_FullMethodName   = "/yandex.cloud.organizationmanager.v1.GroupService/ListAccessBindings"
	GroupService_SetAccessBindings_FullMethodName    = "/yandex.cloud.organizationmanager.v1.GroupService/SetAccessBindings"
	GroupService_UpdateAccessBindings_FullMethodName = "/yandex.cloud.organizationmanager.v1.GroupService/UpdateAccessBindings"
	GroupService_ListEffective_FullMethodName        = "/yandex.cloud.organizationmanager.v1.GroupService/ListEffective"
)

// GroupServiceClient is the client API for GroupService 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.
//
// A set of methods for managing groups.
type GroupServiceClient interface {
	// Returns the specified Group resource.
	//
	// To get the list of available Group resources, make a [List] request.
	Get(ctx context.Context, in *GetGroupRequest, opts ...grpc.CallOption) (*Group, error)
	// Returns external group by subject container and external id
	ResolveExternal(ctx context.Context, in *ResolveExternalGroupRequest, opts ...grpc.CallOption) (*Group, error)
	// Retrieves the list of group resources.
	List(ctx context.Context, in *ListGroupsRequest, opts ...grpc.CallOption) (*ListGroupsResponse, error)
	// Retrieves the list of external group linked subject container
	ListExternal(ctx context.Context, in *ListExternalGroupsRequest, opts ...grpc.CallOption) (*ListExternalGroupsResponse, error)
	// Creates a group in the specified organization.
	Create(ctx context.Context, in *CreateGroupRequest, opts ...grpc.CallOption) (*operation.Operation, error)
	// Creates an external group.
	CreateExternal(ctx context.Context, in *CreateExternalGroupRequest, opts ...grpc.CallOption) (*operation.Operation, error)
	// Updates the specified group.
	Update(ctx context.Context, in *UpdateGroupRequest, opts ...grpc.CallOption) (*operation.Operation, error)
	// Converts single basic (not external) group to external. Precondition: group must be basic.
	ConvertToExternal(ctx context.Context, in *ConvertToExternalGroupRequest, opts ...grpc.CallOption) (*operation.Operation, error)
	// Converts all groups that belongs to subject container from external to basic (not external).
	ConvertAllToBasic(ctx context.Context, in *ConvertAllToBasicGroupsRequest, opts ...grpc.CallOption) (*operation.Operation, error)
	// Deletes the specified group.
	Delete(ctx context.Context, in *DeleteGroupRequest, opts ...grpc.CallOption) (*operation.Operation, error)
	// Lists operations for the specified group.
	ListOperations(ctx context.Context, in *ListGroupOperationsRequest, opts ...grpc.CallOption) (*ListGroupOperationsResponse, error)
	// List group active members.
	ListMembers(ctx context.Context, in *ListGroupMembersRequest, opts ...grpc.CallOption) (*ListGroupMembersResponse, error)
	// Update group members.
	UpdateMembers(ctx context.Context, in *UpdateGroupMembersRequest, opts ...grpc.CallOption) (*operation.Operation, error)
	// Lists access bindings for the specified group.
	ListAccessBindings(ctx context.Context, in *access.ListAccessBindingsRequest, opts ...grpc.CallOption) (*access.ListAccessBindingsResponse, error)
	// Sets access bindings for the specified group.
	SetAccessBindings(ctx context.Context, in *access.SetAccessBindingsRequest, opts ...grpc.CallOption) (*operation.Operation, error)
	// Updates access bindings for the specified group.
	UpdateAccessBindings(ctx context.Context, in *access.UpdateAccessBindingsRequest, opts ...grpc.CallOption) (*operation.Operation, error)
	// Returns groups that the subject belongs to within a specific organization.
	ListEffective(ctx context.Context, in *ListEffectiveRequest, opts ...grpc.CallOption) (*ListEffectiveResponse, error)
}

type groupServiceClient struct {
	cc grpc.ClientConnInterface
}

func NewGroupServiceClient(cc grpc.ClientConnInterface) GroupServiceClient {
	return &groupServiceClient{cc}
}

func (c *groupServiceClient) Get(ctx context.Context, in *GetGroupRequest, opts ...grpc.CallOption) (*Group, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(Group)
	err := c.cc.Invoke(ctx, GroupService_Get_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *groupServiceClient) ResolveExternal(ctx context.Context, in *ResolveExternalGroupRequest, opts ...grpc.CallOption) (*Group, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(Group)
	err := c.cc.Invoke(ctx, GroupService_ResolveExternal_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *groupServiceClient) List(ctx context.Context, in *ListGroupsRequest, opts ...grpc.CallOption) (*ListGroupsResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(ListGroupsResponse)
	err := c.cc.Invoke(ctx, GroupService_List_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *groupServiceClient) ListExternal(ctx context.Context, in *ListExternalGroupsRequest, opts ...grpc.CallOption) (*ListExternalGroupsResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(ListExternalGroupsResponse)
	err := c.cc.Invoke(ctx, GroupService_ListExternal_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *groupServiceClient) Create(ctx context.Context, in *CreateGroupRequest, opts ...grpc.CallOption) (*operation.Operation, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(operation.Operation)
	err := c.cc.Invoke(ctx, GroupService_Create_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *groupServiceClient) CreateExternal(ctx context.Context, in *CreateExternalGroupRequest, opts ...grpc.CallOption) (*operation.Operation, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(operation.Operation)
	err := c.cc.Invoke(ctx, GroupService_CreateExternal_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *groupServiceClient) Update(ctx context.Context, in *UpdateGroupRequest, opts ...grpc.CallOption) (*operation.Operation, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(operation.Operation)
	err := c.cc.Invoke(ctx, GroupService_Update_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *groupServiceClient) ConvertToExternal(ctx context.Context, in *ConvertToExternalGroupRequest, opts ...grpc.CallOption) (*operation.Operation, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(operation.Operation)
	err := c.cc.Invoke(ctx, GroupService_ConvertToExternal_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *groupServiceClient) ConvertAllToBasic(ctx context.Context, in *ConvertAllToBasicGroupsRequest, opts ...grpc.CallOption) (*operation.Operation, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(operation.Operation)
	err := c.cc.Invoke(ctx, GroupService_ConvertAllToBasic_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *groupServiceClient) Delete(ctx context.Context, in *DeleteGroupRequest, opts ...grpc.CallOption) (*operation.Operation, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(operation.Operation)
	err := c.cc.Invoke(ctx, GroupService_Delete_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *groupServiceClient) ListOperations(ctx context.Context, in *ListGroupOperationsRequest, opts ...grpc.CallOption) (*ListGroupOperationsResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(ListGroupOperationsResponse)
	err := c.cc.Invoke(ctx, GroupService_ListOperations_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *groupServiceClient) ListMembers(ctx context.Context, in *ListGroupMembersRequest, opts ...grpc.CallOption) (*ListGroupMembersResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(ListGroupMembersResponse)
	err := c.cc.Invoke(ctx, GroupService_ListMembers_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *groupServiceClient) UpdateMembers(ctx context.Context, in *UpdateGroupMembersRequest, opts ...grpc.CallOption) (*operation.Operation, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(operation.Operation)
	err := c.cc.Invoke(ctx, GroupService_UpdateMembers_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *groupServiceClient) ListAccessBindings(ctx context.Context, in *access.ListAccessBindingsRequest, opts ...grpc.CallOption) (*access.ListAccessBindingsResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(access.ListAccessBindingsResponse)
	err := c.cc.Invoke(ctx, GroupService_ListAccessBindings_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *groupServiceClient) SetAccessBindings(ctx context.Context, in *access.SetAccessBindingsRequest, opts ...grpc.CallOption) (*operation.Operation, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(operation.Operation)
	err := c.cc.Invoke(ctx, GroupService_SetAccessBindings_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *groupServiceClient) UpdateAccessBindings(ctx context.Context, in *access.UpdateAccessBindingsRequest, opts ...grpc.CallOption) (*operation.Operation, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(operation.Operation)
	err := c.cc.Invoke(ctx, GroupService_UpdateAccessBindings_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *groupServiceClient) ListEffective(ctx context.Context, in *ListEffectiveRequest, opts ...grpc.CallOption) (*ListEffectiveResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(ListEffectiveResponse)
	err := c.cc.Invoke(ctx, GroupService_ListEffective_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

// GroupServiceServer is the server API for GroupService service.
// All implementations should embed UnimplementedGroupServiceServer
// for forward compatibility.
//
// A set of methods for managing groups.
type GroupServiceServer interface {
	// Returns the specified Group resource.
	//
	// To get the list of available Group resources, make a [List] request.
	Get(context.Context, *GetGroupRequest) (*Group, error)
	// Returns external group by subject container and external id
	ResolveExternal(context.Context, *ResolveExternalGroupRequest) (*Group, error)
	// Retrieves the list of group resources.
	List(context.Context, *ListGroupsRequest) (*ListGroupsResponse, error)
	// Retrieves the list of external group linked subject container
	ListExternal(context.Context, *ListExternalGroupsRequest) (*ListExternalGroupsResponse, error)
	// Creates a group in the specified organization.
	Create(context.Context, *CreateGroupRequest) (*operation.Operation, error)
	// Creates an external group.
	CreateExternal(context.Context, *CreateExternalGroupRequest) (*operation.Operation, error)
	// Updates the specified group.
	Update(context.Context, *UpdateGroupRequest) (*operation.Operation, error)
	// Converts single basic (not external) group to external. Precondition: group must be basic.
	ConvertToExternal(context.Context, *ConvertToExternalGroupRequest) (*operation.Operation, error)
	// Converts all groups that belongs to subject container from external to basic (not external).
	ConvertAllToBasic(context.Context, *ConvertAllToBasicGroupsRequest) (*operation.Operation, error)
	// Deletes the specified group.
	Delete(context.Context, *DeleteGroupRequest) (*operation.Operation, error)
	// Lists operations for the specified group.
	ListOperations(context.Context, *ListGroupOperationsRequest) (*ListGroupOperationsResponse, error)
	// List group active members.
	ListMembers(context.Context, *ListGroupMembersRequest) (*ListGroupMembersResponse, error)
	// Update group members.
	UpdateMembers(context.Context, *UpdateGroupMembersRequest) (*operation.Operation, error)
	// Lists access bindings for the specified group.
	ListAccessBindings(context.Context, *access.ListAccessBindingsRequest) (*access.ListAccessBindingsResponse, error)
	// Sets access bindings for the specified group.
	SetAccessBindings(context.Context, *access.SetAccessBindingsRequest) (*operation.Operation, error)
	// Updates access bindings for the specified group.
	UpdateAccessBindings(context.Context, *access.UpdateAccessBindingsRequest) (*operation.Operation, error)
	// Returns groups that the subject belongs to within a specific organization.
	ListEffective(context.Context, *ListEffectiveRequest) (*ListEffectiveResponse, error)
}

// UnimplementedGroupServiceServer should be embedded to have
// forward compatible implementations.
//
// NOTE: this should be embedded by value instead of pointer to avoid a nil
// pointer dereference when methods are called.
type UnimplementedGroupServiceServer struct{}

func (UnimplementedGroupServiceServer) Get(context.Context, *GetGroupRequest) (*Group, error) {
	return nil, status.Errorf(codes.Unimplemented, "method Get not implemented")
}
func (UnimplementedGroupServiceServer) ResolveExternal(context.Context, *ResolveExternalGroupRequest) (*Group, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ResolveExternal not implemented")
}
func (UnimplementedGroupServiceServer) List(context.Context, *ListGroupsRequest) (*ListGroupsResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method List not implemented")
}
func (UnimplementedGroupServiceServer) ListExternal(context.Context, *ListExternalGroupsRequest) (*ListExternalGroupsResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ListExternal not implemented")
}
func (UnimplementedGroupServiceServer) Create(context.Context, *CreateGroupRequest) (*operation.Operation, error) {
	return nil, status.Errorf(codes.Unimplemented, "method Create not implemented")
}
func (UnimplementedGroupServiceServer) CreateExternal(context.Context, *CreateExternalGroupRequest) (*operation.Operation, error) {
	return nil, status.Errorf(codes.Unimplemented, "method CreateExternal not implemented")
}
func (UnimplementedGroupServiceServer) Update(context.Context, *UpdateGroupRequest) (*operation.Operation, error) {
	return nil, status.Errorf(codes.Unimplemented, "method Update not implemented")
}
func (UnimplementedGroupServiceServer) ConvertToExternal(context.Context, *ConvertToExternalGroupRequest) (*operation.Operation, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ConvertToExternal not implemented")
}
func (UnimplementedGroupServiceServer) ConvertAllToBasic(context.Context, *ConvertAllToBasicGroupsRequest) (*operation.Operation, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ConvertAllToBasic not implemented")
}
func (UnimplementedGroupServiceServer) Delete(context.Context, *DeleteGroupRequest) (*operation.Operation, error) {
	return nil, status.Errorf(codes.Unimplemented, "method Delete not implemented")
}
func (UnimplementedGroupServiceServer) ListOperations(context.Context, *ListGroupOperationsRequest) (*ListGroupOperationsResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ListOperations not implemented")
}
func (UnimplementedGroupServiceServer) ListMembers(context.Context, *ListGroupMembersRequest) (*ListGroupMembersResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ListMembers not implemented")
}
func (UnimplementedGroupServiceServer) UpdateMembers(context.Context, *UpdateGroupMembersRequest) (*operation.Operation, error) {
	return nil, status.Errorf(codes.Unimplemented, "method UpdateMembers not implemented")
}
func (UnimplementedGroupServiceServer) ListAccessBindings(context.Context, *access.ListAccessBindingsRequest) (*access.ListAccessBindingsResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ListAccessBindings not implemented")
}
func (UnimplementedGroupServiceServer) SetAccessBindings(context.Context, *access.SetAccessBindingsRequest) (*operation.Operation, error) {
	return nil, status.Errorf(codes.Unimplemented, "method SetAccessBindings not implemented")
}
func (UnimplementedGroupServiceServer) UpdateAccessBindings(context.Context, *access.UpdateAccessBindingsRequest) (*operation.Operation, error) {
	return nil, status.Errorf(codes.Unimplemented, "method UpdateAccessBindings not implemented")
}
func (UnimplementedGroupServiceServer) ListEffective(context.Context, *ListEffectiveRequest) (*ListEffectiveResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ListEffective not implemented")
}
func (UnimplementedGroupServiceServer) testEmbeddedByValue() {}

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

func RegisterGroupServiceServer(s grpc.ServiceRegistrar, srv GroupServiceServer) {
	// If the following call pancis, it indicates UnimplementedGroupServiceServer was
	// embedded by pointer and is nil.  This will cause panics if an
	// unimplemented method is ever invoked, so we test this at initialization
	// time to prevent it from happening at runtime later due to I/O.
	if t, ok := srv.(interface{ testEmbeddedByValue() }); ok {
		t.testEmbeddedByValue()
	}
	s.RegisterService(&GroupService_ServiceDesc, srv)
}

func _GroupService_Get_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetGroupRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GroupServiceServer).Get(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: GroupService_Get_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GroupServiceServer).Get(ctx, req.(*GetGroupRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GroupService_ResolveExternal_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ResolveExternalGroupRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GroupServiceServer).ResolveExternal(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: GroupService_ResolveExternal_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GroupServiceServer).ResolveExternal(ctx, req.(*ResolveExternalGroupRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GroupService_List_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ListGroupsRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GroupServiceServer).List(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: GroupService_List_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GroupServiceServer).List(ctx, req.(*ListGroupsRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GroupService_ListExternal_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ListExternalGroupsRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GroupServiceServer).ListExternal(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: GroupService_ListExternal_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GroupServiceServer).ListExternal(ctx, req.(*ListExternalGroupsRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GroupService_Create_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(CreateGroupRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GroupServiceServer).Create(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: GroupService_Create_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GroupServiceServer).Create(ctx, req.(*CreateGroupRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GroupService_CreateExternal_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(CreateExternalGroupRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GroupServiceServer).CreateExternal(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: GroupService_CreateExternal_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GroupServiceServer).CreateExternal(ctx, req.(*CreateExternalGroupRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GroupService_Update_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(UpdateGroupRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GroupServiceServer).Update(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: GroupService_Update_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GroupServiceServer).Update(ctx, req.(*UpdateGroupRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GroupService_ConvertToExternal_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ConvertToExternalGroupRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GroupServiceServer).ConvertToExternal(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: GroupService_ConvertToExternal_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GroupServiceServer).ConvertToExternal(ctx, req.(*ConvertToExternalGroupRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GroupService_ConvertAllToBasic_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ConvertAllToBasicGroupsRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GroupServiceServer).ConvertAllToBasic(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: GroupService_ConvertAllToBasic_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GroupServiceServer).ConvertAllToBasic(ctx, req.(*ConvertAllToBasicGroupsRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GroupService_Delete_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(DeleteGroupRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GroupServiceServer).Delete(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: GroupService_Delete_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GroupServiceServer).Delete(ctx, req.(*DeleteGroupRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GroupService_ListOperations_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ListGroupOperationsRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GroupServiceServer).ListOperations(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: GroupService_ListOperations_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GroupServiceServer).ListOperations(ctx, req.(*ListGroupOperationsRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GroupService_ListMembers_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ListGroupMembersRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GroupServiceServer).ListMembers(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: GroupService_ListMembers_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GroupServiceServer).ListMembers(ctx, req.(*ListGroupMembersRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GroupService_UpdateMembers_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(UpdateGroupMembersRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GroupServiceServer).UpdateMembers(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: GroupService_UpdateMembers_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GroupServiceServer).UpdateMembers(ctx, req.(*UpdateGroupMembersRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GroupService_ListAccessBindings_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(access.ListAccessBindingsRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GroupServiceServer).ListAccessBindings(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: GroupService_ListAccessBindings_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GroupServiceServer).ListAccessBindings(ctx, req.(*access.ListAccessBindingsRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GroupService_SetAccessBindings_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(access.SetAccessBindingsRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GroupServiceServer).SetAccessBindings(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: GroupService_SetAccessBindings_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GroupServiceServer).SetAccessBindings(ctx, req.(*access.SetAccessBindingsRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GroupService_UpdateAccessBindings_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(access.UpdateAccessBindingsRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GroupServiceServer).UpdateAccessBindings(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: GroupService_UpdateAccessBindings_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GroupServiceServer).UpdateAccessBindings(ctx, req.(*access.UpdateAccessBindingsRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _GroupService_ListEffective_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ListEffectiveRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(GroupServiceServer).ListEffective(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: GroupService_ListEffective_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(GroupServiceServer).ListEffective(ctx, req.(*ListEffectiveRequest))
	}
	return interceptor(ctx, in, info, handler)
}

// GroupService_ServiceDesc is the grpc.ServiceDesc for GroupService service.
// It's only intended for direct use with grpc.RegisterService,
// and not to be introspected or modified (even as a copy)
var GroupService_ServiceDesc = grpc.ServiceDesc{
	ServiceName: "yandex.cloud.organizationmanager.v1.GroupService",
	HandlerType: (*GroupServiceServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "Get",
			Handler:    _GroupService_Get_Handler,
		},
		{
			MethodName: "ResolveExternal",
			Handler:    _GroupService_ResolveExternal_Handler,
		},
		{
			MethodName: "List",
			Handler:    _GroupService_List_Handler,
		},
		{
			MethodName: "ListExternal",
			Handler:    _GroupService_ListExternal_Handler,
		},
		{
			MethodName: "Create",
			Handler:    _GroupService_Create_Handler,
		},
		{
			MethodName: "CreateExternal",
			Handler:    _GroupService_CreateExternal_Handler,
		},
		{
			MethodName: "Update",
			Handler:    _GroupService_Update_Handler,
		},
		{
			MethodName: "ConvertToExternal",
			Handler:    _GroupService_ConvertToExternal_Handler,
		},
		{
			MethodName: "ConvertAllToBasic",
			Handler:    _GroupService_ConvertAllToBasic_Handler,
		},
		{
			MethodName: "Delete",
			Handler:    _GroupService_Delete_Handler,
		},
		{
			MethodName: "ListOperations",
			Handler:    _GroupService_ListOperations_Handler,
		},
		{
			MethodName: "ListMembers",
			Handler:    _GroupService_ListMembers_Handler,
		},
		{
			MethodName: "UpdateMembers",
			Handler:    _GroupService_UpdateMembers_Handler,
		},
		{
			MethodName: "ListAccessBindings",
			Handler:    _GroupService_ListAccessBindings_Handler,
		},
		{
			MethodName: "SetAccessBindings",
			Handler:    _GroupService_SetAccessBindings_Handler,
		},
		{
			MethodName: "UpdateAccessBindings",
			Handler:    _GroupService_UpdateAccessBindings_Handler,
		},
		{
			MethodName: "ListEffective",
			Handler:    _GroupService_ListEffective_Handler,
		},
	},
	Streams:  []grpc.StreamDesc{},
	Metadata: "yandex/cloud/organizationmanager/v1/group_service.proto",
}
