Public Access
45 lines
1.4 KiB
Protocol Buffer
45 lines
1.4 KiB
Protocol Buffer
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<string, string> 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;
|
|
}
|