// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
// versions:
// - protoc-gen-go-grpc v1.4.0
// - protoc             (unknown)
// source: tidb_mgmt_service/v1/shadowpool.proto

package tidb_mgmt_servicev1

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.62.0 or later.
const _ = grpc.SupportPackageIsVersion8

const (
	ShadowPoolManagementService_CreateShadowPool_FullMethodName = "/tidb_mgmt_service.v1.ShadowPoolManagementService/CreateShadowPool"
	ShadowPoolManagementService_GetShadowPool_FullMethodName    = "/tidb_mgmt_service.v1.ShadowPoolManagementService/GetShadowPool"
	ShadowPoolManagementService_ListShadowPools_FullMethodName  = "/tidb_mgmt_service.v1.ShadowPoolManagementService/ListShadowPools"
	ShadowPoolManagementService_UpdateShadowPool_FullMethodName = "/tidb_mgmt_service.v1.ShadowPoolManagementService/UpdateShadowPool"
	ShadowPoolManagementService_DeleteShadowPool_FullMethodName = "/tidb_mgmt_service.v1.ShadowPoolManagementService/DeleteShadowPool"
)

// ShadowPoolManagementServiceClient is the client API for ShadowPoolManagementService 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.
//
// ShadowPoolManagementService provides CRUD operations for shadow pool configurations.
// All APIs here are for global control plane internal use only.
type ShadowPoolManagementServiceClient interface {
	CreateShadowPool(ctx context.Context, in *CreateShadowPoolRequest, opts ...grpc.CallOption) (*ShadowPool, error)
	GetShadowPool(ctx context.Context, in *GetShadowPoolRequest, opts ...grpc.CallOption) (*ShadowPool, error)
	ListShadowPools(ctx context.Context, in *ListShadowPoolsRequest, opts ...grpc.CallOption) (*ListShadowPoolsResponse, error)
	UpdateShadowPool(ctx context.Context, in *UpdateShadowPoolRequest, opts ...grpc.CallOption) (*ShadowPool, error)
	DeleteShadowPool(ctx context.Context, in *DeleteShadowPoolRequest, opts ...grpc.CallOption) (*DeleteShadowPoolResponse, error)
}

type shadowPoolManagementServiceClient struct {
	cc grpc.ClientConnInterface
}

func NewShadowPoolManagementServiceClient(cc grpc.ClientConnInterface) ShadowPoolManagementServiceClient {
	return &shadowPoolManagementServiceClient{cc}
}

func (c *shadowPoolManagementServiceClient) CreateShadowPool(ctx context.Context, in *CreateShadowPoolRequest, opts ...grpc.CallOption) (*ShadowPool, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(ShadowPool)
	err := c.cc.Invoke(ctx, ShadowPoolManagementService_CreateShadowPool_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *shadowPoolManagementServiceClient) GetShadowPool(ctx context.Context, in *GetShadowPoolRequest, opts ...grpc.CallOption) (*ShadowPool, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(ShadowPool)
	err := c.cc.Invoke(ctx, ShadowPoolManagementService_GetShadowPool_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *shadowPoolManagementServiceClient) ListShadowPools(ctx context.Context, in *ListShadowPoolsRequest, opts ...grpc.CallOption) (*ListShadowPoolsResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(ListShadowPoolsResponse)
	err := c.cc.Invoke(ctx, ShadowPoolManagementService_ListShadowPools_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *shadowPoolManagementServiceClient) UpdateShadowPool(ctx context.Context, in *UpdateShadowPoolRequest, opts ...grpc.CallOption) (*ShadowPool, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(ShadowPool)
	err := c.cc.Invoke(ctx, ShadowPoolManagementService_UpdateShadowPool_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *shadowPoolManagementServiceClient) DeleteShadowPool(ctx context.Context, in *DeleteShadowPoolRequest, opts ...grpc.CallOption) (*DeleteShadowPoolResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(DeleteShadowPoolResponse)
	err := c.cc.Invoke(ctx, ShadowPoolManagementService_DeleteShadowPool_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

// ShadowPoolManagementServiceServer is the server API for ShadowPoolManagementService service.
// All implementations should embed UnimplementedShadowPoolManagementServiceServer
// for forward compatibility
//
// ShadowPoolManagementService provides CRUD operations for shadow pool configurations.
// All APIs here are for global control plane internal use only.
type ShadowPoolManagementServiceServer interface {
	CreateShadowPool(context.Context, *CreateShadowPoolRequest) (*ShadowPool, error)
	GetShadowPool(context.Context, *GetShadowPoolRequest) (*ShadowPool, error)
	ListShadowPools(context.Context, *ListShadowPoolsRequest) (*ListShadowPoolsResponse, error)
	UpdateShadowPool(context.Context, *UpdateShadowPoolRequest) (*ShadowPool, error)
	DeleteShadowPool(context.Context, *DeleteShadowPoolRequest) (*DeleteShadowPoolResponse, error)
}

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

func (UnimplementedShadowPoolManagementServiceServer) CreateShadowPool(context.Context, *CreateShadowPoolRequest) (*ShadowPool, error) {
	return nil, status.Errorf(codes.Unimplemented, "method CreateShadowPool not implemented")
}
func (UnimplementedShadowPoolManagementServiceServer) GetShadowPool(context.Context, *GetShadowPoolRequest) (*ShadowPool, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetShadowPool not implemented")
}
func (UnimplementedShadowPoolManagementServiceServer) ListShadowPools(context.Context, *ListShadowPoolsRequest) (*ListShadowPoolsResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ListShadowPools not implemented")
}
func (UnimplementedShadowPoolManagementServiceServer) UpdateShadowPool(context.Context, *UpdateShadowPoolRequest) (*ShadowPool, error) {
	return nil, status.Errorf(codes.Unimplemented, "method UpdateShadowPool not implemented")
}
func (UnimplementedShadowPoolManagementServiceServer) DeleteShadowPool(context.Context, *DeleteShadowPoolRequest) (*DeleteShadowPoolResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method DeleteShadowPool not implemented")
}

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

func RegisterShadowPoolManagementServiceServer(s grpc.ServiceRegistrar, srv ShadowPoolManagementServiceServer) {
	s.RegisterService(&ShadowPoolManagementService_ServiceDesc, srv)
}

func _ShadowPoolManagementService_CreateShadowPool_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(CreateShadowPoolRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ShadowPoolManagementServiceServer).CreateShadowPool(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: ShadowPoolManagementService_CreateShadowPool_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ShadowPoolManagementServiceServer).CreateShadowPool(ctx, req.(*CreateShadowPoolRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ShadowPoolManagementService_GetShadowPool_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetShadowPoolRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ShadowPoolManagementServiceServer).GetShadowPool(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: ShadowPoolManagementService_GetShadowPool_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ShadowPoolManagementServiceServer).GetShadowPool(ctx, req.(*GetShadowPoolRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ShadowPoolManagementService_ListShadowPools_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ListShadowPoolsRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ShadowPoolManagementServiceServer).ListShadowPools(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: ShadowPoolManagementService_ListShadowPools_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ShadowPoolManagementServiceServer).ListShadowPools(ctx, req.(*ListShadowPoolsRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ShadowPoolManagementService_UpdateShadowPool_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(UpdateShadowPoolRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ShadowPoolManagementServiceServer).UpdateShadowPool(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: ShadowPoolManagementService_UpdateShadowPool_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ShadowPoolManagementServiceServer).UpdateShadowPool(ctx, req.(*UpdateShadowPoolRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ShadowPoolManagementService_DeleteShadowPool_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(DeleteShadowPoolRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ShadowPoolManagementServiceServer).DeleteShadowPool(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: ShadowPoolManagementService_DeleteShadowPool_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ShadowPoolManagementServiceServer).DeleteShadowPool(ctx, req.(*DeleteShadowPoolRequest))
	}
	return interceptor(ctx, in, info, handler)
}

// ShadowPoolManagementService_ServiceDesc is the grpc.ServiceDesc for ShadowPoolManagementService service.
// It's only intended for direct use with grpc.RegisterService,
// and not to be introspected or modified (even as a copy)
var ShadowPoolManagementService_ServiceDesc = grpc.ServiceDesc{
	ServiceName: "tidb_mgmt_service.v1.ShadowPoolManagementService",
	HandlerType: (*ShadowPoolManagementServiceServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "CreateShadowPool",
			Handler:    _ShadowPoolManagementService_CreateShadowPool_Handler,
		},
		{
			MethodName: "GetShadowPool",
			Handler:    _ShadowPoolManagementService_GetShadowPool_Handler,
		},
		{
			MethodName: "ListShadowPools",
			Handler:    _ShadowPoolManagementService_ListShadowPools_Handler,
		},
		{
			MethodName: "UpdateShadowPool",
			Handler:    _ShadowPoolManagementService_UpdateShadowPool_Handler,
		},
		{
			MethodName: "DeleteShadowPool",
			Handler:    _ShadowPoolManagementService_DeleteShadowPool_Handler,
		},
	},
	Streams:  []grpc.StreamDesc{},
	Metadata: "tidb_mgmt_service/v1/shadowpool.proto",
}
