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

package flipt

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.64.0 or later.
const _ = grpc.SupportPackageIsVersion9

const (
	Flipt_Evaluate_FullMethodName           = "/flipt.Flipt/Evaluate"
	Flipt_BatchEvaluate_FullMethodName      = "/flipt.Flipt/BatchEvaluate"
	Flipt_GetNamespace_FullMethodName       = "/flipt.Flipt/GetNamespace"
	Flipt_ListNamespaces_FullMethodName     = "/flipt.Flipt/ListNamespaces"
	Flipt_CreateNamespace_FullMethodName    = "/flipt.Flipt/CreateNamespace"
	Flipt_UpdateNamespace_FullMethodName    = "/flipt.Flipt/UpdateNamespace"
	Flipt_DeleteNamespace_FullMethodName    = "/flipt.Flipt/DeleteNamespace"
	Flipt_GetFlag_FullMethodName            = "/flipt.Flipt/GetFlag"
	Flipt_ListFlags_FullMethodName          = "/flipt.Flipt/ListFlags"
	Flipt_CreateFlag_FullMethodName         = "/flipt.Flipt/CreateFlag"
	Flipt_UpdateFlag_FullMethodName         = "/flipt.Flipt/UpdateFlag"
	Flipt_DeleteFlag_FullMethodName         = "/flipt.Flipt/DeleteFlag"
	Flipt_CreateVariant_FullMethodName      = "/flipt.Flipt/CreateVariant"
	Flipt_UpdateVariant_FullMethodName      = "/flipt.Flipt/UpdateVariant"
	Flipt_DeleteVariant_FullMethodName      = "/flipt.Flipt/DeleteVariant"
	Flipt_GetRule_FullMethodName            = "/flipt.Flipt/GetRule"
	Flipt_ListRules_FullMethodName          = "/flipt.Flipt/ListRules"
	Flipt_CreateRule_FullMethodName         = "/flipt.Flipt/CreateRule"
	Flipt_UpdateRule_FullMethodName         = "/flipt.Flipt/UpdateRule"
	Flipt_OrderRules_FullMethodName         = "/flipt.Flipt/OrderRules"
	Flipt_DeleteRule_FullMethodName         = "/flipt.Flipt/DeleteRule"
	Flipt_GetRollout_FullMethodName         = "/flipt.Flipt/GetRollout"
	Flipt_ListRollouts_FullMethodName       = "/flipt.Flipt/ListRollouts"
	Flipt_CreateRollout_FullMethodName      = "/flipt.Flipt/CreateRollout"
	Flipt_UpdateRollout_FullMethodName      = "/flipt.Flipt/UpdateRollout"
	Flipt_DeleteRollout_FullMethodName      = "/flipt.Flipt/DeleteRollout"
	Flipt_OrderRollouts_FullMethodName      = "/flipt.Flipt/OrderRollouts"
	Flipt_CreateDistribution_FullMethodName = "/flipt.Flipt/CreateDistribution"
	Flipt_UpdateDistribution_FullMethodName = "/flipt.Flipt/UpdateDistribution"
	Flipt_DeleteDistribution_FullMethodName = "/flipt.Flipt/DeleteDistribution"
	Flipt_GetSegment_FullMethodName         = "/flipt.Flipt/GetSegment"
	Flipt_ListSegments_FullMethodName       = "/flipt.Flipt/ListSegments"
	Flipt_CreateSegment_FullMethodName      = "/flipt.Flipt/CreateSegment"
	Flipt_UpdateSegment_FullMethodName      = "/flipt.Flipt/UpdateSegment"
	Flipt_DeleteSegment_FullMethodName      = "/flipt.Flipt/DeleteSegment"
	Flipt_CreateConstraint_FullMethodName   = "/flipt.Flipt/CreateConstraint"
	Flipt_UpdateConstraint_FullMethodName   = "/flipt.Flipt/UpdateConstraint"
	Flipt_DeleteConstraint_FullMethodName   = "/flipt.Flipt/DeleteConstraint"
)

// FliptClient is the client API for Flipt 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 FliptClient interface {
	// Deprecated: Do not use.
	Evaluate(ctx context.Context, in *EvaluationRequest, opts ...grpc.CallOption) (*EvaluationResponse, error)
	// Deprecated: Do not use.
	BatchEvaluate(ctx context.Context, in *BatchEvaluationRequest, opts ...grpc.CallOption) (*BatchEvaluationResponse, error)
	GetNamespace(ctx context.Context, in *GetNamespaceRequest, opts ...grpc.CallOption) (*Namespace, error)
	ListNamespaces(ctx context.Context, in *ListNamespaceRequest, opts ...grpc.CallOption) (*NamespaceList, error)
	CreateNamespace(ctx context.Context, in *CreateNamespaceRequest, opts ...grpc.CallOption) (*Namespace, error)
	UpdateNamespace(ctx context.Context, in *UpdateNamespaceRequest, opts ...grpc.CallOption) (*Namespace, error)
	DeleteNamespace(ctx context.Context, in *DeleteNamespaceRequest, opts ...grpc.CallOption) (*emptypb.Empty, error)
	GetFlag(ctx context.Context, in *GetFlagRequest, opts ...grpc.CallOption) (*Flag, error)
	ListFlags(ctx context.Context, in *ListFlagRequest, opts ...grpc.CallOption) (*FlagList, error)
	CreateFlag(ctx context.Context, in *CreateFlagRequest, opts ...grpc.CallOption) (*Flag, error)
	UpdateFlag(ctx context.Context, in *UpdateFlagRequest, opts ...grpc.CallOption) (*Flag, error)
	DeleteFlag(ctx context.Context, in *DeleteFlagRequest, opts ...grpc.CallOption) (*emptypb.Empty, error)
	CreateVariant(ctx context.Context, in *CreateVariantRequest, opts ...grpc.CallOption) (*Variant, error)
	UpdateVariant(ctx context.Context, in *UpdateVariantRequest, opts ...grpc.CallOption) (*Variant, error)
	DeleteVariant(ctx context.Context, in *DeleteVariantRequest, opts ...grpc.CallOption) (*emptypb.Empty, error)
	GetRule(ctx context.Context, in *GetRuleRequest, opts ...grpc.CallOption) (*Rule, error)
	ListRules(ctx context.Context, in *ListRuleRequest, opts ...grpc.CallOption) (*RuleList, error)
	CreateRule(ctx context.Context, in *CreateRuleRequest, opts ...grpc.CallOption) (*Rule, error)
	UpdateRule(ctx context.Context, in *UpdateRuleRequest, opts ...grpc.CallOption) (*Rule, error)
	OrderRules(ctx context.Context, in *OrderRulesRequest, opts ...grpc.CallOption) (*emptypb.Empty, error)
	DeleteRule(ctx context.Context, in *DeleteRuleRequest, opts ...grpc.CallOption) (*emptypb.Empty, error)
	GetRollout(ctx context.Context, in *GetRolloutRequest, opts ...grpc.CallOption) (*Rollout, error)
	ListRollouts(ctx context.Context, in *ListRolloutRequest, opts ...grpc.CallOption) (*RolloutList, error)
	CreateRollout(ctx context.Context, in *CreateRolloutRequest, opts ...grpc.CallOption) (*Rollout, error)
	UpdateRollout(ctx context.Context, in *UpdateRolloutRequest, opts ...grpc.CallOption) (*Rollout, error)
	DeleteRollout(ctx context.Context, in *DeleteRolloutRequest, opts ...grpc.CallOption) (*emptypb.Empty, error)
	OrderRollouts(ctx context.Context, in *OrderRolloutsRequest, opts ...grpc.CallOption) (*emptypb.Empty, error)
	CreateDistribution(ctx context.Context, in *CreateDistributionRequest, opts ...grpc.CallOption) (*Distribution, error)
	UpdateDistribution(ctx context.Context, in *UpdateDistributionRequest, opts ...grpc.CallOption) (*Distribution, error)
	DeleteDistribution(ctx context.Context, in *DeleteDistributionRequest, opts ...grpc.CallOption) (*emptypb.Empty, error)
	GetSegment(ctx context.Context, in *GetSegmentRequest, opts ...grpc.CallOption) (*Segment, error)
	ListSegments(ctx context.Context, in *ListSegmentRequest, opts ...grpc.CallOption) (*SegmentList, error)
	CreateSegment(ctx context.Context, in *CreateSegmentRequest, opts ...grpc.CallOption) (*Segment, error)
	UpdateSegment(ctx context.Context, in *UpdateSegmentRequest, opts ...grpc.CallOption) (*Segment, error)
	DeleteSegment(ctx context.Context, in *DeleteSegmentRequest, opts ...grpc.CallOption) (*emptypb.Empty, error)
	CreateConstraint(ctx context.Context, in *CreateConstraintRequest, opts ...grpc.CallOption) (*Constraint, error)
	UpdateConstraint(ctx context.Context, in *UpdateConstraintRequest, opts ...grpc.CallOption) (*Constraint, error)
	DeleteConstraint(ctx context.Context, in *DeleteConstraintRequest, opts ...grpc.CallOption) (*emptypb.Empty, error)
}

type fliptClient struct {
	cc grpc.ClientConnInterface
}

func NewFliptClient(cc grpc.ClientConnInterface) FliptClient {
	return &fliptClient{cc}
}

// Deprecated: Do not use.
func (c *fliptClient) Evaluate(ctx context.Context, in *EvaluationRequest, opts ...grpc.CallOption) (*EvaluationResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(EvaluationResponse)
	err := c.cc.Invoke(ctx, Flipt_Evaluate_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

// Deprecated: Do not use.
func (c *fliptClient) BatchEvaluate(ctx context.Context, in *BatchEvaluationRequest, opts ...grpc.CallOption) (*BatchEvaluationResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(BatchEvaluationResponse)
	err := c.cc.Invoke(ctx, Flipt_BatchEvaluate_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *fliptClient) GetNamespace(ctx context.Context, in *GetNamespaceRequest, opts ...grpc.CallOption) (*Namespace, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(Namespace)
	err := c.cc.Invoke(ctx, Flipt_GetNamespace_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *fliptClient) ListNamespaces(ctx context.Context, in *ListNamespaceRequest, opts ...grpc.CallOption) (*NamespaceList, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(NamespaceList)
	err := c.cc.Invoke(ctx, Flipt_ListNamespaces_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *fliptClient) CreateNamespace(ctx context.Context, in *CreateNamespaceRequest, opts ...grpc.CallOption) (*Namespace, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(Namespace)
	err := c.cc.Invoke(ctx, Flipt_CreateNamespace_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *fliptClient) UpdateNamespace(ctx context.Context, in *UpdateNamespaceRequest, opts ...grpc.CallOption) (*Namespace, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(Namespace)
	err := c.cc.Invoke(ctx, Flipt_UpdateNamespace_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *fliptClient) DeleteNamespace(ctx context.Context, in *DeleteNamespaceRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(emptypb.Empty)
	err := c.cc.Invoke(ctx, Flipt_DeleteNamespace_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *fliptClient) GetFlag(ctx context.Context, in *GetFlagRequest, opts ...grpc.CallOption) (*Flag, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(Flag)
	err := c.cc.Invoke(ctx, Flipt_GetFlag_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *fliptClient) ListFlags(ctx context.Context, in *ListFlagRequest, opts ...grpc.CallOption) (*FlagList, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(FlagList)
	err := c.cc.Invoke(ctx, Flipt_ListFlags_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *fliptClient) CreateFlag(ctx context.Context, in *CreateFlagRequest, opts ...grpc.CallOption) (*Flag, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(Flag)
	err := c.cc.Invoke(ctx, Flipt_CreateFlag_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *fliptClient) UpdateFlag(ctx context.Context, in *UpdateFlagRequest, opts ...grpc.CallOption) (*Flag, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(Flag)
	err := c.cc.Invoke(ctx, Flipt_UpdateFlag_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *fliptClient) DeleteFlag(ctx context.Context, in *DeleteFlagRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(emptypb.Empty)
	err := c.cc.Invoke(ctx, Flipt_DeleteFlag_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *fliptClient) CreateVariant(ctx context.Context, in *CreateVariantRequest, opts ...grpc.CallOption) (*Variant, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(Variant)
	err := c.cc.Invoke(ctx, Flipt_CreateVariant_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *fliptClient) UpdateVariant(ctx context.Context, in *UpdateVariantRequest, opts ...grpc.CallOption) (*Variant, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(Variant)
	err := c.cc.Invoke(ctx, Flipt_UpdateVariant_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *fliptClient) DeleteVariant(ctx context.Context, in *DeleteVariantRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(emptypb.Empty)
	err := c.cc.Invoke(ctx, Flipt_DeleteVariant_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *fliptClient) GetRule(ctx context.Context, in *GetRuleRequest, opts ...grpc.CallOption) (*Rule, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(Rule)
	err := c.cc.Invoke(ctx, Flipt_GetRule_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *fliptClient) ListRules(ctx context.Context, in *ListRuleRequest, opts ...grpc.CallOption) (*RuleList, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(RuleList)
	err := c.cc.Invoke(ctx, Flipt_ListRules_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *fliptClient) CreateRule(ctx context.Context, in *CreateRuleRequest, opts ...grpc.CallOption) (*Rule, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(Rule)
	err := c.cc.Invoke(ctx, Flipt_CreateRule_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *fliptClient) UpdateRule(ctx context.Context, in *UpdateRuleRequest, opts ...grpc.CallOption) (*Rule, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(Rule)
	err := c.cc.Invoke(ctx, Flipt_UpdateRule_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *fliptClient) OrderRules(ctx context.Context, in *OrderRulesRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(emptypb.Empty)
	err := c.cc.Invoke(ctx, Flipt_OrderRules_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *fliptClient) DeleteRule(ctx context.Context, in *DeleteRuleRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(emptypb.Empty)
	err := c.cc.Invoke(ctx, Flipt_DeleteRule_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *fliptClient) GetRollout(ctx context.Context, in *GetRolloutRequest, opts ...grpc.CallOption) (*Rollout, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(Rollout)
	err := c.cc.Invoke(ctx, Flipt_GetRollout_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *fliptClient) ListRollouts(ctx context.Context, in *ListRolloutRequest, opts ...grpc.CallOption) (*RolloutList, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(RolloutList)
	err := c.cc.Invoke(ctx, Flipt_ListRollouts_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *fliptClient) CreateRollout(ctx context.Context, in *CreateRolloutRequest, opts ...grpc.CallOption) (*Rollout, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(Rollout)
	err := c.cc.Invoke(ctx, Flipt_CreateRollout_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *fliptClient) UpdateRollout(ctx context.Context, in *UpdateRolloutRequest, opts ...grpc.CallOption) (*Rollout, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(Rollout)
	err := c.cc.Invoke(ctx, Flipt_UpdateRollout_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *fliptClient) DeleteRollout(ctx context.Context, in *DeleteRolloutRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(emptypb.Empty)
	err := c.cc.Invoke(ctx, Flipt_DeleteRollout_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *fliptClient) OrderRollouts(ctx context.Context, in *OrderRolloutsRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(emptypb.Empty)
	err := c.cc.Invoke(ctx, Flipt_OrderRollouts_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *fliptClient) CreateDistribution(ctx context.Context, in *CreateDistributionRequest, opts ...grpc.CallOption) (*Distribution, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(Distribution)
	err := c.cc.Invoke(ctx, Flipt_CreateDistribution_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *fliptClient) UpdateDistribution(ctx context.Context, in *UpdateDistributionRequest, opts ...grpc.CallOption) (*Distribution, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(Distribution)
	err := c.cc.Invoke(ctx, Flipt_UpdateDistribution_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *fliptClient) DeleteDistribution(ctx context.Context, in *DeleteDistributionRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(emptypb.Empty)
	err := c.cc.Invoke(ctx, Flipt_DeleteDistribution_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *fliptClient) GetSegment(ctx context.Context, in *GetSegmentRequest, opts ...grpc.CallOption) (*Segment, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(Segment)
	err := c.cc.Invoke(ctx, Flipt_GetSegment_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *fliptClient) ListSegments(ctx context.Context, in *ListSegmentRequest, opts ...grpc.CallOption) (*SegmentList, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(SegmentList)
	err := c.cc.Invoke(ctx, Flipt_ListSegments_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *fliptClient) CreateSegment(ctx context.Context, in *CreateSegmentRequest, opts ...grpc.CallOption) (*Segment, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(Segment)
	err := c.cc.Invoke(ctx, Flipt_CreateSegment_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *fliptClient) UpdateSegment(ctx context.Context, in *UpdateSegmentRequest, opts ...grpc.CallOption) (*Segment, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(Segment)
	err := c.cc.Invoke(ctx, Flipt_UpdateSegment_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *fliptClient) DeleteSegment(ctx context.Context, in *DeleteSegmentRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(emptypb.Empty)
	err := c.cc.Invoke(ctx, Flipt_DeleteSegment_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *fliptClient) CreateConstraint(ctx context.Context, in *CreateConstraintRequest, opts ...grpc.CallOption) (*Constraint, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(Constraint)
	err := c.cc.Invoke(ctx, Flipt_CreateConstraint_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *fliptClient) UpdateConstraint(ctx context.Context, in *UpdateConstraintRequest, opts ...grpc.CallOption) (*Constraint, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(Constraint)
	err := c.cc.Invoke(ctx, Flipt_UpdateConstraint_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *fliptClient) DeleteConstraint(ctx context.Context, in *DeleteConstraintRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(emptypb.Empty)
	err := c.cc.Invoke(ctx, Flipt_DeleteConstraint_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

// FliptServer is the server API for Flipt service.
// All implementations must embed UnimplementedFliptServer
// for forward compatibility.
type FliptServer interface {
	// Deprecated: Do not use.
	Evaluate(context.Context, *EvaluationRequest) (*EvaluationResponse, error)
	// Deprecated: Do not use.
	BatchEvaluate(context.Context, *BatchEvaluationRequest) (*BatchEvaluationResponse, error)
	GetNamespace(context.Context, *GetNamespaceRequest) (*Namespace, error)
	ListNamespaces(context.Context, *ListNamespaceRequest) (*NamespaceList, error)
	CreateNamespace(context.Context, *CreateNamespaceRequest) (*Namespace, error)
	UpdateNamespace(context.Context, *UpdateNamespaceRequest) (*Namespace, error)
	DeleteNamespace(context.Context, *DeleteNamespaceRequest) (*emptypb.Empty, error)
	GetFlag(context.Context, *GetFlagRequest) (*Flag, error)
	ListFlags(context.Context, *ListFlagRequest) (*FlagList, error)
	CreateFlag(context.Context, *CreateFlagRequest) (*Flag, error)
	UpdateFlag(context.Context, *UpdateFlagRequest) (*Flag, error)
	DeleteFlag(context.Context, *DeleteFlagRequest) (*emptypb.Empty, error)
	CreateVariant(context.Context, *CreateVariantRequest) (*Variant, error)
	UpdateVariant(context.Context, *UpdateVariantRequest) (*Variant, error)
	DeleteVariant(context.Context, *DeleteVariantRequest) (*emptypb.Empty, error)
	GetRule(context.Context, *GetRuleRequest) (*Rule, error)
	ListRules(context.Context, *ListRuleRequest) (*RuleList, error)
	CreateRule(context.Context, *CreateRuleRequest) (*Rule, error)
	UpdateRule(context.Context, *UpdateRuleRequest) (*Rule, error)
	OrderRules(context.Context, *OrderRulesRequest) (*emptypb.Empty, error)
	DeleteRule(context.Context, *DeleteRuleRequest) (*emptypb.Empty, error)
	GetRollout(context.Context, *GetRolloutRequest) (*Rollout, error)
	ListRollouts(context.Context, *ListRolloutRequest) (*RolloutList, error)
	CreateRollout(context.Context, *CreateRolloutRequest) (*Rollout, error)
	UpdateRollout(context.Context, *UpdateRolloutRequest) (*Rollout, error)
	DeleteRollout(context.Context, *DeleteRolloutRequest) (*emptypb.Empty, error)
	OrderRollouts(context.Context, *OrderRolloutsRequest) (*emptypb.Empty, error)
	CreateDistribution(context.Context, *CreateDistributionRequest) (*Distribution, error)
	UpdateDistribution(context.Context, *UpdateDistributionRequest) (*Distribution, error)
	DeleteDistribution(context.Context, *DeleteDistributionRequest) (*emptypb.Empty, error)
	GetSegment(context.Context, *GetSegmentRequest) (*Segment, error)
	ListSegments(context.Context, *ListSegmentRequest) (*SegmentList, error)
	CreateSegment(context.Context, *CreateSegmentRequest) (*Segment, error)
	UpdateSegment(context.Context, *UpdateSegmentRequest) (*Segment, error)
	DeleteSegment(context.Context, *DeleteSegmentRequest) (*emptypb.Empty, error)
	CreateConstraint(context.Context, *CreateConstraintRequest) (*Constraint, error)
	UpdateConstraint(context.Context, *UpdateConstraintRequest) (*Constraint, error)
	DeleteConstraint(context.Context, *DeleteConstraintRequest) (*emptypb.Empty, error)
	mustEmbedUnimplementedFliptServer()
}

// UnimplementedFliptServer must 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 UnimplementedFliptServer struct{}

func (UnimplementedFliptServer) Evaluate(context.Context, *EvaluationRequest) (*EvaluationResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method Evaluate not implemented")
}
func (UnimplementedFliptServer) BatchEvaluate(context.Context, *BatchEvaluationRequest) (*BatchEvaluationResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method BatchEvaluate not implemented")
}
func (UnimplementedFliptServer) GetNamespace(context.Context, *GetNamespaceRequest) (*Namespace, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetNamespace not implemented")
}
func (UnimplementedFliptServer) ListNamespaces(context.Context, *ListNamespaceRequest) (*NamespaceList, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ListNamespaces not implemented")
}
func (UnimplementedFliptServer) CreateNamespace(context.Context, *CreateNamespaceRequest) (*Namespace, error) {
	return nil, status.Errorf(codes.Unimplemented, "method CreateNamespace not implemented")
}
func (UnimplementedFliptServer) UpdateNamespace(context.Context, *UpdateNamespaceRequest) (*Namespace, error) {
	return nil, status.Errorf(codes.Unimplemented, "method UpdateNamespace not implemented")
}
func (UnimplementedFliptServer) DeleteNamespace(context.Context, *DeleteNamespaceRequest) (*emptypb.Empty, error) {
	return nil, status.Errorf(codes.Unimplemented, "method DeleteNamespace not implemented")
}
func (UnimplementedFliptServer) GetFlag(context.Context, *GetFlagRequest) (*Flag, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetFlag not implemented")
}
func (UnimplementedFliptServer) ListFlags(context.Context, *ListFlagRequest) (*FlagList, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ListFlags not implemented")
}
func (UnimplementedFliptServer) CreateFlag(context.Context, *CreateFlagRequest) (*Flag, error) {
	return nil, status.Errorf(codes.Unimplemented, "method CreateFlag not implemented")
}
func (UnimplementedFliptServer) UpdateFlag(context.Context, *UpdateFlagRequest) (*Flag, error) {
	return nil, status.Errorf(codes.Unimplemented, "method UpdateFlag not implemented")
}
func (UnimplementedFliptServer) DeleteFlag(context.Context, *DeleteFlagRequest) (*emptypb.Empty, error) {
	return nil, status.Errorf(codes.Unimplemented, "method DeleteFlag not implemented")
}
func (UnimplementedFliptServer) CreateVariant(context.Context, *CreateVariantRequest) (*Variant, error) {
	return nil, status.Errorf(codes.Unimplemented, "method CreateVariant not implemented")
}
func (UnimplementedFliptServer) UpdateVariant(context.Context, *UpdateVariantRequest) (*Variant, error) {
	return nil, status.Errorf(codes.Unimplemented, "method UpdateVariant not implemented")
}
func (UnimplementedFliptServer) DeleteVariant(context.Context, *DeleteVariantRequest) (*emptypb.Empty, error) {
	return nil, status.Errorf(codes.Unimplemented, "method DeleteVariant not implemented")
}
func (UnimplementedFliptServer) GetRule(context.Context, *GetRuleRequest) (*Rule, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetRule not implemented")
}
func (UnimplementedFliptServer) ListRules(context.Context, *ListRuleRequest) (*RuleList, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ListRules not implemented")
}
func (UnimplementedFliptServer) CreateRule(context.Context, *CreateRuleRequest) (*Rule, error) {
	return nil, status.Errorf(codes.Unimplemented, "method CreateRule not implemented")
}
func (UnimplementedFliptServer) UpdateRule(context.Context, *UpdateRuleRequest) (*Rule, error) {
	return nil, status.Errorf(codes.Unimplemented, "method UpdateRule not implemented")
}
func (UnimplementedFliptServer) OrderRules(context.Context, *OrderRulesRequest) (*emptypb.Empty, error) {
	return nil, status.Errorf(codes.Unimplemented, "method OrderRules not implemented")
}
func (UnimplementedFliptServer) DeleteRule(context.Context, *DeleteRuleRequest) (*emptypb.Empty, error) {
	return nil, status.Errorf(codes.Unimplemented, "method DeleteRule not implemented")
}
func (UnimplementedFliptServer) GetRollout(context.Context, *GetRolloutRequest) (*Rollout, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetRollout not implemented")
}
func (UnimplementedFliptServer) ListRollouts(context.Context, *ListRolloutRequest) (*RolloutList, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ListRollouts not implemented")
}
func (UnimplementedFliptServer) CreateRollout(context.Context, *CreateRolloutRequest) (*Rollout, error) {
	return nil, status.Errorf(codes.Unimplemented, "method CreateRollout not implemented")
}
func (UnimplementedFliptServer) UpdateRollout(context.Context, *UpdateRolloutRequest) (*Rollout, error) {
	return nil, status.Errorf(codes.Unimplemented, "method UpdateRollout not implemented")
}
func (UnimplementedFliptServer) DeleteRollout(context.Context, *DeleteRolloutRequest) (*emptypb.Empty, error) {
	return nil, status.Errorf(codes.Unimplemented, "method DeleteRollout not implemented")
}
func (UnimplementedFliptServer) OrderRollouts(context.Context, *OrderRolloutsRequest) (*emptypb.Empty, error) {
	return nil, status.Errorf(codes.Unimplemented, "method OrderRollouts not implemented")
}
func (UnimplementedFliptServer) CreateDistribution(context.Context, *CreateDistributionRequest) (*Distribution, error) {
	return nil, status.Errorf(codes.Unimplemented, "method CreateDistribution not implemented")
}
func (UnimplementedFliptServer) UpdateDistribution(context.Context, *UpdateDistributionRequest) (*Distribution, error) {
	return nil, status.Errorf(codes.Unimplemented, "method UpdateDistribution not implemented")
}
func (UnimplementedFliptServer) DeleteDistribution(context.Context, *DeleteDistributionRequest) (*emptypb.Empty, error) {
	return nil, status.Errorf(codes.Unimplemented, "method DeleteDistribution not implemented")
}
func (UnimplementedFliptServer) GetSegment(context.Context, *GetSegmentRequest) (*Segment, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetSegment not implemented")
}
func (UnimplementedFliptServer) ListSegments(context.Context, *ListSegmentRequest) (*SegmentList, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ListSegments not implemented")
}
func (UnimplementedFliptServer) CreateSegment(context.Context, *CreateSegmentRequest) (*Segment, error) {
	return nil, status.Errorf(codes.Unimplemented, "method CreateSegment not implemented")
}
func (UnimplementedFliptServer) UpdateSegment(context.Context, *UpdateSegmentRequest) (*Segment, error) {
	return nil, status.Errorf(codes.Unimplemented, "method UpdateSegment not implemented")
}
func (UnimplementedFliptServer) DeleteSegment(context.Context, *DeleteSegmentRequest) (*emptypb.Empty, error) {
	return nil, status.Errorf(codes.Unimplemented, "method DeleteSegment not implemented")
}
func (UnimplementedFliptServer) CreateConstraint(context.Context, *CreateConstraintRequest) (*Constraint, error) {
	return nil, status.Errorf(codes.Unimplemented, "method CreateConstraint not implemented")
}
func (UnimplementedFliptServer) UpdateConstraint(context.Context, *UpdateConstraintRequest) (*Constraint, error) {
	return nil, status.Errorf(codes.Unimplemented, "method UpdateConstraint not implemented")
}
func (UnimplementedFliptServer) DeleteConstraint(context.Context, *DeleteConstraintRequest) (*emptypb.Empty, error) {
	return nil, status.Errorf(codes.Unimplemented, "method DeleteConstraint not implemented")
}
func (UnimplementedFliptServer) mustEmbedUnimplementedFliptServer() {}
func (UnimplementedFliptServer) testEmbeddedByValue()               {}

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

func RegisterFliptServer(s grpc.ServiceRegistrar, srv FliptServer) {
	// If the following call pancis, it indicates UnimplementedFliptServer 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(&Flipt_ServiceDesc, srv)
}

func _Flipt_Evaluate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(EvaluationRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FliptServer).Evaluate(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: Flipt_Evaluate_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FliptServer).Evaluate(ctx, req.(*EvaluationRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Flipt_BatchEvaluate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(BatchEvaluationRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FliptServer).BatchEvaluate(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: Flipt_BatchEvaluate_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FliptServer).BatchEvaluate(ctx, req.(*BatchEvaluationRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Flipt_GetNamespace_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetNamespaceRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FliptServer).GetNamespace(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: Flipt_GetNamespace_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FliptServer).GetNamespace(ctx, req.(*GetNamespaceRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Flipt_ListNamespaces_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ListNamespaceRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FliptServer).ListNamespaces(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: Flipt_ListNamespaces_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FliptServer).ListNamespaces(ctx, req.(*ListNamespaceRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Flipt_CreateNamespace_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(CreateNamespaceRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FliptServer).CreateNamespace(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: Flipt_CreateNamespace_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FliptServer).CreateNamespace(ctx, req.(*CreateNamespaceRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Flipt_UpdateNamespace_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(UpdateNamespaceRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FliptServer).UpdateNamespace(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: Flipt_UpdateNamespace_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FliptServer).UpdateNamespace(ctx, req.(*UpdateNamespaceRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Flipt_DeleteNamespace_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(DeleteNamespaceRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FliptServer).DeleteNamespace(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: Flipt_DeleteNamespace_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FliptServer).DeleteNamespace(ctx, req.(*DeleteNamespaceRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Flipt_GetFlag_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetFlagRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FliptServer).GetFlag(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: Flipt_GetFlag_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FliptServer).GetFlag(ctx, req.(*GetFlagRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Flipt_ListFlags_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ListFlagRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FliptServer).ListFlags(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: Flipt_ListFlags_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FliptServer).ListFlags(ctx, req.(*ListFlagRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Flipt_CreateFlag_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(CreateFlagRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FliptServer).CreateFlag(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: Flipt_CreateFlag_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FliptServer).CreateFlag(ctx, req.(*CreateFlagRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Flipt_UpdateFlag_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(UpdateFlagRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FliptServer).UpdateFlag(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: Flipt_UpdateFlag_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FliptServer).UpdateFlag(ctx, req.(*UpdateFlagRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Flipt_DeleteFlag_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(DeleteFlagRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FliptServer).DeleteFlag(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: Flipt_DeleteFlag_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FliptServer).DeleteFlag(ctx, req.(*DeleteFlagRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Flipt_CreateVariant_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(CreateVariantRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FliptServer).CreateVariant(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: Flipt_CreateVariant_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FliptServer).CreateVariant(ctx, req.(*CreateVariantRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Flipt_UpdateVariant_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(UpdateVariantRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FliptServer).UpdateVariant(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: Flipt_UpdateVariant_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FliptServer).UpdateVariant(ctx, req.(*UpdateVariantRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Flipt_DeleteVariant_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(DeleteVariantRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FliptServer).DeleteVariant(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: Flipt_DeleteVariant_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FliptServer).DeleteVariant(ctx, req.(*DeleteVariantRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Flipt_GetRule_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetRuleRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FliptServer).GetRule(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: Flipt_GetRule_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FliptServer).GetRule(ctx, req.(*GetRuleRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Flipt_ListRules_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ListRuleRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FliptServer).ListRules(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: Flipt_ListRules_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FliptServer).ListRules(ctx, req.(*ListRuleRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Flipt_CreateRule_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(CreateRuleRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FliptServer).CreateRule(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: Flipt_CreateRule_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FliptServer).CreateRule(ctx, req.(*CreateRuleRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Flipt_UpdateRule_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(UpdateRuleRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FliptServer).UpdateRule(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: Flipt_UpdateRule_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FliptServer).UpdateRule(ctx, req.(*UpdateRuleRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Flipt_OrderRules_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(OrderRulesRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FliptServer).OrderRules(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: Flipt_OrderRules_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FliptServer).OrderRules(ctx, req.(*OrderRulesRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Flipt_DeleteRule_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(DeleteRuleRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FliptServer).DeleteRule(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: Flipt_DeleteRule_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FliptServer).DeleteRule(ctx, req.(*DeleteRuleRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Flipt_GetRollout_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetRolloutRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FliptServer).GetRollout(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: Flipt_GetRollout_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FliptServer).GetRollout(ctx, req.(*GetRolloutRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Flipt_ListRollouts_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ListRolloutRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FliptServer).ListRollouts(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: Flipt_ListRollouts_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FliptServer).ListRollouts(ctx, req.(*ListRolloutRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Flipt_CreateRollout_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(CreateRolloutRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FliptServer).CreateRollout(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: Flipt_CreateRollout_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FliptServer).CreateRollout(ctx, req.(*CreateRolloutRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Flipt_UpdateRollout_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(UpdateRolloutRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FliptServer).UpdateRollout(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: Flipt_UpdateRollout_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FliptServer).UpdateRollout(ctx, req.(*UpdateRolloutRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Flipt_DeleteRollout_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(DeleteRolloutRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FliptServer).DeleteRollout(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: Flipt_DeleteRollout_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FliptServer).DeleteRollout(ctx, req.(*DeleteRolloutRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Flipt_OrderRollouts_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(OrderRolloutsRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FliptServer).OrderRollouts(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: Flipt_OrderRollouts_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FliptServer).OrderRollouts(ctx, req.(*OrderRolloutsRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Flipt_CreateDistribution_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(CreateDistributionRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FliptServer).CreateDistribution(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: Flipt_CreateDistribution_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FliptServer).CreateDistribution(ctx, req.(*CreateDistributionRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Flipt_UpdateDistribution_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(UpdateDistributionRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FliptServer).UpdateDistribution(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: Flipt_UpdateDistribution_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FliptServer).UpdateDistribution(ctx, req.(*UpdateDistributionRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Flipt_DeleteDistribution_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(DeleteDistributionRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FliptServer).DeleteDistribution(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: Flipt_DeleteDistribution_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FliptServer).DeleteDistribution(ctx, req.(*DeleteDistributionRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Flipt_GetSegment_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetSegmentRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FliptServer).GetSegment(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: Flipt_GetSegment_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FliptServer).GetSegment(ctx, req.(*GetSegmentRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Flipt_ListSegments_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ListSegmentRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FliptServer).ListSegments(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: Flipt_ListSegments_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FliptServer).ListSegments(ctx, req.(*ListSegmentRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Flipt_CreateSegment_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(CreateSegmentRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FliptServer).CreateSegment(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: Flipt_CreateSegment_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FliptServer).CreateSegment(ctx, req.(*CreateSegmentRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Flipt_UpdateSegment_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(UpdateSegmentRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FliptServer).UpdateSegment(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: Flipt_UpdateSegment_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FliptServer).UpdateSegment(ctx, req.(*UpdateSegmentRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Flipt_DeleteSegment_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(DeleteSegmentRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FliptServer).DeleteSegment(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: Flipt_DeleteSegment_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FliptServer).DeleteSegment(ctx, req.(*DeleteSegmentRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Flipt_CreateConstraint_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(CreateConstraintRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FliptServer).CreateConstraint(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: Flipt_CreateConstraint_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FliptServer).CreateConstraint(ctx, req.(*CreateConstraintRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Flipt_UpdateConstraint_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(UpdateConstraintRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FliptServer).UpdateConstraint(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: Flipt_UpdateConstraint_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FliptServer).UpdateConstraint(ctx, req.(*UpdateConstraintRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Flipt_DeleteConstraint_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(DeleteConstraintRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(FliptServer).DeleteConstraint(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: Flipt_DeleteConstraint_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(FliptServer).DeleteConstraint(ctx, req.(*DeleteConstraintRequest))
	}
	return interceptor(ctx, in, info, handler)
}

// Flipt_ServiceDesc is the grpc.ServiceDesc for Flipt service.
// It's only intended for direct use with grpc.RegisterService,
// and not to be introspected or modified (even as a copy)
var Flipt_ServiceDesc = grpc.ServiceDesc{
	ServiceName: "flipt.Flipt",
	HandlerType: (*FliptServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "Evaluate",
			Handler:    _Flipt_Evaluate_Handler,
		},
		{
			MethodName: "BatchEvaluate",
			Handler:    _Flipt_BatchEvaluate_Handler,
		},
		{
			MethodName: "GetNamespace",
			Handler:    _Flipt_GetNamespace_Handler,
		},
		{
			MethodName: "ListNamespaces",
			Handler:    _Flipt_ListNamespaces_Handler,
		},
		{
			MethodName: "CreateNamespace",
			Handler:    _Flipt_CreateNamespace_Handler,
		},
		{
			MethodName: "UpdateNamespace",
			Handler:    _Flipt_UpdateNamespace_Handler,
		},
		{
			MethodName: "DeleteNamespace",
			Handler:    _Flipt_DeleteNamespace_Handler,
		},
		{
			MethodName: "GetFlag",
			Handler:    _Flipt_GetFlag_Handler,
		},
		{
			MethodName: "ListFlags",
			Handler:    _Flipt_ListFlags_Handler,
		},
		{
			MethodName: "CreateFlag",
			Handler:    _Flipt_CreateFlag_Handler,
		},
		{
			MethodName: "UpdateFlag",
			Handler:    _Flipt_UpdateFlag_Handler,
		},
		{
			MethodName: "DeleteFlag",
			Handler:    _Flipt_DeleteFlag_Handler,
		},
		{
			MethodName: "CreateVariant",
			Handler:    _Flipt_CreateVariant_Handler,
		},
		{
			MethodName: "UpdateVariant",
			Handler:    _Flipt_UpdateVariant_Handler,
		},
		{
			MethodName: "DeleteVariant",
			Handler:    _Flipt_DeleteVariant_Handler,
		},
		{
			MethodName: "GetRule",
			Handler:    _Flipt_GetRule_Handler,
		},
		{
			MethodName: "ListRules",
			Handler:    _Flipt_ListRules_Handler,
		},
		{
			MethodName: "CreateRule",
			Handler:    _Flipt_CreateRule_Handler,
		},
		{
			MethodName: "UpdateRule",
			Handler:    _Flipt_UpdateRule_Handler,
		},
		{
			MethodName: "OrderRules",
			Handler:    _Flipt_OrderRules_Handler,
		},
		{
			MethodName: "DeleteRule",
			Handler:    _Flipt_DeleteRule_Handler,
		},
		{
			MethodName: "GetRollout",
			Handler:    _Flipt_GetRollout_Handler,
		},
		{
			MethodName: "ListRollouts",
			Handler:    _Flipt_ListRollouts_Handler,
		},
		{
			MethodName: "CreateRollout",
			Handler:    _Flipt_CreateRollout_Handler,
		},
		{
			MethodName: "UpdateRollout",
			Handler:    _Flipt_UpdateRollout_Handler,
		},
		{
			MethodName: "DeleteRollout",
			Handler:    _Flipt_DeleteRollout_Handler,
		},
		{
			MethodName: "OrderRollouts",
			Handler:    _Flipt_OrderRollouts_Handler,
		},
		{
			MethodName: "CreateDistribution",
			Handler:    _Flipt_CreateDistribution_Handler,
		},
		{
			MethodName: "UpdateDistribution",
			Handler:    _Flipt_UpdateDistribution_Handler,
		},
		{
			MethodName: "DeleteDistribution",
			Handler:    _Flipt_DeleteDistribution_Handler,
		},
		{
			MethodName: "GetSegment",
			Handler:    _Flipt_GetSegment_Handler,
		},
		{
			MethodName: "ListSegments",
			Handler:    _Flipt_ListSegments_Handler,
		},
		{
			MethodName: "CreateSegment",
			Handler:    _Flipt_CreateSegment_Handler,
		},
		{
			MethodName: "UpdateSegment",
			Handler:    _Flipt_UpdateSegment_Handler,
		},
		{
			MethodName: "DeleteSegment",
			Handler:    _Flipt_DeleteSegment_Handler,
		},
		{
			MethodName: "CreateConstraint",
			Handler:    _Flipt_CreateConstraint_Handler,
		},
		{
			MethodName: "UpdateConstraint",
			Handler:    _Flipt_UpdateConstraint_Handler,
		},
		{
			MethodName: "DeleteConstraint",
			Handler:    _Flipt_DeleteConstraint_Handler,
		},
	},
	Streams:  []grpc.StreamDesc{},
	Metadata: "flipt.proto",
}
