# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
"""Client and server classes corresponding to protobuf-defined services."""
import grpc

from featureform.proto import metadata_pb2 as featureform_dot_proto_dot_metadata__pb2


class MetadataStub(object):
    """Missing associated documentation comment in .proto file."""

    def __init__(self, channel):
        """Constructor.

        Args:
            channel: A grpc.Channel.
        """
        self.GetAuthConfig = channel.unary_unary(
                '/featureform.serving.metadata.proto.Metadata/GetAuthConfig',
                request_serializer=featureform_dot_proto_dot_metadata__pb2.Empty.SerializeToString,
                response_deserializer=featureform_dot_proto_dot_metadata__pb2.AuthConfig.FromString,
                )
        self.CreateUser = channel.unary_unary(
                '/featureform.serving.metadata.proto.Metadata/CreateUser',
                request_serializer=featureform_dot_proto_dot_metadata__pb2.UserRequest.SerializeToString,
                response_deserializer=featureform_dot_proto_dot_metadata__pb2.Empty.FromString,
                )
        self.CreateProvider = channel.unary_unary(
                '/featureform.serving.metadata.proto.Metadata/CreateProvider',
                request_serializer=featureform_dot_proto_dot_metadata__pb2.ProviderRequest.SerializeToString,
                response_deserializer=featureform_dot_proto_dot_metadata__pb2.Empty.FromString,
                )
        self.CreateSourceVariant = channel.unary_unary(
                '/featureform.serving.metadata.proto.Metadata/CreateSourceVariant',
                request_serializer=featureform_dot_proto_dot_metadata__pb2.SourceVariantRequest.SerializeToString,
                response_deserializer=featureform_dot_proto_dot_metadata__pb2.Empty.FromString,
                )
        self.CreateEntity = channel.unary_unary(
                '/featureform.serving.metadata.proto.Metadata/CreateEntity',
                request_serializer=featureform_dot_proto_dot_metadata__pb2.EntityRequest.SerializeToString,
                response_deserializer=featureform_dot_proto_dot_metadata__pb2.Empty.FromString,
                )
        self.CreateFeatureVariant = channel.unary_unary(
                '/featureform.serving.metadata.proto.Metadata/CreateFeatureVariant',
                request_serializer=featureform_dot_proto_dot_metadata__pb2.FeatureVariantRequest.SerializeToString,
                response_deserializer=featureform_dot_proto_dot_metadata__pb2.Empty.FromString,
                )
        self.CreateLabelVariant = channel.unary_unary(
                '/featureform.serving.metadata.proto.Metadata/CreateLabelVariant',
                request_serializer=featureform_dot_proto_dot_metadata__pb2.LabelVariantRequest.SerializeToString,
                response_deserializer=featureform_dot_proto_dot_metadata__pb2.Empty.FromString,
                )
        self.CreateTrainingSetVariant = channel.unary_unary(
                '/featureform.serving.metadata.proto.Metadata/CreateTrainingSetVariant',
                request_serializer=featureform_dot_proto_dot_metadata__pb2.TrainingSetVariantRequest.SerializeToString,
                response_deserializer=featureform_dot_proto_dot_metadata__pb2.Empty.FromString,
                )
        self.CreateModel = channel.unary_unary(
                '/featureform.serving.metadata.proto.Metadata/CreateModel',
                request_serializer=featureform_dot_proto_dot_metadata__pb2.ModelRequest.SerializeToString,
                response_deserializer=featureform_dot_proto_dot_metadata__pb2.Empty.FromString,
                )
        self.CreateStreamChannel = channel.unary_unary(
                '/featureform.serving.metadata.proto.Metadata/CreateStreamChannel',
                request_serializer=featureform_dot_proto_dot_metadata__pb2.StreamChannelRequest.SerializeToString,
                response_deserializer=featureform_dot_proto_dot_metadata__pb2.Empty.FromString,
                )
        self.RequestScheduleChange = channel.unary_unary(
                '/featureform.serving.metadata.proto.Metadata/RequestScheduleChange',
                request_serializer=featureform_dot_proto_dot_metadata__pb2.ScheduleChangeRequest.SerializeToString,
                response_deserializer=featureform_dot_proto_dot_metadata__pb2.Empty.FromString,
                )
        self.MaterializeFeatureView = channel.unary_unary(
                '/featureform.serving.metadata.proto.Metadata/MaterializeFeatureView',
                request_serializer=featureform_dot_proto_dot_metadata__pb2.FeatureViewRequest.SerializeToString,
                response_deserializer=featureform_dot_proto_dot_metadata__pb2.Empty.FromString,
                )
        self.GetUsers = channel.stream_stream(
                '/featureform.serving.metadata.proto.Metadata/GetUsers',
                request_serializer=featureform_dot_proto_dot_metadata__pb2.NameRequest.SerializeToString,
                response_deserializer=featureform_dot_proto_dot_metadata__pb2.User.FromString,
                )
        self.GetFeatures = channel.stream_stream(
                '/featureform.serving.metadata.proto.Metadata/GetFeatures',
                request_serializer=featureform_dot_proto_dot_metadata__pb2.NameRequest.SerializeToString,
                response_deserializer=featureform_dot_proto_dot_metadata__pb2.Feature.FromString,
                )
        self.GetFeatureVariants = channel.stream_stream(
                '/featureform.serving.metadata.proto.Metadata/GetFeatureVariants',
                request_serializer=featureform_dot_proto_dot_metadata__pb2.NameVariantRequest.SerializeToString,
                response_deserializer=featureform_dot_proto_dot_metadata__pb2.FeatureVariant.FromString,
                )
        self.GetLabels = channel.stream_stream(
                '/featureform.serving.metadata.proto.Metadata/GetLabels',
                request_serializer=featureform_dot_proto_dot_metadata__pb2.NameRequest.SerializeToString,
                response_deserializer=featureform_dot_proto_dot_metadata__pb2.Label.FromString,
                )
        self.GetLabelVariants = channel.stream_stream(
                '/featureform.serving.metadata.proto.Metadata/GetLabelVariants',
                request_serializer=featureform_dot_proto_dot_metadata__pb2.NameVariantRequest.SerializeToString,
                response_deserializer=featureform_dot_proto_dot_metadata__pb2.LabelVariant.FromString,
                )
        self.GetTrainingSets = channel.stream_stream(
                '/featureform.serving.metadata.proto.Metadata/GetTrainingSets',
                request_serializer=featureform_dot_proto_dot_metadata__pb2.NameRequest.SerializeToString,
                response_deserializer=featureform_dot_proto_dot_metadata__pb2.TrainingSet.FromString,
                )
        self.GetTrainingSetVariants = channel.stream_stream(
                '/featureform.serving.metadata.proto.Metadata/GetTrainingSetVariants',
                request_serializer=featureform_dot_proto_dot_metadata__pb2.NameVariantRequest.SerializeToString,
                response_deserializer=featureform_dot_proto_dot_metadata__pb2.TrainingSetVariant.FromString,
                )
        self.GetSources = channel.stream_stream(
                '/featureform.serving.metadata.proto.Metadata/GetSources',
                request_serializer=featureform_dot_proto_dot_metadata__pb2.NameRequest.SerializeToString,
                response_deserializer=featureform_dot_proto_dot_metadata__pb2.Source.FromString,
                )
        self.GetSourceVariants = channel.stream_stream(
                '/featureform.serving.metadata.proto.Metadata/GetSourceVariants',
                request_serializer=featureform_dot_proto_dot_metadata__pb2.NameVariantRequest.SerializeToString,
                response_deserializer=featureform_dot_proto_dot_metadata__pb2.SourceVariant.FromString,
                )
        self.GetProviders = channel.stream_stream(
                '/featureform.serving.metadata.proto.Metadata/GetProviders',
                request_serializer=featureform_dot_proto_dot_metadata__pb2.NameRequest.SerializeToString,
                response_deserializer=featureform_dot_proto_dot_metadata__pb2.Provider.FromString,
                )
        self.GetEntities = channel.stream_stream(
                '/featureform.serving.metadata.proto.Metadata/GetEntities',
                request_serializer=featureform_dot_proto_dot_metadata__pb2.NameRequest.SerializeToString,
                response_deserializer=featureform_dot_proto_dot_metadata__pb2.Entity.FromString,
                )
        self.GetModels = channel.stream_stream(
                '/featureform.serving.metadata.proto.Metadata/GetModels',
                request_serializer=featureform_dot_proto_dot_metadata__pb2.NameRequest.SerializeToString,
                response_deserializer=featureform_dot_proto_dot_metadata__pb2.Model.FromString,
                )
        self.GetStreamChannels = channel.stream_stream(
                '/featureform.serving.metadata.proto.Metadata/GetStreamChannels',
                request_serializer=featureform_dot_proto_dot_metadata__pb2.NameRequest.SerializeToString,
                response_deserializer=featureform_dot_proto_dot_metadata__pb2.StreamChannel.FromString,
                )
        self.GetDownstreamDependencies = channel.stream_stream(
                '/featureform.serving.metadata.proto.Metadata/GetDownstreamDependencies',
                request_serializer=featureform_dot_proto_dot_metadata__pb2.GetDownstreamDependenciesRequest.SerializeToString,
                response_deserializer=featureform_dot_proto_dot_metadata__pb2.GetDownstreamDependenciesResponse.FromString,
                )
        self.GetAllDownstreamDependencies = channel.stream_stream(
                '/featureform.serving.metadata.proto.Metadata/GetAllDownstreamDependencies',
                request_serializer=featureform_dot_proto_dot_metadata__pb2.GetAllDownstreamDependenciesRequest.SerializeToString,
                response_deserializer=featureform_dot_proto_dot_metadata__pb2.ResourceID.FromString,
                )
        self.GetFeatureViews = channel.stream_stream(
                '/featureform.serving.metadata.proto.Metadata/GetFeatureViews',
                request_serializer=featureform_dot_proto_dot_metadata__pb2.NameRequest.SerializeToString,
                response_deserializer=featureform_dot_proto_dot_metadata__pb2.FeatureView.FromString,
                )
        self.GetUpstreamDependencies = channel.stream_stream(
                '/featureform.serving.metadata.proto.Metadata/GetUpstreamDependencies',
                request_serializer=featureform_dot_proto_dot_metadata__pb2.GetUpstreamDependenciesRequest.SerializeToString,
                response_deserializer=featureform_dot_proto_dot_metadata__pb2.GetUpstreamDependenciesResponse.FromString,
                )
        self.MarkForDeletion = channel.unary_unary(
                '/featureform.serving.metadata.proto.Metadata/MarkForDeletion',
                request_serializer=featureform_dot_proto_dot_metadata__pb2.MarkForDeletionRequest.SerializeToString,
                response_deserializer=featureform_dot_proto_dot_metadata__pb2.MarkForDeletionResponse.FromString,
                )
        self.FinalizeDeletion = channel.unary_unary(
                '/featureform.serving.metadata.proto.Metadata/FinalizeDeletion',
                request_serializer=featureform_dot_proto_dot_metadata__pb2.FinalizeDeletionRequest.SerializeToString,
                response_deserializer=featureform_dot_proto_dot_metadata__pb2.FinalizeDeletionResponse.FromString,
                )
        self.GetStagedForDeletionResource = channel.unary_unary(
                '/featureform.serving.metadata.proto.Metadata/GetStagedForDeletionResource',
                request_serializer=featureform_dot_proto_dot_metadata__pb2.GetStagedForDeletionResourceRequest.SerializeToString,
                response_deserializer=featureform_dot_proto_dot_metadata__pb2.GetStagedForDeletionResourceResponse.FromString,
                )
        self.PruneResource = channel.unary_unary(
                '/featureform.serving.metadata.proto.Metadata/PruneResource',
                request_serializer=featureform_dot_proto_dot_metadata__pb2.PruneResourceRequest.SerializeToString,
                response_deserializer=featureform_dot_proto_dot_metadata__pb2.PruneResourceResponse.FromString,
                )
        self.GetTaskStatuses = channel.unary_unary(
                '/featureform.serving.metadata.proto.Metadata/GetTaskStatuses',
                request_serializer=featureform_dot_proto_dot_metadata__pb2.GetTaskStatusesRequest.SerializeToString,
                response_deserializer=featureform_dot_proto_dot_metadata__pb2.GetTaskStatusesResponse.FromString,
                )
        self.GetEquivalent = channel.unary_unary(
                '/featureform.serving.metadata.proto.Metadata/GetEquivalent',
                request_serializer=featureform_dot_proto_dot_metadata__pb2.GetEquivalentRequest.SerializeToString,
                response_deserializer=featureform_dot_proto_dot_metadata__pb2.ResourceVariant.FromString,
                )
        self.Run = channel.unary_unary(
                '/featureform.serving.metadata.proto.Metadata/Run',
                request_serializer=featureform_dot_proto_dot_metadata__pb2.RunRequest.SerializeToString,
                response_deserializer=featureform_dot_proto_dot_metadata__pb2.Empty.FromString,
                )
        self.ListFeatures = channel.unary_stream(
                '/featureform.serving.metadata.proto.Metadata/ListFeatures',
                request_serializer=featureform_dot_proto_dot_metadata__pb2.ListRequest.SerializeToString,
                response_deserializer=featureform_dot_proto_dot_metadata__pb2.Feature.FromString,
                )
        self.ListLabels = channel.unary_stream(
                '/featureform.serving.metadata.proto.Metadata/ListLabels',
                request_serializer=featureform_dot_proto_dot_metadata__pb2.ListRequest.SerializeToString,
                response_deserializer=featureform_dot_proto_dot_metadata__pb2.Label.FromString,
                )
        self.ListTrainingSets = channel.unary_stream(
                '/featureform.serving.metadata.proto.Metadata/ListTrainingSets',
                request_serializer=featureform_dot_proto_dot_metadata__pb2.ListRequest.SerializeToString,
                response_deserializer=featureform_dot_proto_dot_metadata__pb2.TrainingSet.FromString,
                )
        self.ListSources = channel.unary_stream(
                '/featureform.serving.metadata.proto.Metadata/ListSources',
                request_serializer=featureform_dot_proto_dot_metadata__pb2.ListRequest.SerializeToString,
                response_deserializer=featureform_dot_proto_dot_metadata__pb2.Source.FromString,
                )
        self.ListUsers = channel.unary_stream(
                '/featureform.serving.metadata.proto.Metadata/ListUsers',
                request_serializer=featureform_dot_proto_dot_metadata__pb2.ListRequest.SerializeToString,
                response_deserializer=featureform_dot_proto_dot_metadata__pb2.User.FromString,
                )
        self.ListProviders = channel.unary_stream(
                '/featureform.serving.metadata.proto.Metadata/ListProviders',
                request_serializer=featureform_dot_proto_dot_metadata__pb2.ListRequest.SerializeToString,
                response_deserializer=featureform_dot_proto_dot_metadata__pb2.Provider.FromString,
                )
        self.ListEntities = channel.unary_stream(
                '/featureform.serving.metadata.proto.Metadata/ListEntities',
                request_serializer=featureform_dot_proto_dot_metadata__pb2.ListRequest.SerializeToString,
                response_deserializer=featureform_dot_proto_dot_metadata__pb2.Entity.FromString,
                )
        self.ListModels = channel.unary_stream(
                '/featureform.serving.metadata.proto.Metadata/ListModels',
                request_serializer=featureform_dot_proto_dot_metadata__pb2.ListRequest.SerializeToString,
                response_deserializer=featureform_dot_proto_dot_metadata__pb2.Model.FromString,
                )
        self.ListFeatureViews = channel.unary_stream(
                '/featureform.serving.metadata.proto.Metadata/ListFeatureViews',
                request_serializer=featureform_dot_proto_dot_metadata__pb2.ListRequest.SerializeToString,
                response_deserializer=featureform_dot_proto_dot_metadata__pb2.FeatureView.FromString,
                )
        self.ListStreamChannels = channel.unary_stream(
                '/featureform.serving.metadata.proto.Metadata/ListStreamChannels',
                request_serializer=featureform_dot_proto_dot_metadata__pb2.ListRequest.SerializeToString,
                response_deserializer=featureform_dot_proto_dot_metadata__pb2.StreamChannel.FromString,
                )
        self.SetResourceStatus = channel.unary_unary(
                '/featureform.serving.metadata.proto.Metadata/SetResourceStatus',
                request_serializer=featureform_dot_proto_dot_metadata__pb2.SetStatusRequest.SerializeToString,
                response_deserializer=featureform_dot_proto_dot_metadata__pb2.Empty.FromString,
                )
        self.SetFeatureViewLocations = channel.unary_unary(
                '/featureform.serving.metadata.proto.Metadata/SetFeatureViewLocations',
                request_serializer=featureform_dot_proto_dot_metadata__pb2.FeatureViewLocationUpdateRequest.SerializeToString,
                response_deserializer=featureform_dot_proto_dot_metadata__pb2.Empty.FromString,
                )


class MetadataServicer(object):
    """Missing associated documentation comment in .proto file."""

    def GetAuthConfig(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def CreateUser(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def CreateProvider(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def CreateSourceVariant(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def CreateEntity(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def CreateFeatureVariant(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def CreateLabelVariant(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def CreateTrainingSetVariant(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def CreateModel(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def CreateStreamChannel(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def RequestScheduleChange(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def MaterializeFeatureView(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetUsers(self, request_iterator, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetFeatures(self, request_iterator, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetFeatureVariants(self, request_iterator, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetLabels(self, request_iterator, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetLabelVariants(self, request_iterator, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetTrainingSets(self, request_iterator, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetTrainingSetVariants(self, request_iterator, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetSources(self, request_iterator, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetSourceVariants(self, request_iterator, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetProviders(self, request_iterator, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetEntities(self, request_iterator, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetModels(self, request_iterator, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetStreamChannels(self, request_iterator, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetDownstreamDependencies(self, request_iterator, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetAllDownstreamDependencies(self, request_iterator, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetFeatureViews(self, request_iterator, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetUpstreamDependencies(self, request_iterator, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def MarkForDeletion(self, request, context):
        """Deletion API
        Initiates the deletion process by flagging the resource for removal.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def FinalizeDeletion(self, request, context):
        """Completes the deletion process by updating the resource status to 'deleted' in metadata during the deletion task.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetStagedForDeletionResource(self, request, context):
        """Retrieves the resource that is staged for deletion.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def PruneResource(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetTaskStatuses(self, request, context):
        """Retrieves the latest status for the provided task IDs.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetEquivalent(self, request, context):
        """*
        GetEquivalent returns a resourceVariant that matches on key attributes,
        i.e. for a sourceVariant it will only match on key attributes (name, definition, owner, provider)
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def Run(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def ListFeatures(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def ListLabels(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def ListTrainingSets(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def ListSources(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def ListUsers(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def ListProviders(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def ListEntities(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def ListModels(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def ListFeatureViews(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def ListStreamChannels(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def SetResourceStatus(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def SetFeatureViewLocations(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')


def add_MetadataServicer_to_server(servicer, server):
    rpc_method_handlers = {
            'GetAuthConfig': grpc.unary_unary_rpc_method_handler(
                    servicer.GetAuthConfig,
                    request_deserializer=featureform_dot_proto_dot_metadata__pb2.Empty.FromString,
                    response_serializer=featureform_dot_proto_dot_metadata__pb2.AuthConfig.SerializeToString,
            ),
            'CreateUser': grpc.unary_unary_rpc_method_handler(
                    servicer.CreateUser,
                    request_deserializer=featureform_dot_proto_dot_metadata__pb2.UserRequest.FromString,
                    response_serializer=featureform_dot_proto_dot_metadata__pb2.Empty.SerializeToString,
            ),
            'CreateProvider': grpc.unary_unary_rpc_method_handler(
                    servicer.CreateProvider,
                    request_deserializer=featureform_dot_proto_dot_metadata__pb2.ProviderRequest.FromString,
                    response_serializer=featureform_dot_proto_dot_metadata__pb2.Empty.SerializeToString,
            ),
            'CreateSourceVariant': grpc.unary_unary_rpc_method_handler(
                    servicer.CreateSourceVariant,
                    request_deserializer=featureform_dot_proto_dot_metadata__pb2.SourceVariantRequest.FromString,
                    response_serializer=featureform_dot_proto_dot_metadata__pb2.Empty.SerializeToString,
            ),
            'CreateEntity': grpc.unary_unary_rpc_method_handler(
                    servicer.CreateEntity,
                    request_deserializer=featureform_dot_proto_dot_metadata__pb2.EntityRequest.FromString,
                    response_serializer=featureform_dot_proto_dot_metadata__pb2.Empty.SerializeToString,
            ),
            'CreateFeatureVariant': grpc.unary_unary_rpc_method_handler(
                    servicer.CreateFeatureVariant,
                    request_deserializer=featureform_dot_proto_dot_metadata__pb2.FeatureVariantRequest.FromString,
                    response_serializer=featureform_dot_proto_dot_metadata__pb2.Empty.SerializeToString,
            ),
            'CreateLabelVariant': grpc.unary_unary_rpc_method_handler(
                    servicer.CreateLabelVariant,
                    request_deserializer=featureform_dot_proto_dot_metadata__pb2.LabelVariantRequest.FromString,
                    response_serializer=featureform_dot_proto_dot_metadata__pb2.Empty.SerializeToString,
            ),
            'CreateTrainingSetVariant': grpc.unary_unary_rpc_method_handler(
                    servicer.CreateTrainingSetVariant,
                    request_deserializer=featureform_dot_proto_dot_metadata__pb2.TrainingSetVariantRequest.FromString,
                    response_serializer=featureform_dot_proto_dot_metadata__pb2.Empty.SerializeToString,
            ),
            'CreateModel': grpc.unary_unary_rpc_method_handler(
                    servicer.CreateModel,
                    request_deserializer=featureform_dot_proto_dot_metadata__pb2.ModelRequest.FromString,
                    response_serializer=featureform_dot_proto_dot_metadata__pb2.Empty.SerializeToString,
            ),
            'CreateStreamChannel': grpc.unary_unary_rpc_method_handler(
                    servicer.CreateStreamChannel,
                    request_deserializer=featureform_dot_proto_dot_metadata__pb2.StreamChannelRequest.FromString,
                    response_serializer=featureform_dot_proto_dot_metadata__pb2.Empty.SerializeToString,
            ),
            'RequestScheduleChange': grpc.unary_unary_rpc_method_handler(
                    servicer.RequestScheduleChange,
                    request_deserializer=featureform_dot_proto_dot_metadata__pb2.ScheduleChangeRequest.FromString,
                    response_serializer=featureform_dot_proto_dot_metadata__pb2.Empty.SerializeToString,
            ),
            'MaterializeFeatureView': grpc.unary_unary_rpc_method_handler(
                    servicer.MaterializeFeatureView,
                    request_deserializer=featureform_dot_proto_dot_metadata__pb2.FeatureViewRequest.FromString,
                    response_serializer=featureform_dot_proto_dot_metadata__pb2.Empty.SerializeToString,
            ),
            'GetUsers': grpc.stream_stream_rpc_method_handler(
                    servicer.GetUsers,
                    request_deserializer=featureform_dot_proto_dot_metadata__pb2.NameRequest.FromString,
                    response_serializer=featureform_dot_proto_dot_metadata__pb2.User.SerializeToString,
            ),
            'GetFeatures': grpc.stream_stream_rpc_method_handler(
                    servicer.GetFeatures,
                    request_deserializer=featureform_dot_proto_dot_metadata__pb2.NameRequest.FromString,
                    response_serializer=featureform_dot_proto_dot_metadata__pb2.Feature.SerializeToString,
            ),
            'GetFeatureVariants': grpc.stream_stream_rpc_method_handler(
                    servicer.GetFeatureVariants,
                    request_deserializer=featureform_dot_proto_dot_metadata__pb2.NameVariantRequest.FromString,
                    response_serializer=featureform_dot_proto_dot_metadata__pb2.FeatureVariant.SerializeToString,
            ),
            'GetLabels': grpc.stream_stream_rpc_method_handler(
                    servicer.GetLabels,
                    request_deserializer=featureform_dot_proto_dot_metadata__pb2.NameRequest.FromString,
                    response_serializer=featureform_dot_proto_dot_metadata__pb2.Label.SerializeToString,
            ),
            'GetLabelVariants': grpc.stream_stream_rpc_method_handler(
                    servicer.GetLabelVariants,
                    request_deserializer=featureform_dot_proto_dot_metadata__pb2.NameVariantRequest.FromString,
                    response_serializer=featureform_dot_proto_dot_metadata__pb2.LabelVariant.SerializeToString,
            ),
            'GetTrainingSets': grpc.stream_stream_rpc_method_handler(
                    servicer.GetTrainingSets,
                    request_deserializer=featureform_dot_proto_dot_metadata__pb2.NameRequest.FromString,
                    response_serializer=featureform_dot_proto_dot_metadata__pb2.TrainingSet.SerializeToString,
            ),
            'GetTrainingSetVariants': grpc.stream_stream_rpc_method_handler(
                    servicer.GetTrainingSetVariants,
                    request_deserializer=featureform_dot_proto_dot_metadata__pb2.NameVariantRequest.FromString,
                    response_serializer=featureform_dot_proto_dot_metadata__pb2.TrainingSetVariant.SerializeToString,
            ),
            'GetSources': grpc.stream_stream_rpc_method_handler(
                    servicer.GetSources,
                    request_deserializer=featureform_dot_proto_dot_metadata__pb2.NameRequest.FromString,
                    response_serializer=featureform_dot_proto_dot_metadata__pb2.Source.SerializeToString,
            ),
            'GetSourceVariants': grpc.stream_stream_rpc_method_handler(
                    servicer.GetSourceVariants,
                    request_deserializer=featureform_dot_proto_dot_metadata__pb2.NameVariantRequest.FromString,
                    response_serializer=featureform_dot_proto_dot_metadata__pb2.SourceVariant.SerializeToString,
            ),
            'GetProviders': grpc.stream_stream_rpc_method_handler(
                    servicer.GetProviders,
                    request_deserializer=featureform_dot_proto_dot_metadata__pb2.NameRequest.FromString,
                    response_serializer=featureform_dot_proto_dot_metadata__pb2.Provider.SerializeToString,
            ),
            'GetEntities': grpc.stream_stream_rpc_method_handler(
                    servicer.GetEntities,
                    request_deserializer=featureform_dot_proto_dot_metadata__pb2.NameRequest.FromString,
                    response_serializer=featureform_dot_proto_dot_metadata__pb2.Entity.SerializeToString,
            ),
            'GetModels': grpc.stream_stream_rpc_method_handler(
                    servicer.GetModels,
                    request_deserializer=featureform_dot_proto_dot_metadata__pb2.NameRequest.FromString,
                    response_serializer=featureform_dot_proto_dot_metadata__pb2.Model.SerializeToString,
            ),
            'GetStreamChannels': grpc.stream_stream_rpc_method_handler(
                    servicer.GetStreamChannels,
                    request_deserializer=featureform_dot_proto_dot_metadata__pb2.NameRequest.FromString,
                    response_serializer=featureform_dot_proto_dot_metadata__pb2.StreamChannel.SerializeToString,
            ),
            'GetDownstreamDependencies': grpc.stream_stream_rpc_method_handler(
                    servicer.GetDownstreamDependencies,
                    request_deserializer=featureform_dot_proto_dot_metadata__pb2.GetDownstreamDependenciesRequest.FromString,
                    response_serializer=featureform_dot_proto_dot_metadata__pb2.GetDownstreamDependenciesResponse.SerializeToString,
            ),
            'GetAllDownstreamDependencies': grpc.stream_stream_rpc_method_handler(
                    servicer.GetAllDownstreamDependencies,
                    request_deserializer=featureform_dot_proto_dot_metadata__pb2.GetAllDownstreamDependenciesRequest.FromString,
                    response_serializer=featureform_dot_proto_dot_metadata__pb2.ResourceID.SerializeToString,
            ),
            'GetFeatureViews': grpc.stream_stream_rpc_method_handler(
                    servicer.GetFeatureViews,
                    request_deserializer=featureform_dot_proto_dot_metadata__pb2.NameRequest.FromString,
                    response_serializer=featureform_dot_proto_dot_metadata__pb2.FeatureView.SerializeToString,
            ),
            'GetUpstreamDependencies': grpc.stream_stream_rpc_method_handler(
                    servicer.GetUpstreamDependencies,
                    request_deserializer=featureform_dot_proto_dot_metadata__pb2.GetUpstreamDependenciesRequest.FromString,
                    response_serializer=featureform_dot_proto_dot_metadata__pb2.GetUpstreamDependenciesResponse.SerializeToString,
            ),
            'MarkForDeletion': grpc.unary_unary_rpc_method_handler(
                    servicer.MarkForDeletion,
                    request_deserializer=featureform_dot_proto_dot_metadata__pb2.MarkForDeletionRequest.FromString,
                    response_serializer=featureform_dot_proto_dot_metadata__pb2.MarkForDeletionResponse.SerializeToString,
            ),
            'FinalizeDeletion': grpc.unary_unary_rpc_method_handler(
                    servicer.FinalizeDeletion,
                    request_deserializer=featureform_dot_proto_dot_metadata__pb2.FinalizeDeletionRequest.FromString,
                    response_serializer=featureform_dot_proto_dot_metadata__pb2.FinalizeDeletionResponse.SerializeToString,
            ),
            'GetStagedForDeletionResource': grpc.unary_unary_rpc_method_handler(
                    servicer.GetStagedForDeletionResource,
                    request_deserializer=featureform_dot_proto_dot_metadata__pb2.GetStagedForDeletionResourceRequest.FromString,
                    response_serializer=featureform_dot_proto_dot_metadata__pb2.GetStagedForDeletionResourceResponse.SerializeToString,
            ),
            'PruneResource': grpc.unary_unary_rpc_method_handler(
                    servicer.PruneResource,
                    request_deserializer=featureform_dot_proto_dot_metadata__pb2.PruneResourceRequest.FromString,
                    response_serializer=featureform_dot_proto_dot_metadata__pb2.PruneResourceResponse.SerializeToString,
            ),
            'GetTaskStatuses': grpc.unary_unary_rpc_method_handler(
                    servicer.GetTaskStatuses,
                    request_deserializer=featureform_dot_proto_dot_metadata__pb2.GetTaskStatusesRequest.FromString,
                    response_serializer=featureform_dot_proto_dot_metadata__pb2.GetTaskStatusesResponse.SerializeToString,
            ),
            'GetEquivalent': grpc.unary_unary_rpc_method_handler(
                    servicer.GetEquivalent,
                    request_deserializer=featureform_dot_proto_dot_metadata__pb2.GetEquivalentRequest.FromString,
                    response_serializer=featureform_dot_proto_dot_metadata__pb2.ResourceVariant.SerializeToString,
            ),
            'Run': grpc.unary_unary_rpc_method_handler(
                    servicer.Run,
                    request_deserializer=featureform_dot_proto_dot_metadata__pb2.RunRequest.FromString,
                    response_serializer=featureform_dot_proto_dot_metadata__pb2.Empty.SerializeToString,
            ),
            'ListFeatures': grpc.unary_stream_rpc_method_handler(
                    servicer.ListFeatures,
                    request_deserializer=featureform_dot_proto_dot_metadata__pb2.ListRequest.FromString,
                    response_serializer=featureform_dot_proto_dot_metadata__pb2.Feature.SerializeToString,
            ),
            'ListLabels': grpc.unary_stream_rpc_method_handler(
                    servicer.ListLabels,
                    request_deserializer=featureform_dot_proto_dot_metadata__pb2.ListRequest.FromString,
                    response_serializer=featureform_dot_proto_dot_metadata__pb2.Label.SerializeToString,
            ),
            'ListTrainingSets': grpc.unary_stream_rpc_method_handler(
                    servicer.ListTrainingSets,
                    request_deserializer=featureform_dot_proto_dot_metadata__pb2.ListRequest.FromString,
                    response_serializer=featureform_dot_proto_dot_metadata__pb2.TrainingSet.SerializeToString,
            ),
            'ListSources': grpc.unary_stream_rpc_method_handler(
                    servicer.ListSources,
                    request_deserializer=featureform_dot_proto_dot_metadata__pb2.ListRequest.FromString,
                    response_serializer=featureform_dot_proto_dot_metadata__pb2.Source.SerializeToString,
            ),
            'ListUsers': grpc.unary_stream_rpc_method_handler(
                    servicer.ListUsers,
                    request_deserializer=featureform_dot_proto_dot_metadata__pb2.ListRequest.FromString,
                    response_serializer=featureform_dot_proto_dot_metadata__pb2.User.SerializeToString,
            ),
            'ListProviders': grpc.unary_stream_rpc_method_handler(
                    servicer.ListProviders,
                    request_deserializer=featureform_dot_proto_dot_metadata__pb2.ListRequest.FromString,
                    response_serializer=featureform_dot_proto_dot_metadata__pb2.Provider.SerializeToString,
            ),
            'ListEntities': grpc.unary_stream_rpc_method_handler(
                    servicer.ListEntities,
                    request_deserializer=featureform_dot_proto_dot_metadata__pb2.ListRequest.FromString,
                    response_serializer=featureform_dot_proto_dot_metadata__pb2.Entity.SerializeToString,
            ),
            'ListModels': grpc.unary_stream_rpc_method_handler(
                    servicer.ListModels,
                    request_deserializer=featureform_dot_proto_dot_metadata__pb2.ListRequest.FromString,
                    response_serializer=featureform_dot_proto_dot_metadata__pb2.Model.SerializeToString,
            ),
            'ListFeatureViews': grpc.unary_stream_rpc_method_handler(
                    servicer.ListFeatureViews,
                    request_deserializer=featureform_dot_proto_dot_metadata__pb2.ListRequest.FromString,
                    response_serializer=featureform_dot_proto_dot_metadata__pb2.FeatureView.SerializeToString,
            ),
            'ListStreamChannels': grpc.unary_stream_rpc_method_handler(
                    servicer.ListStreamChannels,
                    request_deserializer=featureform_dot_proto_dot_metadata__pb2.ListRequest.FromString,
                    response_serializer=featureform_dot_proto_dot_metadata__pb2.StreamChannel.SerializeToString,
            ),
            'SetResourceStatus': grpc.unary_unary_rpc_method_handler(
                    servicer.SetResourceStatus,
                    request_deserializer=featureform_dot_proto_dot_metadata__pb2.SetStatusRequest.FromString,
                    response_serializer=featureform_dot_proto_dot_metadata__pb2.Empty.SerializeToString,
            ),
            'SetFeatureViewLocations': grpc.unary_unary_rpc_method_handler(
                    servicer.SetFeatureViewLocations,
                    request_deserializer=featureform_dot_proto_dot_metadata__pb2.FeatureViewLocationUpdateRequest.FromString,
                    response_serializer=featureform_dot_proto_dot_metadata__pb2.Empty.SerializeToString,
            ),
    }
    generic_handler = grpc.method_handlers_generic_handler(
            'featureform.serving.metadata.proto.Metadata', rpc_method_handlers)
    server.add_generic_rpc_handlers((generic_handler,))


 # This class is part of an EXPERIMENTAL API.
class Metadata(object):
    """Missing associated documentation comment in .proto file."""

    @staticmethod
    def GetAuthConfig(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/featureform.serving.metadata.proto.Metadata/GetAuthConfig',
            featureform_dot_proto_dot_metadata__pb2.Empty.SerializeToString,
            featureform_dot_proto_dot_metadata__pb2.AuthConfig.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def CreateUser(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/featureform.serving.metadata.proto.Metadata/CreateUser',
            featureform_dot_proto_dot_metadata__pb2.UserRequest.SerializeToString,
            featureform_dot_proto_dot_metadata__pb2.Empty.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def CreateProvider(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/featureform.serving.metadata.proto.Metadata/CreateProvider',
            featureform_dot_proto_dot_metadata__pb2.ProviderRequest.SerializeToString,
            featureform_dot_proto_dot_metadata__pb2.Empty.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def CreateSourceVariant(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/featureform.serving.metadata.proto.Metadata/CreateSourceVariant',
            featureform_dot_proto_dot_metadata__pb2.SourceVariantRequest.SerializeToString,
            featureform_dot_proto_dot_metadata__pb2.Empty.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def CreateEntity(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/featureform.serving.metadata.proto.Metadata/CreateEntity',
            featureform_dot_proto_dot_metadata__pb2.EntityRequest.SerializeToString,
            featureform_dot_proto_dot_metadata__pb2.Empty.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def CreateFeatureVariant(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/featureform.serving.metadata.proto.Metadata/CreateFeatureVariant',
            featureform_dot_proto_dot_metadata__pb2.FeatureVariantRequest.SerializeToString,
            featureform_dot_proto_dot_metadata__pb2.Empty.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def CreateLabelVariant(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/featureform.serving.metadata.proto.Metadata/CreateLabelVariant',
            featureform_dot_proto_dot_metadata__pb2.LabelVariantRequest.SerializeToString,
            featureform_dot_proto_dot_metadata__pb2.Empty.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def CreateTrainingSetVariant(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/featureform.serving.metadata.proto.Metadata/CreateTrainingSetVariant',
            featureform_dot_proto_dot_metadata__pb2.TrainingSetVariantRequest.SerializeToString,
            featureform_dot_proto_dot_metadata__pb2.Empty.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def CreateModel(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/featureform.serving.metadata.proto.Metadata/CreateModel',
            featureform_dot_proto_dot_metadata__pb2.ModelRequest.SerializeToString,
            featureform_dot_proto_dot_metadata__pb2.Empty.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def CreateStreamChannel(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/featureform.serving.metadata.proto.Metadata/CreateStreamChannel',
            featureform_dot_proto_dot_metadata__pb2.StreamChannelRequest.SerializeToString,
            featureform_dot_proto_dot_metadata__pb2.Empty.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def RequestScheduleChange(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/featureform.serving.metadata.proto.Metadata/RequestScheduleChange',
            featureform_dot_proto_dot_metadata__pb2.ScheduleChangeRequest.SerializeToString,
            featureform_dot_proto_dot_metadata__pb2.Empty.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def MaterializeFeatureView(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/featureform.serving.metadata.proto.Metadata/MaterializeFeatureView',
            featureform_dot_proto_dot_metadata__pb2.FeatureViewRequest.SerializeToString,
            featureform_dot_proto_dot_metadata__pb2.Empty.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetUsers(request_iterator,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.stream_stream(request_iterator, target, '/featureform.serving.metadata.proto.Metadata/GetUsers',
            featureform_dot_proto_dot_metadata__pb2.NameRequest.SerializeToString,
            featureform_dot_proto_dot_metadata__pb2.User.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetFeatures(request_iterator,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.stream_stream(request_iterator, target, '/featureform.serving.metadata.proto.Metadata/GetFeatures',
            featureform_dot_proto_dot_metadata__pb2.NameRequest.SerializeToString,
            featureform_dot_proto_dot_metadata__pb2.Feature.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetFeatureVariants(request_iterator,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.stream_stream(request_iterator, target, '/featureform.serving.metadata.proto.Metadata/GetFeatureVariants',
            featureform_dot_proto_dot_metadata__pb2.NameVariantRequest.SerializeToString,
            featureform_dot_proto_dot_metadata__pb2.FeatureVariant.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetLabels(request_iterator,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.stream_stream(request_iterator, target, '/featureform.serving.metadata.proto.Metadata/GetLabels',
            featureform_dot_proto_dot_metadata__pb2.NameRequest.SerializeToString,
            featureform_dot_proto_dot_metadata__pb2.Label.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetLabelVariants(request_iterator,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.stream_stream(request_iterator, target, '/featureform.serving.metadata.proto.Metadata/GetLabelVariants',
            featureform_dot_proto_dot_metadata__pb2.NameVariantRequest.SerializeToString,
            featureform_dot_proto_dot_metadata__pb2.LabelVariant.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetTrainingSets(request_iterator,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.stream_stream(request_iterator, target, '/featureform.serving.metadata.proto.Metadata/GetTrainingSets',
            featureform_dot_proto_dot_metadata__pb2.NameRequest.SerializeToString,
            featureform_dot_proto_dot_metadata__pb2.TrainingSet.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetTrainingSetVariants(request_iterator,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.stream_stream(request_iterator, target, '/featureform.serving.metadata.proto.Metadata/GetTrainingSetVariants',
            featureform_dot_proto_dot_metadata__pb2.NameVariantRequest.SerializeToString,
            featureform_dot_proto_dot_metadata__pb2.TrainingSetVariant.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetSources(request_iterator,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.stream_stream(request_iterator, target, '/featureform.serving.metadata.proto.Metadata/GetSources',
            featureform_dot_proto_dot_metadata__pb2.NameRequest.SerializeToString,
            featureform_dot_proto_dot_metadata__pb2.Source.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetSourceVariants(request_iterator,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.stream_stream(request_iterator, target, '/featureform.serving.metadata.proto.Metadata/GetSourceVariants',
            featureform_dot_proto_dot_metadata__pb2.NameVariantRequest.SerializeToString,
            featureform_dot_proto_dot_metadata__pb2.SourceVariant.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetProviders(request_iterator,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.stream_stream(request_iterator, target, '/featureform.serving.metadata.proto.Metadata/GetProviders',
            featureform_dot_proto_dot_metadata__pb2.NameRequest.SerializeToString,
            featureform_dot_proto_dot_metadata__pb2.Provider.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetEntities(request_iterator,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.stream_stream(request_iterator, target, '/featureform.serving.metadata.proto.Metadata/GetEntities',
            featureform_dot_proto_dot_metadata__pb2.NameRequest.SerializeToString,
            featureform_dot_proto_dot_metadata__pb2.Entity.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetModels(request_iterator,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.stream_stream(request_iterator, target, '/featureform.serving.metadata.proto.Metadata/GetModels',
            featureform_dot_proto_dot_metadata__pb2.NameRequest.SerializeToString,
            featureform_dot_proto_dot_metadata__pb2.Model.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetStreamChannels(request_iterator,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.stream_stream(request_iterator, target, '/featureform.serving.metadata.proto.Metadata/GetStreamChannels',
            featureform_dot_proto_dot_metadata__pb2.NameRequest.SerializeToString,
            featureform_dot_proto_dot_metadata__pb2.StreamChannel.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetDownstreamDependencies(request_iterator,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.stream_stream(request_iterator, target, '/featureform.serving.metadata.proto.Metadata/GetDownstreamDependencies',
            featureform_dot_proto_dot_metadata__pb2.GetDownstreamDependenciesRequest.SerializeToString,
            featureform_dot_proto_dot_metadata__pb2.GetDownstreamDependenciesResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetAllDownstreamDependencies(request_iterator,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.stream_stream(request_iterator, target, '/featureform.serving.metadata.proto.Metadata/GetAllDownstreamDependencies',
            featureform_dot_proto_dot_metadata__pb2.GetAllDownstreamDependenciesRequest.SerializeToString,
            featureform_dot_proto_dot_metadata__pb2.ResourceID.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetFeatureViews(request_iterator,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.stream_stream(request_iterator, target, '/featureform.serving.metadata.proto.Metadata/GetFeatureViews',
            featureform_dot_proto_dot_metadata__pb2.NameRequest.SerializeToString,
            featureform_dot_proto_dot_metadata__pb2.FeatureView.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetUpstreamDependencies(request_iterator,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.stream_stream(request_iterator, target, '/featureform.serving.metadata.proto.Metadata/GetUpstreamDependencies',
            featureform_dot_proto_dot_metadata__pb2.GetUpstreamDependenciesRequest.SerializeToString,
            featureform_dot_proto_dot_metadata__pb2.GetUpstreamDependenciesResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def MarkForDeletion(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/featureform.serving.metadata.proto.Metadata/MarkForDeletion',
            featureform_dot_proto_dot_metadata__pb2.MarkForDeletionRequest.SerializeToString,
            featureform_dot_proto_dot_metadata__pb2.MarkForDeletionResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def FinalizeDeletion(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/featureform.serving.metadata.proto.Metadata/FinalizeDeletion',
            featureform_dot_proto_dot_metadata__pb2.FinalizeDeletionRequest.SerializeToString,
            featureform_dot_proto_dot_metadata__pb2.FinalizeDeletionResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetStagedForDeletionResource(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/featureform.serving.metadata.proto.Metadata/GetStagedForDeletionResource',
            featureform_dot_proto_dot_metadata__pb2.GetStagedForDeletionResourceRequest.SerializeToString,
            featureform_dot_proto_dot_metadata__pb2.GetStagedForDeletionResourceResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def PruneResource(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/featureform.serving.metadata.proto.Metadata/PruneResource',
            featureform_dot_proto_dot_metadata__pb2.PruneResourceRequest.SerializeToString,
            featureform_dot_proto_dot_metadata__pb2.PruneResourceResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetTaskStatuses(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/featureform.serving.metadata.proto.Metadata/GetTaskStatuses',
            featureform_dot_proto_dot_metadata__pb2.GetTaskStatusesRequest.SerializeToString,
            featureform_dot_proto_dot_metadata__pb2.GetTaskStatusesResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetEquivalent(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/featureform.serving.metadata.proto.Metadata/GetEquivalent',
            featureform_dot_proto_dot_metadata__pb2.GetEquivalentRequest.SerializeToString,
            featureform_dot_proto_dot_metadata__pb2.ResourceVariant.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def Run(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/featureform.serving.metadata.proto.Metadata/Run',
            featureform_dot_proto_dot_metadata__pb2.RunRequest.SerializeToString,
            featureform_dot_proto_dot_metadata__pb2.Empty.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def ListFeatures(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_stream(request, target, '/featureform.serving.metadata.proto.Metadata/ListFeatures',
            featureform_dot_proto_dot_metadata__pb2.ListRequest.SerializeToString,
            featureform_dot_proto_dot_metadata__pb2.Feature.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def ListLabels(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_stream(request, target, '/featureform.serving.metadata.proto.Metadata/ListLabels',
            featureform_dot_proto_dot_metadata__pb2.ListRequest.SerializeToString,
            featureform_dot_proto_dot_metadata__pb2.Label.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def ListTrainingSets(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_stream(request, target, '/featureform.serving.metadata.proto.Metadata/ListTrainingSets',
            featureform_dot_proto_dot_metadata__pb2.ListRequest.SerializeToString,
            featureform_dot_proto_dot_metadata__pb2.TrainingSet.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def ListSources(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_stream(request, target, '/featureform.serving.metadata.proto.Metadata/ListSources',
            featureform_dot_proto_dot_metadata__pb2.ListRequest.SerializeToString,
            featureform_dot_proto_dot_metadata__pb2.Source.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def ListUsers(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_stream(request, target, '/featureform.serving.metadata.proto.Metadata/ListUsers',
            featureform_dot_proto_dot_metadata__pb2.ListRequest.SerializeToString,
            featureform_dot_proto_dot_metadata__pb2.User.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def ListProviders(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_stream(request, target, '/featureform.serving.metadata.proto.Metadata/ListProviders',
            featureform_dot_proto_dot_metadata__pb2.ListRequest.SerializeToString,
            featureform_dot_proto_dot_metadata__pb2.Provider.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def ListEntities(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_stream(request, target, '/featureform.serving.metadata.proto.Metadata/ListEntities',
            featureform_dot_proto_dot_metadata__pb2.ListRequest.SerializeToString,
            featureform_dot_proto_dot_metadata__pb2.Entity.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def ListModels(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_stream(request, target, '/featureform.serving.metadata.proto.Metadata/ListModels',
            featureform_dot_proto_dot_metadata__pb2.ListRequest.SerializeToString,
            featureform_dot_proto_dot_metadata__pb2.Model.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def ListFeatureViews(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_stream(request, target, '/featureform.serving.metadata.proto.Metadata/ListFeatureViews',
            featureform_dot_proto_dot_metadata__pb2.ListRequest.SerializeToString,
            featureform_dot_proto_dot_metadata__pb2.FeatureView.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def ListStreamChannels(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_stream(request, target, '/featureform.serving.metadata.proto.Metadata/ListStreamChannels',
            featureform_dot_proto_dot_metadata__pb2.ListRequest.SerializeToString,
            featureform_dot_proto_dot_metadata__pb2.StreamChannel.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def SetResourceStatus(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/featureform.serving.metadata.proto.Metadata/SetResourceStatus',
            featureform_dot_proto_dot_metadata__pb2.SetStatusRequest.SerializeToString,
            featureform_dot_proto_dot_metadata__pb2.Empty.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def SetFeatureViewLocations(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/featureform.serving.metadata.proto.Metadata/SetFeatureViewLocations',
            featureform_dot_proto_dot_metadata__pb2.FeatureViewLocationUpdateRequest.SerializeToString,
            featureform_dot_proto_dot_metadata__pb2.Empty.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)


class ApiStub(object):
    """Missing associated documentation comment in .proto file."""

    def __init__(self, channel):
        """Constructor.

        Args:
            channel: A grpc.Channel.
        """
        self.GetAuthConfig = channel.unary_unary(
                '/featureform.serving.metadata.proto.Api/GetAuthConfig',
                request_serializer=featureform_dot_proto_dot_metadata__pb2.Empty.SerializeToString,
                response_deserializer=featureform_dot_proto_dot_metadata__pb2.AuthConfig.FromString,
                )
        self.CreateUser = channel.unary_unary(
                '/featureform.serving.metadata.proto.Api/CreateUser',
                request_serializer=featureform_dot_proto_dot_metadata__pb2.UserRequest.SerializeToString,
                response_deserializer=featureform_dot_proto_dot_metadata__pb2.Empty.FromString,
                )
        self.CreateProvider = channel.unary_unary(
                '/featureform.serving.metadata.proto.Api/CreateProvider',
                request_serializer=featureform_dot_proto_dot_metadata__pb2.ProviderRequest.SerializeToString,
                response_deserializer=featureform_dot_proto_dot_metadata__pb2.Empty.FromString,
                )
        self.CreateSourceVariant = channel.unary_unary(
                '/featureform.serving.metadata.proto.Api/CreateSourceVariant',
                request_serializer=featureform_dot_proto_dot_metadata__pb2.SourceVariantRequest.SerializeToString,
                response_deserializer=featureform_dot_proto_dot_metadata__pb2.Empty.FromString,
                )
        self.CreateEntity = channel.unary_unary(
                '/featureform.serving.metadata.proto.Api/CreateEntity',
                request_serializer=featureform_dot_proto_dot_metadata__pb2.EntityRequest.SerializeToString,
                response_deserializer=featureform_dot_proto_dot_metadata__pb2.Empty.FromString,
                )
        self.CreateFeatureVariant = channel.unary_unary(
                '/featureform.serving.metadata.proto.Api/CreateFeatureVariant',
                request_serializer=featureform_dot_proto_dot_metadata__pb2.FeatureVariantRequest.SerializeToString,
                response_deserializer=featureform_dot_proto_dot_metadata__pb2.Empty.FromString,
                )
        self.CreateLabelVariant = channel.unary_unary(
                '/featureform.serving.metadata.proto.Api/CreateLabelVariant',
                request_serializer=featureform_dot_proto_dot_metadata__pb2.LabelVariantRequest.SerializeToString,
                response_deserializer=featureform_dot_proto_dot_metadata__pb2.Empty.FromString,
                )
        self.CreateTrainingSetVariant = channel.unary_unary(
                '/featureform.serving.metadata.proto.Api/CreateTrainingSetVariant',
                request_serializer=featureform_dot_proto_dot_metadata__pb2.TrainingSetVariantRequest.SerializeToString,
                response_deserializer=featureform_dot_proto_dot_metadata__pb2.Empty.FromString,
                )
        self.CreateModel = channel.unary_unary(
                '/featureform.serving.metadata.proto.Api/CreateModel',
                request_serializer=featureform_dot_proto_dot_metadata__pb2.ModelRequest.SerializeToString,
                response_deserializer=featureform_dot_proto_dot_metadata__pb2.Empty.FromString,
                )
        self.CreateStreamChannel = channel.unary_unary(
                '/featureform.serving.metadata.proto.Api/CreateStreamChannel',
                request_serializer=featureform_dot_proto_dot_metadata__pb2.StreamChannelRequest.SerializeToString,
                response_deserializer=featureform_dot_proto_dot_metadata__pb2.Empty.FromString,
                )
        self.RequestScheduleChange = channel.unary_unary(
                '/featureform.serving.metadata.proto.Api/RequestScheduleChange',
                request_serializer=featureform_dot_proto_dot_metadata__pb2.ScheduleChangeRequest.SerializeToString,
                response_deserializer=featureform_dot_proto_dot_metadata__pb2.Empty.FromString,
                )
        self.MaterializeFeatureView = channel.unary_unary(
                '/featureform.serving.metadata.proto.Api/MaterializeFeatureView',
                request_serializer=featureform_dot_proto_dot_metadata__pb2.FeatureViewRequest.SerializeToString,
                response_deserializer=featureform_dot_proto_dot_metadata__pb2.Empty.FromString,
                )
        self.GetUsers = channel.stream_stream(
                '/featureform.serving.metadata.proto.Api/GetUsers',
                request_serializer=featureform_dot_proto_dot_metadata__pb2.NameRequest.SerializeToString,
                response_deserializer=featureform_dot_proto_dot_metadata__pb2.User.FromString,
                )
        self.GetFeatures = channel.stream_stream(
                '/featureform.serving.metadata.proto.Api/GetFeatures',
                request_serializer=featureform_dot_proto_dot_metadata__pb2.NameRequest.SerializeToString,
                response_deserializer=featureform_dot_proto_dot_metadata__pb2.Feature.FromString,
                )
        self.GetFeatureVariants = channel.stream_stream(
                '/featureform.serving.metadata.proto.Api/GetFeatureVariants',
                request_serializer=featureform_dot_proto_dot_metadata__pb2.NameVariantRequest.SerializeToString,
                response_deserializer=featureform_dot_proto_dot_metadata__pb2.FeatureVariant.FromString,
                )
        self.GetLabels = channel.stream_stream(
                '/featureform.serving.metadata.proto.Api/GetLabels',
                request_serializer=featureform_dot_proto_dot_metadata__pb2.NameRequest.SerializeToString,
                response_deserializer=featureform_dot_proto_dot_metadata__pb2.Label.FromString,
                )
        self.GetLabelVariants = channel.stream_stream(
                '/featureform.serving.metadata.proto.Api/GetLabelVariants',
                request_serializer=featureform_dot_proto_dot_metadata__pb2.NameVariantRequest.SerializeToString,
                response_deserializer=featureform_dot_proto_dot_metadata__pb2.LabelVariant.FromString,
                )
        self.GetTrainingSets = channel.stream_stream(
                '/featureform.serving.metadata.proto.Api/GetTrainingSets',
                request_serializer=featureform_dot_proto_dot_metadata__pb2.NameRequest.SerializeToString,
                response_deserializer=featureform_dot_proto_dot_metadata__pb2.TrainingSet.FromString,
                )
        self.GetTrainingSetVariants = channel.stream_stream(
                '/featureform.serving.metadata.proto.Api/GetTrainingSetVariants',
                request_serializer=featureform_dot_proto_dot_metadata__pb2.NameVariantRequest.SerializeToString,
                response_deserializer=featureform_dot_proto_dot_metadata__pb2.TrainingSetVariant.FromString,
                )
        self.GetSources = channel.stream_stream(
                '/featureform.serving.metadata.proto.Api/GetSources',
                request_serializer=featureform_dot_proto_dot_metadata__pb2.NameRequest.SerializeToString,
                response_deserializer=featureform_dot_proto_dot_metadata__pb2.Source.FromString,
                )
        self.GetSourceVariants = channel.stream_stream(
                '/featureform.serving.metadata.proto.Api/GetSourceVariants',
                request_serializer=featureform_dot_proto_dot_metadata__pb2.NameVariantRequest.SerializeToString,
                response_deserializer=featureform_dot_proto_dot_metadata__pb2.SourceVariant.FromString,
                )
        self.GetProviders = channel.stream_stream(
                '/featureform.serving.metadata.proto.Api/GetProviders',
                request_serializer=featureform_dot_proto_dot_metadata__pb2.NameRequest.SerializeToString,
                response_deserializer=featureform_dot_proto_dot_metadata__pb2.Provider.FromString,
                )
        self.GetEntities = channel.stream_stream(
                '/featureform.serving.metadata.proto.Api/GetEntities',
                request_serializer=featureform_dot_proto_dot_metadata__pb2.NameRequest.SerializeToString,
                response_deserializer=featureform_dot_proto_dot_metadata__pb2.Entity.FromString,
                )
        self.GetModels = channel.stream_stream(
                '/featureform.serving.metadata.proto.Api/GetModels',
                request_serializer=featureform_dot_proto_dot_metadata__pb2.NameRequest.SerializeToString,
                response_deserializer=featureform_dot_proto_dot_metadata__pb2.Model.FromString,
                )
        self.GetStreamChannels = channel.stream_stream(
                '/featureform.serving.metadata.proto.Api/GetStreamChannels',
                request_serializer=featureform_dot_proto_dot_metadata__pb2.NameRequest.SerializeToString,
                response_deserializer=featureform_dot_proto_dot_metadata__pb2.StreamChannel.FromString,
                )
        self.GetDownstreamDependencies = channel.stream_stream(
                '/featureform.serving.metadata.proto.Api/GetDownstreamDependencies',
                request_serializer=featureform_dot_proto_dot_metadata__pb2.GetDownstreamDependenciesRequest.SerializeToString,
                response_deserializer=featureform_dot_proto_dot_metadata__pb2.GetDownstreamDependenciesResponse.FromString,
                )
        self.GetAllDownstreamDependencies = channel.stream_stream(
                '/featureform.serving.metadata.proto.Api/GetAllDownstreamDependencies',
                request_serializer=featureform_dot_proto_dot_metadata__pb2.GetAllDownstreamDependenciesRequest.SerializeToString,
                response_deserializer=featureform_dot_proto_dot_metadata__pb2.ResourceID.FromString,
                )
        self.GetFeatureViews = channel.stream_stream(
                '/featureform.serving.metadata.proto.Api/GetFeatureViews',
                request_serializer=featureform_dot_proto_dot_metadata__pb2.NameRequest.SerializeToString,
                response_deserializer=featureform_dot_proto_dot_metadata__pb2.FeatureView.FromString,
                )
        self.GetUpstreamDependencies = channel.stream_stream(
                '/featureform.serving.metadata.proto.Api/GetUpstreamDependencies',
                request_serializer=featureform_dot_proto_dot_metadata__pb2.GetUpstreamDependenciesRequest.SerializeToString,
                response_deserializer=featureform_dot_proto_dot_metadata__pb2.GetUpstreamDependenciesResponse.FromString,
                )
        self.MarkForDeletion = channel.unary_unary(
                '/featureform.serving.metadata.proto.Api/MarkForDeletion',
                request_serializer=featureform_dot_proto_dot_metadata__pb2.MarkForDeletionRequest.SerializeToString,
                response_deserializer=featureform_dot_proto_dot_metadata__pb2.MarkForDeletionResponse.FromString,
                )
        self.PruneResource = channel.unary_unary(
                '/featureform.serving.metadata.proto.Api/PruneResource',
                request_serializer=featureform_dot_proto_dot_metadata__pb2.PruneResourceRequest.SerializeToString,
                response_deserializer=featureform_dot_proto_dot_metadata__pb2.PruneResourceResponse.FromString,
                )
        self.GetTaskStatuses = channel.unary_unary(
                '/featureform.serving.metadata.proto.Api/GetTaskStatuses',
                request_serializer=featureform_dot_proto_dot_metadata__pb2.GetTaskStatusesRequest.SerializeToString,
                response_deserializer=featureform_dot_proto_dot_metadata__pb2.GetTaskStatusesResponse.FromString,
                )
        self.GetEquivalent = channel.unary_unary(
                '/featureform.serving.metadata.proto.Api/GetEquivalent',
                request_serializer=featureform_dot_proto_dot_metadata__pb2.GetEquivalentRequest.SerializeToString,
                response_deserializer=featureform_dot_proto_dot_metadata__pb2.ResourceVariant.FromString,
                )
        self.Run = channel.unary_unary(
                '/featureform.serving.metadata.proto.Api/Run',
                request_serializer=featureform_dot_proto_dot_metadata__pb2.RunRequest.SerializeToString,
                response_deserializer=featureform_dot_proto_dot_metadata__pb2.Empty.FromString,
                )
        self.ListFeatures = channel.unary_stream(
                '/featureform.serving.metadata.proto.Api/ListFeatures',
                request_serializer=featureform_dot_proto_dot_metadata__pb2.ListRequest.SerializeToString,
                response_deserializer=featureform_dot_proto_dot_metadata__pb2.Feature.FromString,
                )
        self.ListLabels = channel.unary_stream(
                '/featureform.serving.metadata.proto.Api/ListLabels',
                request_serializer=featureform_dot_proto_dot_metadata__pb2.ListRequest.SerializeToString,
                response_deserializer=featureform_dot_proto_dot_metadata__pb2.Label.FromString,
                )
        self.ListTrainingSets = channel.unary_stream(
                '/featureform.serving.metadata.proto.Api/ListTrainingSets',
                request_serializer=featureform_dot_proto_dot_metadata__pb2.ListRequest.SerializeToString,
                response_deserializer=featureform_dot_proto_dot_metadata__pb2.TrainingSet.FromString,
                )
        self.ListSources = channel.unary_stream(
                '/featureform.serving.metadata.proto.Api/ListSources',
                request_serializer=featureform_dot_proto_dot_metadata__pb2.ListRequest.SerializeToString,
                response_deserializer=featureform_dot_proto_dot_metadata__pb2.Source.FromString,
                )
        self.ListUsers = channel.unary_stream(
                '/featureform.serving.metadata.proto.Api/ListUsers',
                request_serializer=featureform_dot_proto_dot_metadata__pb2.ListRequest.SerializeToString,
                response_deserializer=featureform_dot_proto_dot_metadata__pb2.User.FromString,
                )
        self.ListProviders = channel.unary_stream(
                '/featureform.serving.metadata.proto.Api/ListProviders',
                request_serializer=featureform_dot_proto_dot_metadata__pb2.ListRequest.SerializeToString,
                response_deserializer=featureform_dot_proto_dot_metadata__pb2.Provider.FromString,
                )
        self.ListEntities = channel.unary_stream(
                '/featureform.serving.metadata.proto.Api/ListEntities',
                request_serializer=featureform_dot_proto_dot_metadata__pb2.ListRequest.SerializeToString,
                response_deserializer=featureform_dot_proto_dot_metadata__pb2.Entity.FromString,
                )
        self.ListModels = channel.unary_stream(
                '/featureform.serving.metadata.proto.Api/ListModels',
                request_serializer=featureform_dot_proto_dot_metadata__pb2.ListRequest.SerializeToString,
                response_deserializer=featureform_dot_proto_dot_metadata__pb2.Model.FromString,
                )
        self.WriteFeatures = channel.stream_unary(
                '/featureform.serving.metadata.proto.Api/WriteFeatures',
                request_serializer=featureform_dot_proto_dot_metadata__pb2.StreamingFeatureVariant.SerializeToString,
                response_deserializer=featureform_dot_proto_dot_metadata__pb2.Empty.FromString,
                )
        self.WriteLabels = channel.stream_unary(
                '/featureform.serving.metadata.proto.Api/WriteLabels',
                request_serializer=featureform_dot_proto_dot_metadata__pb2.StreamingLabelVariant.SerializeToString,
                response_deserializer=featureform_dot_proto_dot_metadata__pb2.Empty.FromString,
                )
        self.ListFeatureViews = channel.unary_stream(
                '/featureform.serving.metadata.proto.Api/ListFeatureViews',
                request_serializer=featureform_dot_proto_dot_metadata__pb2.ListRequest.SerializeToString,
                response_deserializer=featureform_dot_proto_dot_metadata__pb2.FeatureView.FromString,
                )
        self.ListStreamChannels = channel.unary_stream(
                '/featureform.serving.metadata.proto.Api/ListStreamChannels',
                request_serializer=featureform_dot_proto_dot_metadata__pb2.ListRequest.SerializeToString,
                response_deserializer=featureform_dot_proto_dot_metadata__pb2.StreamChannel.FromString,
                )


class ApiServicer(object):
    """Missing associated documentation comment in .proto file."""

    def GetAuthConfig(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def CreateUser(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def CreateProvider(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def CreateSourceVariant(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def CreateEntity(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def CreateFeatureVariant(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def CreateLabelVariant(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def CreateTrainingSetVariant(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def CreateModel(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def CreateStreamChannel(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def RequestScheduleChange(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def MaterializeFeatureView(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetUsers(self, request_iterator, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetFeatures(self, request_iterator, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetFeatureVariants(self, request_iterator, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetLabels(self, request_iterator, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetLabelVariants(self, request_iterator, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetTrainingSets(self, request_iterator, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetTrainingSetVariants(self, request_iterator, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetSources(self, request_iterator, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetSourceVariants(self, request_iterator, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetProviders(self, request_iterator, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetEntities(self, request_iterator, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetModels(self, request_iterator, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetStreamChannels(self, request_iterator, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetDownstreamDependencies(self, request_iterator, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetAllDownstreamDependencies(self, request_iterator, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetFeatureViews(self, request_iterator, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetUpstreamDependencies(self, request_iterator, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def MarkForDeletion(self, request, context):
        """Deletion API
        Initiates the deletion process by flagging the resource for removal.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def PruneResource(self, request, context):
        """Completes the deletion process by updating the resource status to 'deleted' in metadata during the deletion task.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetTaskStatuses(self, request, context):
        """Retrieves the latest status for the provided task IDs.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetEquivalent(self, request, context):
        """*
        GetEquivalent returns a resourceVariant that matches on key attributes,
        i.e. for a sourceVariant it will only match on key attributes (name, definition, owner, provider)
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def Run(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def ListFeatures(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def ListLabels(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def ListTrainingSets(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def ListSources(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def ListUsers(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def ListProviders(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def ListEntities(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def ListModels(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def WriteFeatures(self, request_iterator, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def WriteLabels(self, request_iterator, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def ListFeatureViews(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def ListStreamChannels(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')


def add_ApiServicer_to_server(servicer, server):
    rpc_method_handlers = {
            'GetAuthConfig': grpc.unary_unary_rpc_method_handler(
                    servicer.GetAuthConfig,
                    request_deserializer=featureform_dot_proto_dot_metadata__pb2.Empty.FromString,
                    response_serializer=featureform_dot_proto_dot_metadata__pb2.AuthConfig.SerializeToString,
            ),
            'CreateUser': grpc.unary_unary_rpc_method_handler(
                    servicer.CreateUser,
                    request_deserializer=featureform_dot_proto_dot_metadata__pb2.UserRequest.FromString,
                    response_serializer=featureform_dot_proto_dot_metadata__pb2.Empty.SerializeToString,
            ),
            'CreateProvider': grpc.unary_unary_rpc_method_handler(
                    servicer.CreateProvider,
                    request_deserializer=featureform_dot_proto_dot_metadata__pb2.ProviderRequest.FromString,
                    response_serializer=featureform_dot_proto_dot_metadata__pb2.Empty.SerializeToString,
            ),
            'CreateSourceVariant': grpc.unary_unary_rpc_method_handler(
                    servicer.CreateSourceVariant,
                    request_deserializer=featureform_dot_proto_dot_metadata__pb2.SourceVariantRequest.FromString,
                    response_serializer=featureform_dot_proto_dot_metadata__pb2.Empty.SerializeToString,
            ),
            'CreateEntity': grpc.unary_unary_rpc_method_handler(
                    servicer.CreateEntity,
                    request_deserializer=featureform_dot_proto_dot_metadata__pb2.EntityRequest.FromString,
                    response_serializer=featureform_dot_proto_dot_metadata__pb2.Empty.SerializeToString,
            ),
            'CreateFeatureVariant': grpc.unary_unary_rpc_method_handler(
                    servicer.CreateFeatureVariant,
                    request_deserializer=featureform_dot_proto_dot_metadata__pb2.FeatureVariantRequest.FromString,
                    response_serializer=featureform_dot_proto_dot_metadata__pb2.Empty.SerializeToString,
            ),
            'CreateLabelVariant': grpc.unary_unary_rpc_method_handler(
                    servicer.CreateLabelVariant,
                    request_deserializer=featureform_dot_proto_dot_metadata__pb2.LabelVariantRequest.FromString,
                    response_serializer=featureform_dot_proto_dot_metadata__pb2.Empty.SerializeToString,
            ),
            'CreateTrainingSetVariant': grpc.unary_unary_rpc_method_handler(
                    servicer.CreateTrainingSetVariant,
                    request_deserializer=featureform_dot_proto_dot_metadata__pb2.TrainingSetVariantRequest.FromString,
                    response_serializer=featureform_dot_proto_dot_metadata__pb2.Empty.SerializeToString,
            ),
            'CreateModel': grpc.unary_unary_rpc_method_handler(
                    servicer.CreateModel,
                    request_deserializer=featureform_dot_proto_dot_metadata__pb2.ModelRequest.FromString,
                    response_serializer=featureform_dot_proto_dot_metadata__pb2.Empty.SerializeToString,
            ),
            'CreateStreamChannel': grpc.unary_unary_rpc_method_handler(
                    servicer.CreateStreamChannel,
                    request_deserializer=featureform_dot_proto_dot_metadata__pb2.StreamChannelRequest.FromString,
                    response_serializer=featureform_dot_proto_dot_metadata__pb2.Empty.SerializeToString,
            ),
            'RequestScheduleChange': grpc.unary_unary_rpc_method_handler(
                    servicer.RequestScheduleChange,
                    request_deserializer=featureform_dot_proto_dot_metadata__pb2.ScheduleChangeRequest.FromString,
                    response_serializer=featureform_dot_proto_dot_metadata__pb2.Empty.SerializeToString,
            ),
            'MaterializeFeatureView': grpc.unary_unary_rpc_method_handler(
                    servicer.MaterializeFeatureView,
                    request_deserializer=featureform_dot_proto_dot_metadata__pb2.FeatureViewRequest.FromString,
                    response_serializer=featureform_dot_proto_dot_metadata__pb2.Empty.SerializeToString,
            ),
            'GetUsers': grpc.stream_stream_rpc_method_handler(
                    servicer.GetUsers,
                    request_deserializer=featureform_dot_proto_dot_metadata__pb2.NameRequest.FromString,
                    response_serializer=featureform_dot_proto_dot_metadata__pb2.User.SerializeToString,
            ),
            'GetFeatures': grpc.stream_stream_rpc_method_handler(
                    servicer.GetFeatures,
                    request_deserializer=featureform_dot_proto_dot_metadata__pb2.NameRequest.FromString,
                    response_serializer=featureform_dot_proto_dot_metadata__pb2.Feature.SerializeToString,
            ),
            'GetFeatureVariants': grpc.stream_stream_rpc_method_handler(
                    servicer.GetFeatureVariants,
                    request_deserializer=featureform_dot_proto_dot_metadata__pb2.NameVariantRequest.FromString,
                    response_serializer=featureform_dot_proto_dot_metadata__pb2.FeatureVariant.SerializeToString,
            ),
            'GetLabels': grpc.stream_stream_rpc_method_handler(
                    servicer.GetLabels,
                    request_deserializer=featureform_dot_proto_dot_metadata__pb2.NameRequest.FromString,
                    response_serializer=featureform_dot_proto_dot_metadata__pb2.Label.SerializeToString,
            ),
            'GetLabelVariants': grpc.stream_stream_rpc_method_handler(
                    servicer.GetLabelVariants,
                    request_deserializer=featureform_dot_proto_dot_metadata__pb2.NameVariantRequest.FromString,
                    response_serializer=featureform_dot_proto_dot_metadata__pb2.LabelVariant.SerializeToString,
            ),
            'GetTrainingSets': grpc.stream_stream_rpc_method_handler(
                    servicer.GetTrainingSets,
                    request_deserializer=featureform_dot_proto_dot_metadata__pb2.NameRequest.FromString,
                    response_serializer=featureform_dot_proto_dot_metadata__pb2.TrainingSet.SerializeToString,
            ),
            'GetTrainingSetVariants': grpc.stream_stream_rpc_method_handler(
                    servicer.GetTrainingSetVariants,
                    request_deserializer=featureform_dot_proto_dot_metadata__pb2.NameVariantRequest.FromString,
                    response_serializer=featureform_dot_proto_dot_metadata__pb2.TrainingSetVariant.SerializeToString,
            ),
            'GetSources': grpc.stream_stream_rpc_method_handler(
                    servicer.GetSources,
                    request_deserializer=featureform_dot_proto_dot_metadata__pb2.NameRequest.FromString,
                    response_serializer=featureform_dot_proto_dot_metadata__pb2.Source.SerializeToString,
            ),
            'GetSourceVariants': grpc.stream_stream_rpc_method_handler(
                    servicer.GetSourceVariants,
                    request_deserializer=featureform_dot_proto_dot_metadata__pb2.NameVariantRequest.FromString,
                    response_serializer=featureform_dot_proto_dot_metadata__pb2.SourceVariant.SerializeToString,
            ),
            'GetProviders': grpc.stream_stream_rpc_method_handler(
                    servicer.GetProviders,
                    request_deserializer=featureform_dot_proto_dot_metadata__pb2.NameRequest.FromString,
                    response_serializer=featureform_dot_proto_dot_metadata__pb2.Provider.SerializeToString,
            ),
            'GetEntities': grpc.stream_stream_rpc_method_handler(
                    servicer.GetEntities,
                    request_deserializer=featureform_dot_proto_dot_metadata__pb2.NameRequest.FromString,
                    response_serializer=featureform_dot_proto_dot_metadata__pb2.Entity.SerializeToString,
            ),
            'GetModels': grpc.stream_stream_rpc_method_handler(
                    servicer.GetModels,
                    request_deserializer=featureform_dot_proto_dot_metadata__pb2.NameRequest.FromString,
                    response_serializer=featureform_dot_proto_dot_metadata__pb2.Model.SerializeToString,
            ),
            'GetStreamChannels': grpc.stream_stream_rpc_method_handler(
                    servicer.GetStreamChannels,
                    request_deserializer=featureform_dot_proto_dot_metadata__pb2.NameRequest.FromString,
                    response_serializer=featureform_dot_proto_dot_metadata__pb2.StreamChannel.SerializeToString,
            ),
            'GetDownstreamDependencies': grpc.stream_stream_rpc_method_handler(
                    servicer.GetDownstreamDependencies,
                    request_deserializer=featureform_dot_proto_dot_metadata__pb2.GetDownstreamDependenciesRequest.FromString,
                    response_serializer=featureform_dot_proto_dot_metadata__pb2.GetDownstreamDependenciesResponse.SerializeToString,
            ),
            'GetAllDownstreamDependencies': grpc.stream_stream_rpc_method_handler(
                    servicer.GetAllDownstreamDependencies,
                    request_deserializer=featureform_dot_proto_dot_metadata__pb2.GetAllDownstreamDependenciesRequest.FromString,
                    response_serializer=featureform_dot_proto_dot_metadata__pb2.ResourceID.SerializeToString,
            ),
            'GetFeatureViews': grpc.stream_stream_rpc_method_handler(
                    servicer.GetFeatureViews,
                    request_deserializer=featureform_dot_proto_dot_metadata__pb2.NameRequest.FromString,
                    response_serializer=featureform_dot_proto_dot_metadata__pb2.FeatureView.SerializeToString,
            ),
            'GetUpstreamDependencies': grpc.stream_stream_rpc_method_handler(
                    servicer.GetUpstreamDependencies,
                    request_deserializer=featureform_dot_proto_dot_metadata__pb2.GetUpstreamDependenciesRequest.FromString,
                    response_serializer=featureform_dot_proto_dot_metadata__pb2.GetUpstreamDependenciesResponse.SerializeToString,
            ),
            'MarkForDeletion': grpc.unary_unary_rpc_method_handler(
                    servicer.MarkForDeletion,
                    request_deserializer=featureform_dot_proto_dot_metadata__pb2.MarkForDeletionRequest.FromString,
                    response_serializer=featureform_dot_proto_dot_metadata__pb2.MarkForDeletionResponse.SerializeToString,
            ),
            'PruneResource': grpc.unary_unary_rpc_method_handler(
                    servicer.PruneResource,
                    request_deserializer=featureform_dot_proto_dot_metadata__pb2.PruneResourceRequest.FromString,
                    response_serializer=featureform_dot_proto_dot_metadata__pb2.PruneResourceResponse.SerializeToString,
            ),
            'GetTaskStatuses': grpc.unary_unary_rpc_method_handler(
                    servicer.GetTaskStatuses,
                    request_deserializer=featureform_dot_proto_dot_metadata__pb2.GetTaskStatusesRequest.FromString,
                    response_serializer=featureform_dot_proto_dot_metadata__pb2.GetTaskStatusesResponse.SerializeToString,
            ),
            'GetEquivalent': grpc.unary_unary_rpc_method_handler(
                    servicer.GetEquivalent,
                    request_deserializer=featureform_dot_proto_dot_metadata__pb2.GetEquivalentRequest.FromString,
                    response_serializer=featureform_dot_proto_dot_metadata__pb2.ResourceVariant.SerializeToString,
            ),
            'Run': grpc.unary_unary_rpc_method_handler(
                    servicer.Run,
                    request_deserializer=featureform_dot_proto_dot_metadata__pb2.RunRequest.FromString,
                    response_serializer=featureform_dot_proto_dot_metadata__pb2.Empty.SerializeToString,
            ),
            'ListFeatures': grpc.unary_stream_rpc_method_handler(
                    servicer.ListFeatures,
                    request_deserializer=featureform_dot_proto_dot_metadata__pb2.ListRequest.FromString,
                    response_serializer=featureform_dot_proto_dot_metadata__pb2.Feature.SerializeToString,
            ),
            'ListLabels': grpc.unary_stream_rpc_method_handler(
                    servicer.ListLabels,
                    request_deserializer=featureform_dot_proto_dot_metadata__pb2.ListRequest.FromString,
                    response_serializer=featureform_dot_proto_dot_metadata__pb2.Label.SerializeToString,
            ),
            'ListTrainingSets': grpc.unary_stream_rpc_method_handler(
                    servicer.ListTrainingSets,
                    request_deserializer=featureform_dot_proto_dot_metadata__pb2.ListRequest.FromString,
                    response_serializer=featureform_dot_proto_dot_metadata__pb2.TrainingSet.SerializeToString,
            ),
            'ListSources': grpc.unary_stream_rpc_method_handler(
                    servicer.ListSources,
                    request_deserializer=featureform_dot_proto_dot_metadata__pb2.ListRequest.FromString,
                    response_serializer=featureform_dot_proto_dot_metadata__pb2.Source.SerializeToString,
            ),
            'ListUsers': grpc.unary_stream_rpc_method_handler(
                    servicer.ListUsers,
                    request_deserializer=featureform_dot_proto_dot_metadata__pb2.ListRequest.FromString,
                    response_serializer=featureform_dot_proto_dot_metadata__pb2.User.SerializeToString,
            ),
            'ListProviders': grpc.unary_stream_rpc_method_handler(
                    servicer.ListProviders,
                    request_deserializer=featureform_dot_proto_dot_metadata__pb2.ListRequest.FromString,
                    response_serializer=featureform_dot_proto_dot_metadata__pb2.Provider.SerializeToString,
            ),
            'ListEntities': grpc.unary_stream_rpc_method_handler(
                    servicer.ListEntities,
                    request_deserializer=featureform_dot_proto_dot_metadata__pb2.ListRequest.FromString,
                    response_serializer=featureform_dot_proto_dot_metadata__pb2.Entity.SerializeToString,
            ),
            'ListModels': grpc.unary_stream_rpc_method_handler(
                    servicer.ListModels,
                    request_deserializer=featureform_dot_proto_dot_metadata__pb2.ListRequest.FromString,
                    response_serializer=featureform_dot_proto_dot_metadata__pb2.Model.SerializeToString,
            ),
            'WriteFeatures': grpc.stream_unary_rpc_method_handler(
                    servicer.WriteFeatures,
                    request_deserializer=featureform_dot_proto_dot_metadata__pb2.StreamingFeatureVariant.FromString,
                    response_serializer=featureform_dot_proto_dot_metadata__pb2.Empty.SerializeToString,
            ),
            'WriteLabels': grpc.stream_unary_rpc_method_handler(
                    servicer.WriteLabels,
                    request_deserializer=featureform_dot_proto_dot_metadata__pb2.StreamingLabelVariant.FromString,
                    response_serializer=featureform_dot_proto_dot_metadata__pb2.Empty.SerializeToString,
            ),
            'ListFeatureViews': grpc.unary_stream_rpc_method_handler(
                    servicer.ListFeatureViews,
                    request_deserializer=featureform_dot_proto_dot_metadata__pb2.ListRequest.FromString,
                    response_serializer=featureform_dot_proto_dot_metadata__pb2.FeatureView.SerializeToString,
            ),
            'ListStreamChannels': grpc.unary_stream_rpc_method_handler(
                    servicer.ListStreamChannels,
                    request_deserializer=featureform_dot_proto_dot_metadata__pb2.ListRequest.FromString,
                    response_serializer=featureform_dot_proto_dot_metadata__pb2.StreamChannel.SerializeToString,
            ),
    }
    generic_handler = grpc.method_handlers_generic_handler(
            'featureform.serving.metadata.proto.Api', rpc_method_handlers)
    server.add_generic_rpc_handlers((generic_handler,))


 # This class is part of an EXPERIMENTAL API.
class Api(object):
    """Missing associated documentation comment in .proto file."""

    @staticmethod
    def GetAuthConfig(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/featureform.serving.metadata.proto.Api/GetAuthConfig',
            featureform_dot_proto_dot_metadata__pb2.Empty.SerializeToString,
            featureform_dot_proto_dot_metadata__pb2.AuthConfig.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def CreateUser(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/featureform.serving.metadata.proto.Api/CreateUser',
            featureform_dot_proto_dot_metadata__pb2.UserRequest.SerializeToString,
            featureform_dot_proto_dot_metadata__pb2.Empty.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def CreateProvider(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/featureform.serving.metadata.proto.Api/CreateProvider',
            featureform_dot_proto_dot_metadata__pb2.ProviderRequest.SerializeToString,
            featureform_dot_proto_dot_metadata__pb2.Empty.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def CreateSourceVariant(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/featureform.serving.metadata.proto.Api/CreateSourceVariant',
            featureform_dot_proto_dot_metadata__pb2.SourceVariantRequest.SerializeToString,
            featureform_dot_proto_dot_metadata__pb2.Empty.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def CreateEntity(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/featureform.serving.metadata.proto.Api/CreateEntity',
            featureform_dot_proto_dot_metadata__pb2.EntityRequest.SerializeToString,
            featureform_dot_proto_dot_metadata__pb2.Empty.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def CreateFeatureVariant(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/featureform.serving.metadata.proto.Api/CreateFeatureVariant',
            featureform_dot_proto_dot_metadata__pb2.FeatureVariantRequest.SerializeToString,
            featureform_dot_proto_dot_metadata__pb2.Empty.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def CreateLabelVariant(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/featureform.serving.metadata.proto.Api/CreateLabelVariant',
            featureform_dot_proto_dot_metadata__pb2.LabelVariantRequest.SerializeToString,
            featureform_dot_proto_dot_metadata__pb2.Empty.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def CreateTrainingSetVariant(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/featureform.serving.metadata.proto.Api/CreateTrainingSetVariant',
            featureform_dot_proto_dot_metadata__pb2.TrainingSetVariantRequest.SerializeToString,
            featureform_dot_proto_dot_metadata__pb2.Empty.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def CreateModel(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/featureform.serving.metadata.proto.Api/CreateModel',
            featureform_dot_proto_dot_metadata__pb2.ModelRequest.SerializeToString,
            featureform_dot_proto_dot_metadata__pb2.Empty.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def CreateStreamChannel(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/featureform.serving.metadata.proto.Api/CreateStreamChannel',
            featureform_dot_proto_dot_metadata__pb2.StreamChannelRequest.SerializeToString,
            featureform_dot_proto_dot_metadata__pb2.Empty.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def RequestScheduleChange(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/featureform.serving.metadata.proto.Api/RequestScheduleChange',
            featureform_dot_proto_dot_metadata__pb2.ScheduleChangeRequest.SerializeToString,
            featureform_dot_proto_dot_metadata__pb2.Empty.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def MaterializeFeatureView(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/featureform.serving.metadata.proto.Api/MaterializeFeatureView',
            featureform_dot_proto_dot_metadata__pb2.FeatureViewRequest.SerializeToString,
            featureform_dot_proto_dot_metadata__pb2.Empty.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetUsers(request_iterator,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.stream_stream(request_iterator, target, '/featureform.serving.metadata.proto.Api/GetUsers',
            featureform_dot_proto_dot_metadata__pb2.NameRequest.SerializeToString,
            featureform_dot_proto_dot_metadata__pb2.User.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetFeatures(request_iterator,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.stream_stream(request_iterator, target, '/featureform.serving.metadata.proto.Api/GetFeatures',
            featureform_dot_proto_dot_metadata__pb2.NameRequest.SerializeToString,
            featureform_dot_proto_dot_metadata__pb2.Feature.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetFeatureVariants(request_iterator,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.stream_stream(request_iterator, target, '/featureform.serving.metadata.proto.Api/GetFeatureVariants',
            featureform_dot_proto_dot_metadata__pb2.NameVariantRequest.SerializeToString,
            featureform_dot_proto_dot_metadata__pb2.FeatureVariant.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetLabels(request_iterator,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.stream_stream(request_iterator, target, '/featureform.serving.metadata.proto.Api/GetLabels',
            featureform_dot_proto_dot_metadata__pb2.NameRequest.SerializeToString,
            featureform_dot_proto_dot_metadata__pb2.Label.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetLabelVariants(request_iterator,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.stream_stream(request_iterator, target, '/featureform.serving.metadata.proto.Api/GetLabelVariants',
            featureform_dot_proto_dot_metadata__pb2.NameVariantRequest.SerializeToString,
            featureform_dot_proto_dot_metadata__pb2.LabelVariant.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetTrainingSets(request_iterator,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.stream_stream(request_iterator, target, '/featureform.serving.metadata.proto.Api/GetTrainingSets',
            featureform_dot_proto_dot_metadata__pb2.NameRequest.SerializeToString,
            featureform_dot_proto_dot_metadata__pb2.TrainingSet.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetTrainingSetVariants(request_iterator,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.stream_stream(request_iterator, target, '/featureform.serving.metadata.proto.Api/GetTrainingSetVariants',
            featureform_dot_proto_dot_metadata__pb2.NameVariantRequest.SerializeToString,
            featureform_dot_proto_dot_metadata__pb2.TrainingSetVariant.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetSources(request_iterator,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.stream_stream(request_iterator, target, '/featureform.serving.metadata.proto.Api/GetSources',
            featureform_dot_proto_dot_metadata__pb2.NameRequest.SerializeToString,
            featureform_dot_proto_dot_metadata__pb2.Source.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetSourceVariants(request_iterator,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.stream_stream(request_iterator, target, '/featureform.serving.metadata.proto.Api/GetSourceVariants',
            featureform_dot_proto_dot_metadata__pb2.NameVariantRequest.SerializeToString,
            featureform_dot_proto_dot_metadata__pb2.SourceVariant.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetProviders(request_iterator,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.stream_stream(request_iterator, target, '/featureform.serving.metadata.proto.Api/GetProviders',
            featureform_dot_proto_dot_metadata__pb2.NameRequest.SerializeToString,
            featureform_dot_proto_dot_metadata__pb2.Provider.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetEntities(request_iterator,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.stream_stream(request_iterator, target, '/featureform.serving.metadata.proto.Api/GetEntities',
            featureform_dot_proto_dot_metadata__pb2.NameRequest.SerializeToString,
            featureform_dot_proto_dot_metadata__pb2.Entity.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetModels(request_iterator,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.stream_stream(request_iterator, target, '/featureform.serving.metadata.proto.Api/GetModels',
            featureform_dot_proto_dot_metadata__pb2.NameRequest.SerializeToString,
            featureform_dot_proto_dot_metadata__pb2.Model.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetStreamChannels(request_iterator,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.stream_stream(request_iterator, target, '/featureform.serving.metadata.proto.Api/GetStreamChannels',
            featureform_dot_proto_dot_metadata__pb2.NameRequest.SerializeToString,
            featureform_dot_proto_dot_metadata__pb2.StreamChannel.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetDownstreamDependencies(request_iterator,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.stream_stream(request_iterator, target, '/featureform.serving.metadata.proto.Api/GetDownstreamDependencies',
            featureform_dot_proto_dot_metadata__pb2.GetDownstreamDependenciesRequest.SerializeToString,
            featureform_dot_proto_dot_metadata__pb2.GetDownstreamDependenciesResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetAllDownstreamDependencies(request_iterator,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.stream_stream(request_iterator, target, '/featureform.serving.metadata.proto.Api/GetAllDownstreamDependencies',
            featureform_dot_proto_dot_metadata__pb2.GetAllDownstreamDependenciesRequest.SerializeToString,
            featureform_dot_proto_dot_metadata__pb2.ResourceID.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetFeatureViews(request_iterator,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.stream_stream(request_iterator, target, '/featureform.serving.metadata.proto.Api/GetFeatureViews',
            featureform_dot_proto_dot_metadata__pb2.NameRequest.SerializeToString,
            featureform_dot_proto_dot_metadata__pb2.FeatureView.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetUpstreamDependencies(request_iterator,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.stream_stream(request_iterator, target, '/featureform.serving.metadata.proto.Api/GetUpstreamDependencies',
            featureform_dot_proto_dot_metadata__pb2.GetUpstreamDependenciesRequest.SerializeToString,
            featureform_dot_proto_dot_metadata__pb2.GetUpstreamDependenciesResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def MarkForDeletion(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/featureform.serving.metadata.proto.Api/MarkForDeletion',
            featureform_dot_proto_dot_metadata__pb2.MarkForDeletionRequest.SerializeToString,
            featureform_dot_proto_dot_metadata__pb2.MarkForDeletionResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def PruneResource(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/featureform.serving.metadata.proto.Api/PruneResource',
            featureform_dot_proto_dot_metadata__pb2.PruneResourceRequest.SerializeToString,
            featureform_dot_proto_dot_metadata__pb2.PruneResourceResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetTaskStatuses(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/featureform.serving.metadata.proto.Api/GetTaskStatuses',
            featureform_dot_proto_dot_metadata__pb2.GetTaskStatusesRequest.SerializeToString,
            featureform_dot_proto_dot_metadata__pb2.GetTaskStatusesResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetEquivalent(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/featureform.serving.metadata.proto.Api/GetEquivalent',
            featureform_dot_proto_dot_metadata__pb2.GetEquivalentRequest.SerializeToString,
            featureform_dot_proto_dot_metadata__pb2.ResourceVariant.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def Run(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/featureform.serving.metadata.proto.Api/Run',
            featureform_dot_proto_dot_metadata__pb2.RunRequest.SerializeToString,
            featureform_dot_proto_dot_metadata__pb2.Empty.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def ListFeatures(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_stream(request, target, '/featureform.serving.metadata.proto.Api/ListFeatures',
            featureform_dot_proto_dot_metadata__pb2.ListRequest.SerializeToString,
            featureform_dot_proto_dot_metadata__pb2.Feature.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def ListLabels(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_stream(request, target, '/featureform.serving.metadata.proto.Api/ListLabels',
            featureform_dot_proto_dot_metadata__pb2.ListRequest.SerializeToString,
            featureform_dot_proto_dot_metadata__pb2.Label.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def ListTrainingSets(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_stream(request, target, '/featureform.serving.metadata.proto.Api/ListTrainingSets',
            featureform_dot_proto_dot_metadata__pb2.ListRequest.SerializeToString,
            featureform_dot_proto_dot_metadata__pb2.TrainingSet.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def ListSources(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_stream(request, target, '/featureform.serving.metadata.proto.Api/ListSources',
            featureform_dot_proto_dot_metadata__pb2.ListRequest.SerializeToString,
            featureform_dot_proto_dot_metadata__pb2.Source.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def ListUsers(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_stream(request, target, '/featureform.serving.metadata.proto.Api/ListUsers',
            featureform_dot_proto_dot_metadata__pb2.ListRequest.SerializeToString,
            featureform_dot_proto_dot_metadata__pb2.User.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def ListProviders(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_stream(request, target, '/featureform.serving.metadata.proto.Api/ListProviders',
            featureform_dot_proto_dot_metadata__pb2.ListRequest.SerializeToString,
            featureform_dot_proto_dot_metadata__pb2.Provider.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def ListEntities(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_stream(request, target, '/featureform.serving.metadata.proto.Api/ListEntities',
            featureform_dot_proto_dot_metadata__pb2.ListRequest.SerializeToString,
            featureform_dot_proto_dot_metadata__pb2.Entity.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def ListModels(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_stream(request, target, '/featureform.serving.metadata.proto.Api/ListModels',
            featureform_dot_proto_dot_metadata__pb2.ListRequest.SerializeToString,
            featureform_dot_proto_dot_metadata__pb2.Model.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def WriteFeatures(request_iterator,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.stream_unary(request_iterator, target, '/featureform.serving.metadata.proto.Api/WriteFeatures',
            featureform_dot_proto_dot_metadata__pb2.StreamingFeatureVariant.SerializeToString,
            featureform_dot_proto_dot_metadata__pb2.Empty.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def WriteLabels(request_iterator,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.stream_unary(request_iterator, target, '/featureform.serving.metadata.proto.Api/WriteLabels',
            featureform_dot_proto_dot_metadata__pb2.StreamingLabelVariant.SerializeToString,
            featureform_dot_proto_dot_metadata__pb2.Empty.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def ListFeatureViews(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_stream(request, target, '/featureform.serving.metadata.proto.Api/ListFeatureViews',
            featureform_dot_proto_dot_metadata__pb2.ListRequest.SerializeToString,
            featureform_dot_proto_dot_metadata__pb2.FeatureView.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def ListStreamChannels(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_stream(request, target, '/featureform.serving.metadata.proto.Api/ListStreamChannels',
            featureform_dot_proto_dot_metadata__pb2.ListRequest.SerializeToString,
            featureform_dot_proto_dot_metadata__pb2.StreamChannel.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
