diff --git a/nebius/monitoring/v1/recording_rule.proto b/nebius/monitoring/v1/recording_rule.proto index d6b7fbe..5f8dcc1 100644 --- a/nebius/monitoring/v1/recording_rule.proto +++ b/nebius/monitoring/v1/recording_rule.proto @@ -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; diff --git a/nebius/monitoring/v1/recording_rule_service.proto b/nebius/monitoring/v1/recording_rule_service.proto index cc8dde4..b85577a 100644 --- a/nebius/monitoring/v1/recording_rule_service.proto +++ b/nebius/monitoring/v1/recording_rule_service.proto @@ -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); @@ -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; @@ -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. @@ -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]; @@ -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;