diff --git a/raystack/compass/v1beta1/service.proto b/raystack/compass/v1beta1/service.proto index 8fd8ed52..cd05f991 100644 --- a/raystack/compass/v1beta1/service.proto +++ b/raystack/compass/v1beta1/service.proto @@ -4,7 +4,6 @@ package raystack.compass.v1beta1; import "google/protobuf/struct.proto"; import "google/protobuf/timestamp.proto"; -import "google/protobuf/wrappers.proto"; import "buf/validate/validate.proto"; option go_package = "github.com/raystack/proton/compass/v1beta1;compassv1beta1"; @@ -12,653 +11,286 @@ option java_multiple_files = true; option java_outer_classname = "CompassServiceProto"; option java_package = "io.raystack.proton.compass"; -// WARNING: This is still in active development and can have breaking changes service CompassService { - // Domain: Discussion - rpc GetAllDiscussions(GetAllDiscussionsRequest) returns (GetAllDiscussionsResponse) { - } - - rpc CreateDiscussion(CreateDiscussionRequest) returns (CreateDiscussionResponse) { - } - - rpc GetDiscussion(GetDiscussionRequest) returns (GetDiscussionResponse) { - } - - rpc PatchDiscussion(PatchDiscussionRequest) returns (PatchDiscussionResponse) { - } - - rpc CreateComment(CreateCommentRequest) returns (CreateCommentResponse) { - } - - rpc GetAllComments(GetAllCommentsRequest) returns (GetAllCommentsResponse) { - } - - rpc GetComment(GetCommentRequest) returns (GetCommentResponse) { - } - - rpc UpdateComment(UpdateCommentRequest) returns (UpdateCommentResponse) { - } - - rpc DeleteComment(DeleteCommentRequest) returns (DeleteCommentResponse) { - } - - // Domain: Asset - rpc SearchAssets(SearchAssetsRequest) returns (SearchAssetsResponse) { - } - - rpc SuggestAssets(SuggestAssetsRequest) returns (SuggestAssetsResponse) { - } - - rpc GroupAssets(GroupAssetsRequest) returns (GroupAssetsResponse) { - } - - rpc GetGraph(GetGraphRequest) returns (GetGraphResponse) { - } - - rpc GetAllTypes(GetAllTypesRequest) returns (GetAllTypesResponse) { - } - - rpc GetAllAssets(GetAllAssetsRequest) returns (GetAllAssetsResponse) { - } - - rpc GetAssetByID(GetAssetByIDRequest) returns (GetAssetByIDResponse) { - } - - rpc UpsertAsset(UpsertAssetRequest) returns (UpsertAssetResponse) { - } - - rpc UpsertPatchAsset(UpsertPatchAssetRequest) returns (UpsertPatchAssetResponse) { - } - - rpc DeleteAsset(DeleteAssetRequest) returns (DeleteAssetResponse) { - } - - rpc GetAssetStargazers(GetAssetStargazersRequest) returns (GetAssetStargazersResponse) { - } - - rpc GetAssetVersionHistory(GetAssetVersionHistoryRequest) returns (GetAssetVersionHistoryResponse) { - } - - rpc GetAssetByVersion(GetAssetByVersionRequest) returns (GetAssetByVersionResponse) { - } - - rpc CreateAssetProbe(CreateAssetProbeRequest) returns (CreateAssetProbeResponse) { - } - - // Domain: User * Star - rpc GetUserStarredAssets(GetUserStarredAssetsRequest) returns (GetUserStarredAssetsResponse) { - } - - rpc GetMyStarredAssets(GetMyStarredAssetsRequest) returns (GetMyStarredAssetsResponse) { - } - - rpc GetMyStarredAsset(GetMyStarredAssetRequest) returns (GetMyStarredAssetResponse) { - } - - rpc StarAsset(StarAssetRequest) returns (StarAssetResponse) { - } - - rpc UnstarAsset(UnstarAssetRequest) returns (UnstarAssetResponse) { - } - - rpc GetMyDiscussions(GetMyDiscussionsRequest) returns (GetMyDiscussionsResponse) { - } - - // Domain: Tag Templates - rpc CreateTagAsset(CreateTagAssetRequest) returns (CreateTagAssetResponse) { - } - - rpc GetTagByAssetAndTemplate(GetTagByAssetAndTemplateRequest) returns (GetTagByAssetAndTemplateResponse) { - } - - rpc UpdateTagAsset(UpdateTagAssetRequest) returns (UpdateTagAssetResponse) { - } - - rpc DeleteTagAsset(DeleteTagAssetRequest) returns (DeleteTagAssetResponse) { - } - - rpc GetAllTagsByAsset(GetAllTagsByAssetRequest) returns (GetAllTagsByAssetResponse) { - } - - rpc GetAllTagTemplates(GetAllTagTemplatesRequest) returns (GetAllTagTemplatesResponse) { - } - - rpc CreateTagTemplate(CreateTagTemplateRequest) returns (CreateTagTemplateResponse) { - } - - rpc GetTagTemplate(GetTagTemplateRequest) returns (GetTagTemplateResponse) { - } - - rpc UpdateTagTemplate(UpdateTagTemplateRequest) returns (UpdateTagTemplateResponse) { - } - - rpc DeleteTagTemplate(DeleteTagTemplateRequest) returns (DeleteTagTemplateResponse) { - } + // Domain: Entity + rpc GetAllEntities(GetAllEntitiesRequest) returns (GetAllEntitiesResponse) {} + rpc GetEntityByID(GetEntityByIDRequest) returns (GetEntityByIDResponse) {} + rpc UpsertEntity(UpsertEntityRequest) returns (UpsertEntityResponse) {} + rpc DeleteEntity(DeleteEntityRequest) returns (DeleteEntityResponse) {} + rpc SearchEntities(SearchEntitiesRequest) returns (SearchEntitiesResponse) {} + rpc SuggestEntities(SuggestEntitiesRequest) returns (SuggestEntitiesResponse) {} + rpc GetEntityTypes(GetEntityTypesRequest) returns (GetEntityTypesResponse) {} + + // Domain: Entity Context & Impact + rpc GetEntityContext(GetEntityContextRequest) returns (GetEntityContextResponse) {} + rpc GetEntityImpact(GetEntityImpactRequest) returns (GetEntityImpactResponse) {} + + // Domain: Edge + rpc UpsertEdge(UpsertEdgeRequest) returns (UpsertEdgeResponse) {} + rpc GetEdges(GetEdgesRequest) returns (GetEdgesResponse) {} + rpc DeleteEdge(DeleteEdgeRequest) returns (DeleteEdgeResponse) {} + + // Domain: Star + rpc StarEntity(StarEntityRequest) returns (StarEntityResponse) {} + rpc UnstarEntity(UnstarEntityRequest) returns (UnstarEntityResponse) {} + rpc GetUserStarredEntities(GetUserStarredEntitiesRequest) returns (GetUserStarredEntitiesResponse) {} + rpc GetMyStarredEntities(GetMyStarredEntitiesRequest) returns (GetMyStarredEntitiesResponse) {} + rpc GetMyStarredEntity(GetMyStarredEntityRequest) returns (GetMyStarredEntityResponse) {} + rpc GetEntityStargazers(GetEntityStargazersRequest) returns (GetEntityStargazersResponse) {} // Domain: Namespace - rpc CreateNamespace(CreateNamespaceRequest) returns (CreateNamespaceResponse) { - } - - rpc GetNamespace(GetNamespaceRequest) returns (GetNamespaceResponse) { - } - - rpc UpdateNamespace(UpdateNamespaceRequest) returns (UpdateNamespaceResponse) { - } - - rpc ListNamespaces(ListNamespacesRequest) returns (ListNamespacesResponse) { - } + rpc CreateNamespace(CreateNamespaceRequest) returns (CreateNamespaceResponse) {} + rpc GetNamespace(GetNamespaceRequest) returns (GetNamespaceResponse) {} + rpc UpdateNamespace(UpdateNamespaceRequest) returns (UpdateNamespaceResponse) {} + rpc ListNamespaces(ListNamespacesRequest) returns (ListNamespacesResponse) {} } -message GetAllDiscussionsRequest { - string type = 1; - string state = 2; - string owner = 3; - string assignee = 4; - string asset = 5; - string labels = 6; - string sort = 7; - string direction = 8; - uint32 size = 9 [(buf.validate.field).uint32 = { - gte: 0, - }]; - uint32 offset = 10 [(buf.validate.field).uint32 = { - gte: 0, - }]; -} - -message GetAllDiscussionsResponse { - repeated Discussion data = 1; -} - -message CreateDiscussionRequest { - string title = 2 [(buf.validate.field).string.min_len = 1]; - string body = 3 [(buf.validate.field).string.min_len = 1]; - string type = 4; - string state = 5; - repeated string labels = 6 [(buf.validate.field).repeated = { - unique: true, - }]; - repeated string assets = 7 [(buf.validate.field).repeated = { - unique: true, - }]; - repeated string assignees = 8 [(buf.validate.field).repeated = { - unique: true, - }]; -} - -message CreateDiscussionResponse { - string id = 1; -} +// ============================================================ +// Core messages +// ============================================================ -message GetDiscussionRequest { +message User { string id = 1; + string uuid = 2; + string email = 3; + string provider = 4; + google.protobuf.Timestamp created_at = 5; + google.protobuf.Timestamp updated_at = 6; } -message GetDiscussionResponse { - Discussion data = 1; +message Entity { + string id = 1; + string urn = 2; + string type = 3; + string name = 4; + string description = 5; + google.protobuf.Struct properties = 6; + string source = 7; + google.protobuf.Timestamp valid_from = 8; + google.protobuf.Timestamp valid_to = 9; + google.protobuf.Timestamp created_at = 10; + google.protobuf.Timestamp updated_at = 11; } -message PatchDiscussionRequest { +message Edge { string id = 1; - string title = 2; - string body = 3; + string source_urn = 2; + string target_urn = 3; string type = 4; - string state = 5; - repeated string labels = 6 [(buf.validate.field).repeated = { - unique: true, - }]; - repeated string assets = 7 [(buf.validate.field).repeated = { - unique: true, - }]; - repeated string assignees = 8 [(buf.validate.field).repeated = { - unique: true, - }]; + google.protobuf.Struct properties = 5; + string source = 6; + google.protobuf.Timestamp valid_from = 7; + google.protobuf.Timestamp valid_to = 8; + google.protobuf.Timestamp created_at = 9; } -message CreateCommentRequest { - string discussion_id = 1; - string body = 2 [(buf.validate.field).string.min_len = 1]; +message Type { + string name = 1; + uint32 count = 2; } -message PatchDiscussionResponse {} - -message CreateCommentResponse { +message Namespace { string id = 1; + string name = 2 [(buf.validate.field).string.min_len = 3]; + string state = 3; + google.protobuf.Struct metadata = 4; } -message GetAllCommentsRequest { - string discussion_id = 1; - string sort = 2; - string direction = 3; - uint32 size = 4 [(buf.validate.field).uint32 = { - gte: 0, - }]; - uint32 offset = 5 [(buf.validate.field).uint32 = { - gte: 0, - }]; -} - -message GetAllCommentsResponse { - repeated Comment data = 1; -} - -message GetCommentRequest { - string discussion_id = 1; - string id = 2; -} - -message GetCommentResponse { - Comment data = 1; -} - -message UpdateCommentRequest { - string discussion_id = 1; - string id = 2; - string body = 3 [(buf.validate.field).string.min_len = 1]; -} - -message UpdateCommentResponse {} - -message DeleteCommentRequest { - string discussion_id = 1; - string id = 2; -} - -message DeleteCommentResponse {} - -message SearchAssetsRequest { - string text = 1; - string rankby = 2; - uint32 size = 3 [(buf.validate.field).uint32 = { gte: 0 }]; - map filter = 4; - map query = 5; - - repeated string include_fields = 6 [(buf.validate.field).repeated = { - unique: true, - }]; - - uint32 offset = 7 [(buf.validate.field).uint32 = { gte: 0 }]; - - SearchFlags flags = 8; -} - -message SearchFlags { - bool is_column_search = 1; - bool disable_fuzzy = 2; - bool enable_highlight = 3; -} - -message SearchAssetsResponse { - repeated Asset data = 1; -} - -message SuggestAssetsRequest { - string text = 1; -} - -message SuggestAssetsResponse { - repeated string data = 1; -} +// ============================================================ +// Entity CRUD +// ============================================================ -message GroupAssetsRequest { - repeated string groupby = 1 [(buf.validate.field).repeated = {min_items: 1}]; - map filter = 2; - repeated string include_fields = 3; +message GetAllEntitiesRequest { + string types = 1; + string source = 2; + string q = 3; uint32 size = 4 [(buf.validate.field).uint32 = { gte: 0 }]; + uint32 offset = 5 [(buf.validate.field).uint32 = { gte: 0 }]; } -message GroupAssetsResponse { - repeated AssetGroup asset_groups = 1; -} - -message AssetGroup { - repeated GroupField group_fields = 1; - repeated Asset assets = 2; -} - -message GroupField { - string group_key = 1; - string group_value = 2; -} - -message GetGraphRequest { - string urn = 1; - uint32 level = 2; - string direction = 3 [(buf.validate.field).string = { - in: [ - "upstream", - "downstream", - "" - ] - }]; - optional bool with_attributes = 4; - bool include_deleted = 5; -} - -message GetGraphResponse { - message ProbesInfo { - Probe latest = 1; - } - - message NodeAttributes { - ProbesInfo probes = 1; - } - - // Edges in the graph. - repeated LineageEdge data = 1; - // Key is the asset URN. Node attributes, if present, will be returned for - // source and target nodes in the LineageEdge. - map node_attrs = 2; -} - -message GetAllTypesRequest { - string q = 1; - string q_fields = 2; - string types = 3; - string services = 4; - map data = 5; -} - -message GetAllTypesResponse { - repeated Type data = 1; -} - -message GetAllAssetsRequest { - string q = 1; - string q_fields = 2; - string types = 3; - string services = 4; - string sort = 5; - string direction = 6; - map data = 7; - uint32 size = 8 [(buf.validate.field).uint32 = { gte: 0 }]; - uint32 offset = 9 [(buf.validate.field).uint32 = { gte: 0 }]; - bool with_total = 10; - bool is_deleted = 11; -} - -message GetAllAssetsResponse { - repeated Asset data = 1; +message GetAllEntitiesResponse { + repeated Entity data = 1; uint32 total = 2; } -message GetAssetByIDRequest { +message GetEntityByIDRequest { string id = 1; } -message GetAssetByIDResponse { - Asset data = 1; -} - -message UpsertAssetRequest { - message Asset { - string urn = 1; - string type = 2; - string name = 3; - string service = 4; - string description = 5; - google.protobuf.Struct data = 6; - map labels = 7; - repeated User owners = 8; - string url = 9; - } - Asset asset = 1; - repeated LineageNode upstreams = 2; - repeated LineageNode downstreams = 3; - bool update_only = 4; +message GetEntityByIDResponse { + Entity data = 1; } -message UpsertAssetResponse { - string id = 1; +message UpsertEntityRequest { + string urn = 1 [(buf.validate.field).string.min_len = 1]; + string type = 2 [(buf.validate.field).string.min_len = 1]; + string name = 3 [(buf.validate.field).string.min_len = 1]; + string description = 4; + google.protobuf.Struct properties = 5; + string source = 6; + repeated string upstreams = 7; + repeated string downstreams = 8; } -message UpsertPatchAssetRequest { - message Asset { - string urn = 1; - string type = 2; - google.protobuf.StringValue name = 3; - string service = 4; - google.protobuf.StringValue description = 5; - google.protobuf.Struct data = 6; - map labels = 7; - repeated User owners = 8; - string url = 9; - } - Asset asset = 1; - repeated LineageNode upstreams = 2; - repeated LineageNode downstreams = 3; - - // overwrite_lineage determines whether the asset's lineage should be - // overwritten with the upstreams and downstreams specified in the request. - // Currently, it is only applicable when both upstreams and downstreams are - // empty/not specified. - bool overwrite_lineage = 4; - bool update_only = 5; -} - -message UpsertPatchAssetResponse { +message UpsertEntityResponse { string id = 1; } -message DeleteAssetRequest { - string id = 1; +message DeleteEntityRequest { + string urn = 1 [(buf.validate.field).string.min_len = 1]; } -message DeleteAssetResponse {} - -message GetAssetStargazersRequest { - string id = 1; - uint32 size = 2 [(buf.validate.field).uint32 = { - gte: 0, - }]; - uint32 offset = 3 [(buf.validate.field).uint32 = { - gte: 0, - }]; -} +message DeleteEntityResponse {} -message GetAssetStargazersResponse { - repeated User data = 1; -} +// ============================================================ +// Entity Search +// ============================================================ -message GetAssetVersionHistoryRequest { - string id = 1; - uint32 size = 2 [(buf.validate.field).uint32 = { - gte: 0, - }]; - uint32 offset = 3 [(buf.validate.field).uint32 = { - gte: 0, - }]; +message SearchEntitiesRequest { + string text = 1; + string types = 2; + string source = 3; + string mode = 4; // keyword, semantic, hybrid + uint32 size = 5 [(buf.validate.field).uint32 = { gte: 0 }]; + uint32 offset = 6 [(buf.validate.field).uint32 = { gte: 0 }]; } -message GetAssetVersionHistoryResponse { - repeated Asset data = 1; +message SearchEntitiesResponse { + repeated Entity data = 1; } -message GetAssetByVersionRequest { - string id = 1; - string version = 2; +message SuggestEntitiesRequest { + string text = 1; } -message GetAssetByVersionResponse { - Asset data = 1; +message SuggestEntitiesResponse { + repeated string data = 1; } -message CreateAssetProbeRequest { - message Probe { - string status = 1 [(buf.validate.field).string = {min_len: 1}]; - string status_reason = 2; - google.protobuf.Struct metadata = 3; - google.protobuf.Timestamp timestamp = 4; - string id = 5; - } - string asset_urn = 1 [(buf.validate.field).string = {min_len: 1}]; - Probe probe = 2; -} +message GetEntityTypesRequest {} -message CreateAssetProbeResponse { - string id = 1; +message GetEntityTypesResponse { + repeated Type data = 1; } -message GetUserStarredAssetsRequest { - string user_id = 1; - uint32 size = 2 [(buf.validate.field).uint32 = { - gte: 0, - }]; - uint32 offset = 3 [(buf.validate.field).uint32 = { - gte: 0, - }]; -} +// ============================================================ +// Context & Impact +// ============================================================ -message GetUserStarredAssetsResponse { - repeated Asset data = 1; +message GetEntityContextRequest { + string urn = 1 [(buf.validate.field).string.min_len = 1]; + uint32 depth = 2; } -message GetMyStarredAssetsRequest { - uint32 size = 1 [(buf.validate.field).uint32 = { - gte: 0, - }]; - uint32 offset = 2 [(buf.validate.field).uint32 = { - gte: 0, - }]; +message GetEntityContextResponse { + Entity entity = 1; + repeated Edge edges = 2; + repeated Entity related = 3; } -message GetMyStarredAssetsResponse { - repeated Asset data = 1; +message GetEntityImpactRequest { + string urn = 1 [(buf.validate.field).string.min_len = 1]; + uint32 depth = 2; } -message GetMyStarredAssetRequest { - string asset_id = 1; +message GetEntityImpactResponse { + repeated Edge edges = 1; + repeated Entity affected = 2; } -message GetMyStarredAssetResponse { - Asset data = 1; -} +// ============================================================ +// Edge CRUD +// ============================================================ -message StarAssetRequest { - string asset_id = 1; +message UpsertEdgeRequest { + string source_urn = 1 [(buf.validate.field).string.min_len = 1]; + string target_urn = 2 [(buf.validate.field).string.min_len = 1]; + string type = 3 [(buf.validate.field).string.min_len = 1]; + google.protobuf.Struct properties = 4; + string source = 5; } -message StarAssetResponse { +message UpsertEdgeResponse { string id = 1; } -message UnstarAssetRequest { - string asset_id = 1; -} - -message UnstarAssetResponse {} - -message GetMyDiscussionsRequest { - string filter = 1; - string type = 2; - string state = 3; - string asset = 4; - string labels = 5; - string sort = 6; - string direction = 7; - uint32 size = 8 [(buf.validate.field).uint32 = { - gte: 0, - }]; - uint32 offset = 9 [(buf.validate.field).uint32 = { - gte: 0, - }]; -} - -message GetMyDiscussionsResponse { - repeated Discussion data = 1; -} - -message CreateTagAssetRequest { - string asset_id = 1; // required - string template_urn = 2; // required - repeated TagValue tag_values = 3; // required - string template_display_name = 4; - string template_description = 5; -} - -message CreateTagAssetResponse { - Tag data = 1; +message GetEdgesRequest { + string urn = 1 [(buf.validate.field).string.min_len = 1]; + string direction = 2; // outgoing, incoming, both + string type = 3; + bool current_only = 4; } -message GetTagByAssetAndTemplateRequest { - string asset_id = 1; - string template_urn = 3; +message GetEdgesResponse { + repeated Edge data = 1; } -message GetTagByAssetAndTemplateResponse { - Tag data = 1; +message DeleteEdgeRequest { + string source_urn = 1 [(buf.validate.field).string.min_len = 1]; + string target_urn = 2 [(buf.validate.field).string.min_len = 1]; + string type = 3 [(buf.validate.field).string.min_len = 1]; } -message UpdateTagAssetRequest { - string asset_id = 1; // required - string template_urn = 2; - repeated TagValue tag_values = 3; // required - string template_display_name = 4; - string template_description = 5; -} +message DeleteEdgeResponse {} -message UpdateTagAssetResponse { - Tag data = 1; -} +// ============================================================ +// Star +// ============================================================ -message DeleteTagAssetRequest { - string asset_id = 1; - string template_urn = 2; +message StarEntityRequest { + string entity_id = 1; } -message DeleteTagAssetResponse {} - -message GetAllTagsByAssetRequest { - string asset_id = 1; +message StarEntityResponse { + string id = 1; } -message GetAllTagsByAssetResponse { - repeated Tag data = 1; +message UnstarEntityRequest { + string entity_id = 1; } -message GetAllTagTemplatesRequest { - string urn = 1; -} +message UnstarEntityResponse {} -message GetAllTagTemplatesResponse { - repeated TagTemplate data = 1; +message GetUserStarredEntitiesRequest { + string user_id = 1; + uint32 size = 2 [(buf.validate.field).uint32 = { gte: 0 }]; + uint32 offset = 3 [(buf.validate.field).uint32 = { gte: 0 }]; } -message CreateTagTemplateRequest { - string urn = 1; // required - string display_name = 2; // required - string description = 3; // required - repeated TagTemplateField fields = 4; // required +message GetUserStarredEntitiesResponse { + repeated Entity data = 1; } -message CreateTagTemplateResponse { - TagTemplate data = 1; +message GetMyStarredEntitiesRequest { + uint32 size = 1 [(buf.validate.field).uint32 = { gte: 0 }]; + uint32 offset = 2 [(buf.validate.field).uint32 = { gte: 0 }]; } -message GetTagTemplateRequest { - string template_urn = 1; +message GetMyStarredEntitiesResponse { + repeated Entity data = 1; } -message GetTagTemplateResponse { - TagTemplate data = 1; +message GetMyStarredEntityRequest { + string entity_id = 1; } -message UpdateTagTemplateRequest { - string template_urn = 1; - string display_name = 2; // required - string description = 3; // required - repeated TagTemplateField fields = 4; // required +message GetMyStarredEntityResponse { + Entity data = 1; } -message UpdateTagTemplateResponse { - TagTemplate data = 1; +message GetEntityStargazersRequest { + string id = 1; + uint32 size = 2 [(buf.validate.field).uint32 = { gte: 0 }]; + uint32 offset = 3 [(buf.validate.field).uint32 = { gte: 0 }]; } -message DeleteTagTemplateRequest { - string template_urn = 1; +message GetEntityStargazersResponse { + repeated User data = 1; } -message DeleteTagTemplateResponse {} +// ============================================================ +// Namespace +// ============================================================ message CreateNamespaceRequest { string id = 1; @@ -672,7 +304,6 @@ message CreateNamespaceResponse { } message GetNamespaceRequest { - // set either id or name string urn = 1; } @@ -681,9 +312,7 @@ message GetNamespaceResponse { } message UpdateNamespaceRequest { - // set either id or name string urn = 1; - string state = 2; google.protobuf.Struct metadata = 3; } @@ -695,141 +324,3 @@ message ListNamespacesRequest {} message ListNamespacesResponse { repeated Namespace namespaces = 1; } - -// Entities - -message User { - string id = 1; - string uuid = 2; - string email = 3; - string provider = 4; - google.protobuf.Timestamp created_at = 5; - google.protobuf.Timestamp updated_at = 6; -} - -message Change { - string type = 1; - repeated string path = 2; - google.protobuf.Value from = 3; - google.protobuf.Value to = 4; -} - -message Asset { - string id = 1; - string urn = 2; - string type = 3; - string service = 4; - string name = 5; - string description = 6; - google.protobuf.Struct data = 7; - map labels = 8; - repeated User owners = 9; - string version = 10; - User updated_by = 11; - repeated Change changelog = 12; - google.protobuf.Timestamp created_at = 13; - google.protobuf.Timestamp updated_at = 14; - string url = 15; - repeated Probe probes = 16; - bool is_deleted = 17; -} - -message Probe { - string id = 1; - string asset_urn = 2; - string status = 3; - string status_reason = 4; - google.protobuf.Struct metadata = 5; - google.protobuf.Timestamp timestamp = 6; - google.protobuf.Timestamp created_at = 7; -} - -message Discussion { - string id = 1; - string title = 2; - string body = 3; - string type = 4; - string state = 5; - repeated string labels = 6; - repeated string assets = 7; - repeated string assignees = 8; - User owner = 9; - google.protobuf.Timestamp created_at = 10; - google.protobuf.Timestamp updated_at = 11; -} - -message Comment { - string id = 1; - string discussion_id = 2; - string body = 3; - User owner = 4; - User updated_by = 5; - google.protobuf.Timestamp created_at = 6; - google.protobuf.Timestamp updated_at = 7; -} - -message LineageEdge { - string source = 1; - string target = 2; - google.protobuf.Struct prop = 3; -} - -message LineageNode { - string urn = 1; - string type = 2 [deprecated = true]; - string service = 3 [deprecated = true]; -} - -message Tag { - string asset_id = 1; - string template_urn = 2; - repeated TagValue tag_values = 3; - string template_display_name = 4; - string template_description = 5; -} - -message TagValue { - uint32 field_id = 1; - google.protobuf.Value field_value = 2; - string field_urn = 3; - string field_display_name = 4; - string field_description = 5; - string field_data_type = 6; - repeated string field_options = 7; - bool field_required = 8; - google.protobuf.Timestamp created_at = 9; - google.protobuf.Timestamp updated_at = 10; -} - -message TagTemplate { - string urn = 1; - string display_name = 2; - string description = 3; - repeated TagTemplateField fields = 4; - google.protobuf.Timestamp created_at = 5; - google.protobuf.Timestamp updated_at = 6; -} - -message TagTemplateField { - uint32 id = 1; - string urn = 2; - string display_name = 3; - string description = 4; - string data_type = 5; - repeated string options = 6; - bool required = 7; - google.protobuf.Timestamp created_at = 8; - google.protobuf.Timestamp updated_at = 9; -} - -message Type { - string name = 1; - uint32 count = 2; -} - -message Namespace { - string id = 1; - string name = 2 [(buf.validate.field).string.min_len = 3]; - string state = 3; - google.protobuf.Struct metadata = 4; -}