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

package v1beta1

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 (
	ExportService_ListExports_FullMethodName         = "/v1beta1.ExportService/ListExports"
	ExportService_GetExport_FullMethodName           = "/v1beta1.ExportService/GetExport"
	ExportService_CancelExport_FullMethodName        = "/v1beta1.ExportService/CancelExport"
	ExportService_CreateExport_FullMethodName        = "/v1beta1.ExportService/CreateExport"
	ExportService_DeleteExport_FullMethodName        = "/v1beta1.ExportService/DeleteExport"
	ExportService_DownloadExport_FullMethodName      = "/v1beta1.ExportService/DownloadExport"
	ExportService_ListExportFiles_FullMethodName     = "/v1beta1.ExportService/ListExportFiles"
	ExportService_DownloadExportFiles_FullMethodName = "/v1beta1.ExportService/DownloadExportFiles"
)

// ExportServiceClient is the client API for ExportService 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.
//
// The ExportService provides APIs for TiDB Cloud Starter and Essential export tasks.
type ExportServiceClient interface {
	// List export tasks on a cluster
	ListExports(ctx context.Context, in *ListExportsRequest, opts ...grpc.CallOption) (*ListExportsResponse, error)
	// Get details of an export task
	GetExport(ctx context.Context, in *GetExportRequest, opts ...grpc.CallOption) (*Export, error)
	// Cancel an export task
	CancelExport(ctx context.Context, in *CancelExportRequest, opts ...grpc.CallOption) (*Export, error)
	// Create an export task
	CreateExport(ctx context.Context, in *CreateExportRequest, opts ...grpc.CallOption) (*Export, error)
	// Delete an export task
	DeleteExport(ctx context.Context, in *DeleteExportRequest, opts ...grpc.CallOption) (*Export, error)
	// Deprecated: Do not use.
	// Generate download url
	DownloadExport(ctx context.Context, in *DownloadExportRequest, opts ...grpc.CallOption) (*DownloadExportsResponse, error)
	// List export files
	ListExportFiles(ctx context.Context, in *ListExportFilesRequest, opts ...grpc.CallOption) (*ListExportFilesResponse, error)
	// Generate export files download url
	DownloadExportFiles(ctx context.Context, in *DownloadExportFilesRequest, opts ...grpc.CallOption) (*DownloadExportFilesResponse, error)
}

type exportServiceClient struct {
	cc grpc.ClientConnInterface
}

func NewExportServiceClient(cc grpc.ClientConnInterface) ExportServiceClient {
	return &exportServiceClient{cc}
}

func (c *exportServiceClient) ListExports(ctx context.Context, in *ListExportsRequest, opts ...grpc.CallOption) (*ListExportsResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(ListExportsResponse)
	err := c.cc.Invoke(ctx, ExportService_ListExports_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *exportServiceClient) GetExport(ctx context.Context, in *GetExportRequest, opts ...grpc.CallOption) (*Export, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(Export)
	err := c.cc.Invoke(ctx, ExportService_GetExport_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *exportServiceClient) CancelExport(ctx context.Context, in *CancelExportRequest, opts ...grpc.CallOption) (*Export, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(Export)
	err := c.cc.Invoke(ctx, ExportService_CancelExport_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *exportServiceClient) CreateExport(ctx context.Context, in *CreateExportRequest, opts ...grpc.CallOption) (*Export, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(Export)
	err := c.cc.Invoke(ctx, ExportService_CreateExport_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *exportServiceClient) DeleteExport(ctx context.Context, in *DeleteExportRequest, opts ...grpc.CallOption) (*Export, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(Export)
	err := c.cc.Invoke(ctx, ExportService_DeleteExport_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

// Deprecated: Do not use.
func (c *exportServiceClient) DownloadExport(ctx context.Context, in *DownloadExportRequest, opts ...grpc.CallOption) (*DownloadExportsResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(DownloadExportsResponse)
	err := c.cc.Invoke(ctx, ExportService_DownloadExport_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *exportServiceClient) ListExportFiles(ctx context.Context, in *ListExportFilesRequest, opts ...grpc.CallOption) (*ListExportFilesResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(ListExportFilesResponse)
	err := c.cc.Invoke(ctx, ExportService_ListExportFiles_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *exportServiceClient) DownloadExportFiles(ctx context.Context, in *DownloadExportFilesRequest, opts ...grpc.CallOption) (*DownloadExportFilesResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(DownloadExportFilesResponse)
	err := c.cc.Invoke(ctx, ExportService_DownloadExportFiles_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

// ExportServiceServer is the server API for ExportService service.
// All implementations must embed UnimplementedExportServiceServer
// for forward compatibility
//
// The ExportService provides APIs for TiDB Cloud Starter and Essential export tasks.
type ExportServiceServer interface {
	// List export tasks on a cluster
	ListExports(context.Context, *ListExportsRequest) (*ListExportsResponse, error)
	// Get details of an export task
	GetExport(context.Context, *GetExportRequest) (*Export, error)
	// Cancel an export task
	CancelExport(context.Context, *CancelExportRequest) (*Export, error)
	// Create an export task
	CreateExport(context.Context, *CreateExportRequest) (*Export, error)
	// Delete an export task
	DeleteExport(context.Context, *DeleteExportRequest) (*Export, error)
	// Deprecated: Do not use.
	// Generate download url
	DownloadExport(context.Context, *DownloadExportRequest) (*DownloadExportsResponse, error)
	// List export files
	ListExportFiles(context.Context, *ListExportFilesRequest) (*ListExportFilesResponse, error)
	// Generate export files download url
	DownloadExportFiles(context.Context, *DownloadExportFilesRequest) (*DownloadExportFilesResponse, error)
	mustEmbedUnimplementedExportServiceServer()
}

// UnimplementedExportServiceServer must be embedded to have forward compatible implementations.
type UnimplementedExportServiceServer struct {
}

func (UnimplementedExportServiceServer) ListExports(context.Context, *ListExportsRequest) (*ListExportsResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ListExports not implemented")
}
func (UnimplementedExportServiceServer) GetExport(context.Context, *GetExportRequest) (*Export, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetExport not implemented")
}
func (UnimplementedExportServiceServer) CancelExport(context.Context, *CancelExportRequest) (*Export, error) {
	return nil, status.Errorf(codes.Unimplemented, "method CancelExport not implemented")
}
func (UnimplementedExportServiceServer) CreateExport(context.Context, *CreateExportRequest) (*Export, error) {
	return nil, status.Errorf(codes.Unimplemented, "method CreateExport not implemented")
}
func (UnimplementedExportServiceServer) DeleteExport(context.Context, *DeleteExportRequest) (*Export, error) {
	return nil, status.Errorf(codes.Unimplemented, "method DeleteExport not implemented")
}
func (UnimplementedExportServiceServer) DownloadExport(context.Context, *DownloadExportRequest) (*DownloadExportsResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method DownloadExport not implemented")
}
func (UnimplementedExportServiceServer) ListExportFiles(context.Context, *ListExportFilesRequest) (*ListExportFilesResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ListExportFiles not implemented")
}
func (UnimplementedExportServiceServer) DownloadExportFiles(context.Context, *DownloadExportFilesRequest) (*DownloadExportFilesResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method DownloadExportFiles not implemented")
}
func (UnimplementedExportServiceServer) mustEmbedUnimplementedExportServiceServer() {}

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

func RegisterExportServiceServer(s grpc.ServiceRegistrar, srv ExportServiceServer) {
	s.RegisterService(&ExportService_ServiceDesc, srv)
}

func _ExportService_ListExports_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ListExportsRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ExportServiceServer).ListExports(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: ExportService_ListExports_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ExportServiceServer).ListExports(ctx, req.(*ListExportsRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ExportService_GetExport_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetExportRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ExportServiceServer).GetExport(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: ExportService_GetExport_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ExportServiceServer).GetExport(ctx, req.(*GetExportRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ExportService_CancelExport_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(CancelExportRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ExportServiceServer).CancelExport(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: ExportService_CancelExport_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ExportServiceServer).CancelExport(ctx, req.(*CancelExportRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ExportService_CreateExport_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(CreateExportRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ExportServiceServer).CreateExport(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: ExportService_CreateExport_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ExportServiceServer).CreateExport(ctx, req.(*CreateExportRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ExportService_DeleteExport_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(DeleteExportRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ExportServiceServer).DeleteExport(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: ExportService_DeleteExport_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ExportServiceServer).DeleteExport(ctx, req.(*DeleteExportRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ExportService_DownloadExport_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(DownloadExportRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ExportServiceServer).DownloadExport(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: ExportService_DownloadExport_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ExportServiceServer).DownloadExport(ctx, req.(*DownloadExportRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ExportService_ListExportFiles_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ListExportFilesRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ExportServiceServer).ListExportFiles(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: ExportService_ListExportFiles_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ExportServiceServer).ListExportFiles(ctx, req.(*ListExportFilesRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ExportService_DownloadExportFiles_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(DownloadExportFilesRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ExportServiceServer).DownloadExportFiles(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: ExportService_DownloadExportFiles_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ExportServiceServer).DownloadExportFiles(ctx, req.(*DownloadExportFilesRequest))
	}
	return interceptor(ctx, in, info, handler)
}

// ExportService_ServiceDesc is the grpc.ServiceDesc for ExportService service.
// It's only intended for direct use with grpc.RegisterService,
// and not to be introspected or modified (even as a copy)
var ExportService_ServiceDesc = grpc.ServiceDesc{
	ServiceName: "v1beta1.ExportService",
	HandlerType: (*ExportServiceServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "ListExports",
			Handler:    _ExportService_ListExports_Handler,
		},
		{
			MethodName: "GetExport",
			Handler:    _ExportService_GetExport_Handler,
		},
		{
			MethodName: "CancelExport",
			Handler:    _ExportService_CancelExport_Handler,
		},
		{
			MethodName: "CreateExport",
			Handler:    _ExportService_CreateExport_Handler,
		},
		{
			MethodName: "DeleteExport",
			Handler:    _ExportService_DeleteExport_Handler,
		},
		{
			MethodName: "DownloadExport",
			Handler:    _ExportService_DownloadExport_Handler,
		},
		{
			MethodName: "ListExportFiles",
			Handler:    _ExportService_ListExportFiles_Handler,
		},
		{
			MethodName: "DownloadExportFiles",
			Handler:    _ExportService_DownloadExportFiles_Handler,
		},
	},
	Streams:  []grpc.StreamDesc{},
	Metadata: "v1beta1/export.proto",
}
