Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 6 additions & 3 deletions nebius/monitoring/v1/recording_rule.proto
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,13 @@ option java_package = "ai.nebius.pub.monitoring.v1";

// A recording rule that writes the result of a MetricsQL expression evaluation.
message RecordingRule {
option (resource_behavior) = UNNAMED;

// Metadata associated with the recording rule.
common.v1.ResourceMetadata metadata = 1 [(buf.validate.field).required = true];
common.v1.ResourceMetadata metadata = 1 [
(buf.validate.field).required = true,
(nid) = {
parent_resource: ["project"]
}
];

// Specification of the recording rule.
RecordingRuleSpec spec = 2;
Expand Down
39 changes: 35 additions & 4 deletions nebius/monitoring/v1/recording_rule_service.proto
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,9 @@ service RecordingRuleService {
// Returns the specified recording rule.
rpc Get(GetRecordingRuleRequest) returns (RecordingRule);

// Returns a recording rule by its unique name within a parent.
rpc GetByName(GetRecordingRuleByNameRequest) returns (RecordingRule);

// Returns recording rules under the specified parent.
rpc List(ListRecordingRulesRequest) returns (ListRecordingRulesResponse);

Expand All @@ -41,8 +44,13 @@ message GetRecordingRuleRequest {

// Request to list recording rules.
message ListRecordingRulesRequest {
// ID of the parent workspace.
string parent_id = 1 [(buf.validate.field).required = true];
// ID of the parent.
string parent_id = 1 [
(buf.validate.field).required = true,
(nid) = {
resource: ["project"]
}
];

// Maximum number of recording rules to return.
int64 page_size = 2;
Expand All @@ -51,6 +59,19 @@ message ListRecordingRulesRequest {
string page_token = 3;
}

message GetRecordingRuleByNameRequest {
// ID of the parent.
string parent_id = 1 [
(buf.validate.field).required = true,
(nid) = {
resource: ["project"]
}
];

// Resource name, not the recorded metric name.
string name = 2 [(buf.validate.field).required = true];
}

// Response containing recording rules under the specified parent.
message ListRecordingRulesResponse {
// Recording rules returned in the response.
Expand All @@ -63,7 +84,12 @@ message ListRecordingRulesResponse {
// Request to create a recording rule.
message CreateRecordingRuleRequest {
// Metadata for the recording rule to create.
common.v1.ResourceMetadata metadata = 1 [(buf.validate.field).required = true];
common.v1.ResourceMetadata metadata = 1 [
(buf.validate.field).required = true,
(nid) = {
parent_resource: ["project"]
}
];

// Specification of the recording rule to create.
RecordingRuleSpec spec = 2 [(buf.validate.field).required = true];
Expand All @@ -72,7 +98,12 @@ message CreateRecordingRuleRequest {
// Request to update a recording rule.
message UpdateRecordingRuleRequest {
// Metadata for the recording rule to update.
common.v1.ResourceMetadata metadata = 1 [(buf.validate.field).required = true];
common.v1.ResourceMetadata metadata = 1 [
(buf.validate.field).required = true,
(nid) = {
parent_resource: ["project"]
}
];

// Updated specification of the recording rule.
RecordingRuleSpec spec = 2;
Expand Down