syntax = "proto3"; package charybdis.core; import "core/common.proto"; // ResourceMetadata represents identifying information for a resource entity // A resource is infrastructure or operational component (database, S3 bucket, cluster, etc.) message ResourceMetadata { // Required: The resource name string name = 1; // Optional: Namespace for organizational grouping (default: "default") string namespace = 2; // Optional: Human-readable description of the resource string description = 3; // Optional: Labels for categorization and filtering // Key-value pairs (e.g., "cloud": "aws", "region": "us-west-2") map labels = 4; // Optional: Tags for additional classification repeated string tags = 5; // Optional: Links to external resources (e.g., AWS console, monitoring dashboard) repeated Link links = 6; } // ResourceSpec represents configuration for a resource entity message ResourceSpec { // Required: Type of resource // Standard types: "database", "s3-bucket", "cluster", "pipeline", "queue", "cache" string type = 1; // Required: Owner team or individual (references a Group or User entity) string owner = 2; // Optional: System this resource belongs to (references a System entity) string system = 3; // Optional: Resources this resource depends on (references other Resource entities) repeated string depends_on = 4; }