//
// * Copyright 2020 The Feast Authors
// *
// * Licensed under the Apache License, Version 2.0 (the "License");
// * you may not use this file except in compliance with the License.
// * You may obtain a copy of the License at
// *
// *     https://www.apache.org/licenses/LICENSE-2.0
// *
// * Unless required by applicable law or agreed to in writing, software
// * distributed under the License is distributed on an "AS IS" BASIS,
// * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// * See the License for the specific language governing permissions and
// * limitations under the License.
//

syntax = "proto3";

package feast.core;
option java_package = "feast.proto.core";
option java_outer_classname = "EntityProto";
option go_package = "github.com/feast-dev/feast/sdk/go/protos/feast/core";

import "feast/types/Value.proto";
import "google/protobuf/timestamp.proto";

message Entity {
    // User-specified specifications of this entity.
    EntitySpecV2 spec = 1;
    // System-populated metadata for this entity.
    EntityMeta meta = 2;
}

message EntitySpecV2 {
    // Name of the entity.
    string name = 1;

    // Type of the entity.
    feast.types.ValueType.Enum value_type = 2;

    // Description of the entity.
    string description = 3;

    // User defined metadata
    map<string,string> labels = 8;
}

message EntityMeta {
    google.protobuf.Timestamp created_timestamp = 1;
    google.protobuf.Timestamp last_updated_timestamp = 2;
}
