syntax = "proto3"; package resource_recorder; import "google/protobuf/timestamp.proto"; service ResourceRecorder { // Record a new set of resources rpc RecordResources(RecordRequest) returns (ResultResponse); // Get the resources belonging to a project rpc GetProjectResources(ProjectResourcesRequest) returns (ResourcesResponse); // Discontinued rpc GetServiceResources(ServiceResourcesRequest) returns (ResourcesResponse); // Get a resource rpc GetResource(ResourceIds) returns (ResourceResponse); // Delete a resource rpc DeleteResource(ResourceIds) returns (ResultResponse); } message RecordRequest { string project_id = 1; string service_id = 2; message Resource { string type = 1; bytes config = 2; bytes data = 3; } repeated Resource resources = 3; } message ResultResponse { bool success = 1; string message = 2; } message ProjectResourcesRequest { string project_id = 1; } message ResourcesResponse { bool success = 1; string message = 2; repeated Resource resources = 3; } message ResourceResponse { bool success = 1; string message = 2; Resource resource = 3; } message ServiceResourcesRequest { string service_id = 1; } message ResourceIds { string project_id = 1; string service_id = 2; string type = 3; } message Resource { string project_id = 1; string service_id = 2; string type = 3; bytes config = 4; bytes data = 5; bool is_active = 6; google.protobuf.Timestamp created_at = 7; google.protobuf.Timestamp last_updated = 8; }