// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
// versions:
// - protoc-gen-go-grpc v1.3.0
// - protoc             (unknown)
// source: openapi/v1beta2/changefeed.proto

package v1beta2

import (
	context "context"
	grpc "google.golang.org/grpc"
	codes "google.golang.org/grpc/codes"
	status "google.golang.org/grpc/status"
	emptypb "google.golang.org/protobuf/types/known/emptypb"
)

// 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 (
	ChangefeedService_ListChangefeeds_FullMethodName                = "/openapi.v1beta2.ChangefeedService/ListChangefeeds"
	ChangefeedService_GetChangefeed_FullMethodName                  = "/openapi.v1beta2.ChangefeedService/GetChangefeed"
	ChangefeedService_PauseChangefeed_FullMethodName                = "/openapi.v1beta2.ChangefeedService/PauseChangefeed"
	ChangefeedService_ResumeChangefeed_FullMethodName               = "/openapi.v1beta2.ChangefeedService/ResumeChangefeed"
	ChangefeedService_CreateChangefeed_FullMethodName               = "/openapi.v1beta2.ChangefeedService/CreateChangefeed"
	ChangefeedService_DeleteChangefeed_FullMethodName               = "/openapi.v1beta2.ChangefeedService/DeleteChangefeed"
	ChangefeedService_EditChangefeedDownstreamConfig_FullMethodName = "/openapi.v1beta2.ChangefeedService/EditChangefeedDownstreamConfig"
	ChangefeedService_ScaleChangefeed_FullMethodName                = "/openapi.v1beta2.ChangefeedService/ScaleChangefeed"
	ChangefeedService_ListCCUs_FullMethodName                       = "/openapi.v1beta2.ChangefeedService/ListCCUs"
)

// ChangefeedServiceClient is the client API for ChangefeedService 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 ChangefeedServiceClient interface {
	// ListChangefeeds
	//
	// Lists the changefeeds for a TiDB instance. Results can be filtered by downstream type and paginated using the page token.
	// Example: GET /v1beta2/changefeeds?tidb_id=123456&page_size=10
	ListChangefeeds(ctx context.Context, in *ListChangefeedsRequest, opts ...grpc.CallOption) (*ListChangefeedsResponse, error)
	// GetChangefeed
	//
	// Gets the details of a changefeed by its ID, including its state, configuration, and checkpoint information.
	// Example: GET /v1beta2/changefeeds/67890
	GetChangefeed(ctx context.Context, in *GetChangefeedRequest, opts ...grpc.CallOption) (*Changefeed, error)
	// PauseChangefeed
	//
	// Pauses a running changefeed. While paused, the changefeed stops replicating data but retains its configuration and checkpoint.
	// Example: POST /v1beta2/changefeeds/67890:pause
	// (-- api-linter: core::0136::response-message-name=disabled --)
	PauseChangefeed(ctx context.Context, in *PauseChangefeedRequest, opts ...grpc.CallOption) (*emptypb.Empty, error)
	// ResumeChangefeed
	//
	// Resumes a paused changefeed. The changefeed continues replicating data from its last checkpoint.
	// Example: POST /v1beta2/changefeeds/67890:resume
	// (-- api-linter: core::0136::response-message-name=disabled --)
	ResumeChangefeed(ctx context.Context, in *ResumeChangefeedRequest, opts ...grpc.CallOption) (*emptypb.Empty, error)
	// CreateChangefeed
	//
	// Creates a new changefeed for replicating data to a downstream system.
	// Example: POST /v1beta2/changefeeds
	CreateChangefeed(ctx context.Context, in *CreateChangefeedRequest, opts ...grpc.CallOption) (*Changefeed, error)
	// DeleteChangefeed
	//
	// Deletes a changefeed by its ID. This operation cannot be undone. The changefeed must be in a deletable state.
	// Example: DELETE /v1beta2/changefeeds/67890
	// (-- api-linter: core::0136::response-message-name=disabled --)
	DeleteChangefeed(ctx context.Context, in *DeleteChangefeedRequest, opts ...grpc.CallOption) (*emptypb.Empty, error)
	// EditChangefeedDownstreamConfig
	//
	// Updates the mutable configuration of an existing changefeed. The changefeed must be in the PAUSED state.
	// Example: POST /v1beta2/changefeeds/67890:editDownstreamConfig
	EditChangefeedDownstreamConfig(ctx context.Context, in *EditChangefeedDownstreamConfigRequest, opts ...grpc.CallOption) (*Changefeed, error)
	// ScaleChangefeed
	//
	// Scales a changefeed to a different changefeed capacity (CCU). The new capacity takes effect after the operation completes.
	// Example: POST /v1beta2/changefeeds/67890:scale
	// (-- api-linter: core::0136::response-message-name=disabled --)
	ScaleChangefeed(ctx context.Context, in *ScaleChangefeedRequest, opts ...grpc.CallOption) (*Changefeed, error)
	// ListCCUs
	//
	// Lists the available changefeed CCU options that can be selected for a changefeed.
	// Example: GET /v1beta2/changefeeds:listCCUs
	ListCCUs(ctx context.Context, in *ListCCUsRequest, opts ...grpc.CallOption) (*ListCCUsResponse, error)
}

type changefeedServiceClient struct {
	cc grpc.ClientConnInterface
}

func NewChangefeedServiceClient(cc grpc.ClientConnInterface) ChangefeedServiceClient {
	return &changefeedServiceClient{cc}
}

func (c *changefeedServiceClient) ListChangefeeds(ctx context.Context, in *ListChangefeedsRequest, opts ...grpc.CallOption) (*ListChangefeedsResponse, error) {
	out := new(ListChangefeedsResponse)
	err := c.cc.Invoke(ctx, ChangefeedService_ListChangefeeds_FullMethodName, in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *changefeedServiceClient) GetChangefeed(ctx context.Context, in *GetChangefeedRequest, opts ...grpc.CallOption) (*Changefeed, error) {
	out := new(Changefeed)
	err := c.cc.Invoke(ctx, ChangefeedService_GetChangefeed_FullMethodName, in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *changefeedServiceClient) PauseChangefeed(ctx context.Context, in *PauseChangefeedRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) {
	out := new(emptypb.Empty)
	err := c.cc.Invoke(ctx, ChangefeedService_PauseChangefeed_FullMethodName, in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *changefeedServiceClient) ResumeChangefeed(ctx context.Context, in *ResumeChangefeedRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) {
	out := new(emptypb.Empty)
	err := c.cc.Invoke(ctx, ChangefeedService_ResumeChangefeed_FullMethodName, in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *changefeedServiceClient) CreateChangefeed(ctx context.Context, in *CreateChangefeedRequest, opts ...grpc.CallOption) (*Changefeed, error) {
	out := new(Changefeed)
	err := c.cc.Invoke(ctx, ChangefeedService_CreateChangefeed_FullMethodName, in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *changefeedServiceClient) DeleteChangefeed(ctx context.Context, in *DeleteChangefeedRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) {
	out := new(emptypb.Empty)
	err := c.cc.Invoke(ctx, ChangefeedService_DeleteChangefeed_FullMethodName, in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *changefeedServiceClient) EditChangefeedDownstreamConfig(ctx context.Context, in *EditChangefeedDownstreamConfigRequest, opts ...grpc.CallOption) (*Changefeed, error) {
	out := new(Changefeed)
	err := c.cc.Invoke(ctx, ChangefeedService_EditChangefeedDownstreamConfig_FullMethodName, in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *changefeedServiceClient) ScaleChangefeed(ctx context.Context, in *ScaleChangefeedRequest, opts ...grpc.CallOption) (*Changefeed, error) {
	out := new(Changefeed)
	err := c.cc.Invoke(ctx, ChangefeedService_ScaleChangefeed_FullMethodName, in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *changefeedServiceClient) ListCCUs(ctx context.Context, in *ListCCUsRequest, opts ...grpc.CallOption) (*ListCCUsResponse, error) {
	out := new(ListCCUsResponse)
	err := c.cc.Invoke(ctx, ChangefeedService_ListCCUs_FullMethodName, in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

// ChangefeedServiceServer is the server API for ChangefeedService service.
// All implementations must embed UnimplementedChangefeedServiceServer
// for forward compatibility
type ChangefeedServiceServer interface {
	// ListChangefeeds
	//
	// Lists the changefeeds for a TiDB instance. Results can be filtered by downstream type and paginated using the page token.
	// Example: GET /v1beta2/changefeeds?tidb_id=123456&page_size=10
	ListChangefeeds(context.Context, *ListChangefeedsRequest) (*ListChangefeedsResponse, error)
	// GetChangefeed
	//
	// Gets the details of a changefeed by its ID, including its state, configuration, and checkpoint information.
	// Example: GET /v1beta2/changefeeds/67890
	GetChangefeed(context.Context, *GetChangefeedRequest) (*Changefeed, error)
	// PauseChangefeed
	//
	// Pauses a running changefeed. While paused, the changefeed stops replicating data but retains its configuration and checkpoint.
	// Example: POST /v1beta2/changefeeds/67890:pause
	// (-- api-linter: core::0136::response-message-name=disabled --)
	PauseChangefeed(context.Context, *PauseChangefeedRequest) (*emptypb.Empty, error)
	// ResumeChangefeed
	//
	// Resumes a paused changefeed. The changefeed continues replicating data from its last checkpoint.
	// Example: POST /v1beta2/changefeeds/67890:resume
	// (-- api-linter: core::0136::response-message-name=disabled --)
	ResumeChangefeed(context.Context, *ResumeChangefeedRequest) (*emptypb.Empty, error)
	// CreateChangefeed
	//
	// Creates a new changefeed for replicating data to a downstream system.
	// Example: POST /v1beta2/changefeeds
	CreateChangefeed(context.Context, *CreateChangefeedRequest) (*Changefeed, error)
	// DeleteChangefeed
	//
	// Deletes a changefeed by its ID. This operation cannot be undone. The changefeed must be in a deletable state.
	// Example: DELETE /v1beta2/changefeeds/67890
	// (-- api-linter: core::0136::response-message-name=disabled --)
	DeleteChangefeed(context.Context, *DeleteChangefeedRequest) (*emptypb.Empty, error)
	// EditChangefeedDownstreamConfig
	//
	// Updates the mutable configuration of an existing changefeed. The changefeed must be in the PAUSED state.
	// Example: POST /v1beta2/changefeeds/67890:editDownstreamConfig
	EditChangefeedDownstreamConfig(context.Context, *EditChangefeedDownstreamConfigRequest) (*Changefeed, error)
	// ScaleChangefeed
	//
	// Scales a changefeed to a different changefeed capacity (CCU). The new capacity takes effect after the operation completes.
	// Example: POST /v1beta2/changefeeds/67890:scale
	// (-- api-linter: core::0136::response-message-name=disabled --)
	ScaleChangefeed(context.Context, *ScaleChangefeedRequest) (*Changefeed, error)
	// ListCCUs
	//
	// Lists the available changefeed CCU options that can be selected for a changefeed.
	// Example: GET /v1beta2/changefeeds:listCCUs
	ListCCUs(context.Context, *ListCCUsRequest) (*ListCCUsResponse, error)
	mustEmbedUnimplementedChangefeedServiceServer()
}

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

func (UnimplementedChangefeedServiceServer) ListChangefeeds(context.Context, *ListChangefeedsRequest) (*ListChangefeedsResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ListChangefeeds not implemented")
}
func (UnimplementedChangefeedServiceServer) GetChangefeed(context.Context, *GetChangefeedRequest) (*Changefeed, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetChangefeed not implemented")
}
func (UnimplementedChangefeedServiceServer) PauseChangefeed(context.Context, *PauseChangefeedRequest) (*emptypb.Empty, error) {
	return nil, status.Errorf(codes.Unimplemented, "method PauseChangefeed not implemented")
}
func (UnimplementedChangefeedServiceServer) ResumeChangefeed(context.Context, *ResumeChangefeedRequest) (*emptypb.Empty, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ResumeChangefeed not implemented")
}
func (UnimplementedChangefeedServiceServer) CreateChangefeed(context.Context, *CreateChangefeedRequest) (*Changefeed, error) {
	return nil, status.Errorf(codes.Unimplemented, "method CreateChangefeed not implemented")
}
func (UnimplementedChangefeedServiceServer) DeleteChangefeed(context.Context, *DeleteChangefeedRequest) (*emptypb.Empty, error) {
	return nil, status.Errorf(codes.Unimplemented, "method DeleteChangefeed not implemented")
}
func (UnimplementedChangefeedServiceServer) EditChangefeedDownstreamConfig(context.Context, *EditChangefeedDownstreamConfigRequest) (*Changefeed, error) {
	return nil, status.Errorf(codes.Unimplemented, "method EditChangefeedDownstreamConfig not implemented")
}
func (UnimplementedChangefeedServiceServer) ScaleChangefeed(context.Context, *ScaleChangefeedRequest) (*Changefeed, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ScaleChangefeed not implemented")
}
func (UnimplementedChangefeedServiceServer) ListCCUs(context.Context, *ListCCUsRequest) (*ListCCUsResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ListCCUs not implemented")
}
func (UnimplementedChangefeedServiceServer) mustEmbedUnimplementedChangefeedServiceServer() {}

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

func RegisterChangefeedServiceServer(s grpc.ServiceRegistrar, srv ChangefeedServiceServer) {
	s.RegisterService(&ChangefeedService_ServiceDesc, srv)
}

func _ChangefeedService_ListChangefeeds_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ListChangefeedsRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ChangefeedServiceServer).ListChangefeeds(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: ChangefeedService_ListChangefeeds_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ChangefeedServiceServer).ListChangefeeds(ctx, req.(*ListChangefeedsRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ChangefeedService_GetChangefeed_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetChangefeedRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ChangefeedServiceServer).GetChangefeed(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: ChangefeedService_GetChangefeed_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ChangefeedServiceServer).GetChangefeed(ctx, req.(*GetChangefeedRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ChangefeedService_PauseChangefeed_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(PauseChangefeedRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ChangefeedServiceServer).PauseChangefeed(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: ChangefeedService_PauseChangefeed_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ChangefeedServiceServer).PauseChangefeed(ctx, req.(*PauseChangefeedRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ChangefeedService_ResumeChangefeed_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ResumeChangefeedRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ChangefeedServiceServer).ResumeChangefeed(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: ChangefeedService_ResumeChangefeed_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ChangefeedServiceServer).ResumeChangefeed(ctx, req.(*ResumeChangefeedRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ChangefeedService_CreateChangefeed_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(CreateChangefeedRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ChangefeedServiceServer).CreateChangefeed(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: ChangefeedService_CreateChangefeed_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ChangefeedServiceServer).CreateChangefeed(ctx, req.(*CreateChangefeedRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ChangefeedService_DeleteChangefeed_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(DeleteChangefeedRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ChangefeedServiceServer).DeleteChangefeed(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: ChangefeedService_DeleteChangefeed_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ChangefeedServiceServer).DeleteChangefeed(ctx, req.(*DeleteChangefeedRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ChangefeedService_EditChangefeedDownstreamConfig_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(EditChangefeedDownstreamConfigRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ChangefeedServiceServer).EditChangefeedDownstreamConfig(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: ChangefeedService_EditChangefeedDownstreamConfig_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ChangefeedServiceServer).EditChangefeedDownstreamConfig(ctx, req.(*EditChangefeedDownstreamConfigRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ChangefeedService_ScaleChangefeed_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ScaleChangefeedRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ChangefeedServiceServer).ScaleChangefeed(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: ChangefeedService_ScaleChangefeed_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ChangefeedServiceServer).ScaleChangefeed(ctx, req.(*ScaleChangefeedRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ChangefeedService_ListCCUs_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ListCCUsRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ChangefeedServiceServer).ListCCUs(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: ChangefeedService_ListCCUs_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ChangefeedServiceServer).ListCCUs(ctx, req.(*ListCCUsRequest))
	}
	return interceptor(ctx, in, info, handler)
}

// ChangefeedService_ServiceDesc is the grpc.ServiceDesc for ChangefeedService service.
// It's only intended for direct use with grpc.RegisterService,
// and not to be introspected or modified (even as a copy)
var ChangefeedService_ServiceDesc = grpc.ServiceDesc{
	ServiceName: "openapi.v1beta2.ChangefeedService",
	HandlerType: (*ChangefeedServiceServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "ListChangefeeds",
			Handler:    _ChangefeedService_ListChangefeeds_Handler,
		},
		{
			MethodName: "GetChangefeed",
			Handler:    _ChangefeedService_GetChangefeed_Handler,
		},
		{
			MethodName: "PauseChangefeed",
			Handler:    _ChangefeedService_PauseChangefeed_Handler,
		},
		{
			MethodName: "ResumeChangefeed",
			Handler:    _ChangefeedService_ResumeChangefeed_Handler,
		},
		{
			MethodName: "CreateChangefeed",
			Handler:    _ChangefeedService_CreateChangefeed_Handler,
		},
		{
			MethodName: "DeleteChangefeed",
			Handler:    _ChangefeedService_DeleteChangefeed_Handler,
		},
		{
			MethodName: "EditChangefeedDownstreamConfig",
			Handler:    _ChangefeedService_EditChangefeedDownstreamConfig_Handler,
		},
		{
			MethodName: "ScaleChangefeed",
			Handler:    _ChangefeedService_ScaleChangefeed_Handler,
		},
		{
			MethodName: "ListCCUs",
			Handler:    _ChangefeedService_ListCCUs_Handler,
		},
	},
	Streams:  []grpc.StreamDesc{},
	Metadata: "openapi/v1beta2/changefeed.proto",
}
