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
2 changes: 1 addition & 1 deletion nebius/capacity/v1/resource_advice.proto
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ option java_package = "ai.nebius.pub.capacity.v1";
message ResourceAdvice {
option (resource_behavior) = UNNAMED;

// Standard metadata. parent_id is the User's Tenant/Project NID.
// Standard metadata. parent_id is the User's Tenant NID.
common.v1.ResourceMetadata metadata = 1 [
(buf.validate.field).required = true,
(nid) = {
Expand Down
9 changes: 7 additions & 2 deletions nebius/capacity/v1/resource_advice_service.proto
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,16 @@ option java_package = "ai.nebius.pub.capacity.v1";

// ResourceAdvisorService provides insights into capacity availability for various resources.
// It helps users understand where they can launch instances or allocate storage based on their
// quotas and the current physical buffers in the data centers.
// quotas and the current physical capacity in the data centers.
service ResourceAdviceService {
option (api_service_name) = "capacity-advisor.billing-cpl";

// Lists resource advice resources.
// Returns a list of resource advice entries for the caller's tenant.
// Each entry represents a unique combination of region, fabric, platform, and preset
// (e.g., gpu-b200-sxm / 8gpu-160vcpu-1792gb in us-central1-b) and reports current
// capacity availability across three allocation types: reserved, on-demand, and preemptible.
// Use this method to determine where and which compute instances can be launched
// given the tenant's quotas, capacity block groups, and the current physical capacity in data centers.
// Supports filtering by region, resource type, or platform.
rpc List(ListResourceAdviceRequest) returns (ListResourceAdviceResponse);
}
Expand Down
9 changes: 9 additions & 0 deletions nebius/compute/v1/nvlinstancegroup_service.proto
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,9 @@ service NVLInstanceGroupService {
// List lists all NVL InstanceGroups in the specified parent.
rpc List(ListNVLInstanceGroupsRequest) returns (ListNVLInstanceGroupsResponse);

// Update modifies the specified NVL InstanceGroup by its ID.
rpc Update(UpdateNVLInstanceGroupRequest) returns (common.v1.Operation);

// Delete deletes the specified NVL InstanceGroup by its ID.
rpc Delete(DeleteNVLInstanceGroupRequest) returns (common.v1.Operation);
}
Expand All @@ -38,6 +41,12 @@ message CreateNVLInstanceGroupRequest {
NVLInstanceGroupSpec spec = 2;
}

message UpdateNVLInstanceGroupRequest {
common.v1.ResourceMetadata metadata = 1;

NVLInstanceGroupSpec spec = 2;
}

message GetNVLInstanceGroupRequest {
string id = 1;
}
Expand Down
2 changes: 2 additions & 0 deletions nebius/iam/v1/static_key.proto
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,8 @@ message StaticKeySpec {
AI_STUDIO = 3;

TRACTO = 4;

LINUX_IDENTITY = 5;
}
}

Expand Down
19 changes: 12 additions & 7 deletions nebius/mk8s/v1/node_group.proto
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ message NodeGroupSpec {
// `<major>.<minor>` like "1.31". Option for patch version update will be added later.
// By default the cluster control plane `<major>.<minor>` version will be used.
string version = 1 [(buf.validate.field) = {
string: {pattern: "|^\\d\\.\\d\\d$"}
string: {pattern: "^$|^\\d+\\.\\d+(-nebius-node\\.[1-9]\\d*)?$"}
}];

oneof size {
Expand Down Expand Up @@ -310,12 +310,12 @@ message NodeGroupDeploymentStrategy {
// Such error will be visible in Operation.progress_data.
PercentOrCount max_surge = 2;

// Maximum amount of time that the service will spend on attempting gracefully draining a node (evicting it's pods), before
// falling back to pod deletion.
// By default, node can be drained unlimited time.
// Important consequence of that is if PodDisruptionBudget doesn't allow to evict a pod,
// then NodeGroup update with node re-creation will hung on that pod eviction.
// Note, that it is different from `kubectl drain --timeout`
// 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.
// 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.
google.protobuf.Duration drain_timeout = 3 [(buf.validate.field) = {
duration: {
gte: {}
Expand Down Expand Up @@ -480,6 +480,11 @@ message NodeGroupStatus {

repeated common.v1.RecurrentResourceEvent events = 61;

// Deployment strategy used by the service for node group rollouts and node deletions.
// It includes default values applied by the service. A drain_timeout value of 0 means
// that node draining is not time-limited.
NodeGroupDeploymentStrategy strategy = 62;

// Show that there are changes are in flight.
bool reconciling = 100;
}
10 changes: 10 additions & 0 deletions nebius/storage/v1/lifecycle.proto
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,16 @@ message LifecycleFilter {

// Maximum object size to which the rule applies.
int64 object_size_less_than_bytes = 3;

message Tag {
string key = 1;

string value = 2;
}

// Tags to filter objects by their tagging. Rule applies only to objects that
// match all tags in a filter.
repeated Tag tags = 4;
}

// Specifies which requests are included in `days_since_last_access` calculations.
Expand Down