diff --git a/entity-service-api/src/main/proto/org/hypertrace/entity/data/service/v1/entity.proto b/entity-service-api/src/main/proto/org/hypertrace/entity/data/service/v1/entity.proto index caa937c0..d2e1b579 100644 --- a/entity-service-api/src/main/proto/org/hypertrace/entity/data/service/v1/entity.proto +++ b/entity-service-api/src/main/proto/org/hypertrace/entity/data/service/v1/entity.proto @@ -47,6 +47,8 @@ message Entity { //attributes that describe the entity (e.g. service labels, service version, lang etc) map attributes = 7; + // entity labels + repeated string entity_label_ids = 8; } message Entities { diff --git a/entity-service-api/src/main/proto/org/hypertrace/entity/data/service/v1/entity_label.proto b/entity-service-api/src/main/proto/org/hypertrace/entity/data/service/v1/entity_label.proto new file mode 100644 index 00000000..1dd888e4 --- /dev/null +++ b/entity-service-api/src/main/proto/org/hypertrace/entity/data/service/v1/entity_label.proto @@ -0,0 +1,19 @@ +syntax = "proto3"; + +option java_multiple_files = true; + +package org.hypertrace.entity.data.service.v1; + +message EntityLabel { + string id = 1; + string name = 2; + // TODO: This is up for debate. + string color = 3; +} + +message EntityLabelByIdRequest { + string id = 1; +} + +//message Empty { +//} \ No newline at end of file diff --git a/entity-service-api/src/main/proto/org/hypertrace/entity/query/service/v1/entity_query_service.proto b/entity-service-api/src/main/proto/org/hypertrace/entity/query/service/v1/entity_query_service.proto index 2702c6d0..146420d7 100644 --- a/entity-service-api/src/main/proto/org/hypertrace/entity/query/service/v1/entity_query_service.proto +++ b/entity-service-api/src/main/proto/org/hypertrace/entity/query/service/v1/entity_query_service.proto @@ -8,10 +8,40 @@ import "org/hypertrace/entity/query/service/v1/request.proto"; import "org/hypertrace/entity/query/service/v1/response.proto"; import "org/hypertrace/entity/query/service/v1/value.proto"; import "org/hypertrace/entity/query/service/v1/entity_query_request.proto"; +import "org/hypertrace/entity/data/service/v1/entity.proto"; +import "org/hypertrace/entity/data/service/v1/entity_label.proto"; +// TODO: Needed for Empty message +import "org/hypertrace/entity/data/service/v1/entity_data_request.proto"; + +message EntityIdAndLabelId { + string entity_id = 1; + string entity_label_id = 2; +} + +message EntitiesByLabel { + string entity_label_id = 1; + repeated org.hypertrace.entity.data.service.v1.Entity entities = 2; +} service EntityQueryService { rpc execute (EntityQueryRequest) returns (stream ResultSetChunk) { } rpc update (EntityUpdateRequest) returns (stream ResultSetChunk) { } + + rpc createEntityLabel (org.hypertrace.entity.data.service.v1.EntityLabel) + returns (org.hypertrace.entity.data.service.v1.EntityLabel) {} + rpc getEntityLabel (org.hypertrace.entity.data.service.v1.EntityLabelByIdRequest) + returns (org.hypertrace.entity.data.service.v1.EntityLabel) {} + rpc updateEntityLabel (org.hypertrace.entity.data.service.v1.EntityLabel) + returns (stream org.hypertrace.entity.data.service.v1.EntityLabel) {} + rpc getAllEntityLabels (org.hypertrace.entity.data.service.v1.Empty) + returns (stream org.hypertrace.entity.data.service.v1.EntityLabel) {} + + rpc addEntityLabelToEntity (EntityIdAndLabelId) + returns (org.hypertrace.entity.data.service.v1.Entity) {} + rpc removeEntityLabelFromEntity (EntityIdAndLabelId) + returns (org.hypertrace.entity.data.service.v1.Entity) {} + rpc getEntitiesByLabel(org.hypertrace.entity.data.service.v1.Empty) + returns (stream EntitiesByLabel) {} }