diff --git a/nebius/ai/v1/endpoint.proto b/nebius/ai/v1/endpoint.proto index b0b96b2..c71df01 100644 --- a/nebius/ai/v1/endpoint.proto +++ b/nebius/ai/v1/endpoint.proto @@ -15,7 +15,12 @@ option java_package = "ai.nebius.pub.ai.v1"; // Represents an endpoint with a specified workload. message Endpoint { - common.v1.ResourceMetadata metadata = 1 [(buf.validate.field).required = true]; + common.v1.ResourceMetadata metadata = 1 [ + (buf.validate.field).required = true, + (nid) = { + parent_resource: ["project"] + } + ]; EndpointSpec spec = 2 [(buf.validate.field).required = true]; diff --git a/nebius/ai/v1/endpoint_service.proto b/nebius/ai/v1/endpoint_service.proto index cd03cf6..ef00712 100644 --- a/nebius/ai/v1/endpoint_service.proto +++ b/nebius/ai/v1/endpoint_service.proto @@ -49,13 +49,23 @@ message GetEndpointRequest { } message GetEndpointByNameRequest { - string parent_id = 1 [(buf.validate.field).required = true]; + string parent_id = 1 [ + (buf.validate.field).required = true, + (nid) = { + resource: ["project"] + } + ]; string name = 2 [(buf.validate.field).required = true]; } message ListEndpointsRequest { - string parent_id = 1 [(buf.validate.field).required = true]; + string parent_id = 1 [ + (buf.validate.field).required = true, + (nid) = { + resource: ["project"] + } + ]; int64 page_size = 2; @@ -63,7 +73,12 @@ message ListEndpointsRequest { } message CreateEndpointRequest { - common.v1.ResourceMetadata metadata = 1 [(buf.validate.field).required = true]; + common.v1.ResourceMetadata metadata = 1 [ + (buf.validate.field).required = true, + (nid) = { + parent_resource: ["project"] + } + ]; EndpointSpec spec = 2 [(buf.validate.field).required = true]; diff --git a/nebius/ai/v1/job.proto b/nebius/ai/v1/job.proto index 7ce769d..7589b38 100644 --- a/nebius/ai/v1/job.proto +++ b/nebius/ai/v1/job.proto @@ -17,7 +17,12 @@ option java_package = "ai.nebius.pub.ai.v1"; // Represents a job with a specified workload. message Job { - common.v1.ResourceMetadata metadata = 1 [(buf.validate.field).required = true]; + common.v1.ResourceMetadata metadata = 1 [ + (buf.validate.field).required = true, + (nid) = { + parent_resource: ["project"] + } + ]; JobSpec spec = 2 [(buf.validate.field).required = true]; diff --git a/nebius/ai/v1/job_service.proto b/nebius/ai/v1/job_service.proto index 45576cb..cff39b2 100644 --- a/nebius/ai/v1/job_service.proto +++ b/nebius/ai/v1/job_service.proto @@ -46,13 +46,23 @@ message GetJobRequest { } message GetJobByNameRequest { - string parent_id = 1 [(buf.validate.field).required = true]; + string parent_id = 1 [ + (buf.validate.field).required = true, + (nid) = { + resource: ["project"] + } + ]; string name = 2 [(buf.validate.field).required = true]; } message ListJobsRequest { - string parent_id = 1 [(buf.validate.field).required = true]; + string parent_id = 1 [ + (buf.validate.field).required = true, + (nid) = { + resource: ["project"] + } + ]; int64 page_size = 2; @@ -60,7 +70,12 @@ message ListJobsRequest { } message CreateJobRequest { - common.v1.ResourceMetadata metadata = 1 [(buf.validate.field).required = true]; + common.v1.ResourceMetadata metadata = 1 [ + (buf.validate.field).required = true, + (nid) = { + parent_resource: ["project"] + } + ]; JobSpec spec = 2 [(buf.validate.field).required = true]; diff --git a/nebius/mk8s/v1/node_group.proto b/nebius/mk8s/v1/node_group.proto index bd7f858..88dc022 100644 --- a/nebius/mk8s/v1/node_group.proto +++ b/nebius/mk8s/v1/node_group.proto @@ -314,7 +314,11 @@ message NodeGroupDeploymentStrategy { // When specified as a percentage, the actual number is calculated by rounding down to the nearest whole number. // This value cannot be 0 if `max_surge` is also set to 0. // - // Defaults to 0. + // On 2026-08-01, defaults to 0. + // IMPORTANT: starting from Q3 2026 new default is 1; + // for new clusters it will default to 1, + // node groups in existing clusters will be gradually migrated during Q3 to the default of 1 as well. + // To get the actual value for your node group, please see 'strategy' in its status. // // Example: If set to 20%, up to 20% of the nodes can be taken offline at once during the update, // ensuring that at least 80% of the desired nodes remain operational. @@ -328,7 +332,11 @@ message NodeGroupDeploymentStrategy { // When specified as a percentage, the actual number is calculated by rounding up to the nearest whole number. // This value cannot be 0 if `max_unavailable` is also set to 0. // - // Defaults to 1. + // On 2026-08-01, defaults to 1. + // IMPORTANT: starting from Q3 2026 new default is 0; + // for new clusters it will default to 0, + // node groups in existing clusters will be gradually migrated during Q3 to the default of 0 as well. + // To get the actual value for your node group, please see 'strategy' in its status. // // Example: If set to 25%, the node group can scale up by an additional 25% during the update, // allowing new nodes to be added before old nodes are removed, which helps minimize workload disruption. @@ -343,10 +351,16 @@ message NodeGroupDeploymentStrategy { // Maximum amount of time that the service will spend attempting to gracefully drain a node // (evicting its pods) before falling back to pod deletion. - // A value of 0 (or when field is omitted) means no timeout: the node can be drained for an unlimited time. + // A value of 0 means no timeout: the node can be drained for an unlimited time. // Important consequence of that is if PodDisruptionBudget doesn't allow evicting a pod, // then NodeGroup update with node re-creation will hang on that pod eviction. // Note that this is different from `kubectl drain --timeout`, which gives up and returns an error. + // + // On 2026-08-01, defaults to 0. + // IMPORTANT: starting from Q3 2026 new default is 10m; + // for new clusters it will default to 10m, + // node groups in existing clusters will be gradually migrated during Q3 to the default of 10m as well. + // To get the actual value for your node group, please see 'strategy' in its status. google.protobuf.Duration drain_timeout = 3 [(buf.validate.field) = { duration: { gte: {}