diff --git a/nebius/annotations.proto b/nebius/annotations.proto index a61f301..e053d7a 100644 --- a/nebius/annotations.proto +++ b/nebius/annotations.proto @@ -63,6 +63,16 @@ extend google.protobuf.FieldOptions { DeprecationDetails field_deprecation_details = 1194; FieldPySDKSettings field_py_sdk = 1195; + + // Field NID settings for fields annotated with this option. + // When present on string fields (including lists and maps), values are treated as NIDs and + // warnings are emitted when they are not valid. These warnings are separate from server-side validation. + // + // For metadata fields, this describes which parent resource types are allowed in + // `metadata.parent_id`. For string fields, this describes which resource types are allowed + // in the NID itself. + // See `NIDFieldSettings` for more details. + NIDFieldSettings nid = 1196; } extend google.protobuf.OneofOptions { @@ -184,3 +194,15 @@ message DeprecationDetails { // A description to help users understand the reason for deprecation and suggest alternatives string description = 2; } + +message NIDFieldSettings { + // Fields annotated with this option are treated as NIDs. + // `resource` lists allowed NID resource types (prefixes). Leave empty to accept any type. + // Validation only produces warnings. + repeated string resource = 1; + + // For metadata fields, `parent_resource` lists allowed parent resource types for `metadata.parent_id`. + // Leave empty to allow any type. Validation only produces warnings. + // Typically set on the resource message; request-level overrides are supported. + repeated string parent_resource = 2; +} diff --git a/nebius/storage/v1/s3_events.proto b/nebius/storage/v1/s3_events.proto deleted file mode 100644 index 9ba90ec..0000000 --- a/nebius/storage/v1/s3_events.proto +++ /dev/null @@ -1,258 +0,0 @@ -syntax = "proto3"; - -package nebius.storage.v1; - -import "google/protobuf/timestamp.proto"; - -option go_package = "github.com/nebius/gosdk/proto/nebius/storage/v1"; -option java_multiple_files = true; -option java_outer_classname = "S3EventsProto"; -option java_package = "ai.nebius.pub.storage.v1"; - -// ---------------------------------------- - -message CompleteMultipartUploadRequestParameters { - string bucket_name = 1; - - string object_key = 2; - - message Part { - int32 part_number = 1; - - string etag = 2; - } - - repeated Part parts = 3; -} - -message CompleteMultipartUploadResponse { - string bucket_name = 1; - - string object_key = 2; - - string etag = 3; -} - -// ---------------------------------------- - -message CopyObjectRequestParameters { - message Source { - string bucket_name = 1; - - string object_key = 2; - - string version = 3; - } - - Source source = 1; - - message Target { - string bucket_name = 1; - - string object_key = 2; - } - - Target target = 2; -} - -message CopyObjectResponse { - string etag = 1; - - google.protobuf.Timestamp last_modified = 2; -} - -// ---------------------------------------- - -message DeleteObjectRequestParameters { - string bucket_name = 1; - - string object_key = 2; - - string version = 3; -} - -message DeleteObjectResponse { - bool delete_marker = 1; -} - -// ---------------------------------------- - -message DeleteObjectsRequestParameters { - string bucket_name = 1; - - repeated ObjectKey objects = 4; - - message ObjectKey { - string key = 1; - - string version = 2; - } -} - -message DeleteObjectsResponse { - message DeleteSuccess { - bool delete_marker = 1; - - string object_key = 2; - - string version = 3; - } - - repeated DeleteSuccess deleted = 1; - - message DeleteError { - string code = 1; - - string message = 2; - - string object_key = 3; - - string version = 4; - } - - repeated DeleteError errors = 2; -} - -// ---------------------------------------- - -message ObjectRequestParameters { - string bucket_name = 1; - - string object_key = 2; - - string version = 3; -} - -message ObjectResponse { - string etag = 1; - - string version = 2; - - google.protobuf.Timestamp last_modified = 3; -} - -// ---------------------------------------- - -message ListObjectVersionsRequestParameters { - string bucket_name = 1; - - string prefix = 2; - - string key_marker = 3; - - int32 version_id_marker = 4; - - int32 limit = 5; - - string delimiter = 6; -} - -message ListObjectVersionsResponse { - message VersionView { - string etag = 1; - - bool latest = 2; - - string object_key = 3; - - google.protobuf.Timestamp last_modified = 4; - - int64 size = 5; - - string version_id = 6; - - string storage_class = 7; - } - - repeated VersionView versions = 1; - - message DeleteMarkerView { - bool latest = 1; - - string object_key = 2; - - google.protobuf.Timestamp last_modified = 3; - - string version_id = 4; - } - - repeated DeleteMarkerView delete_markers = 2; - - repeated string common_prefixes = 3; - - bool truncated = 4; - - string next_key_marker = 5; - - int32 next_version_id_marker = 6; -} - -// ---------------------------------------- - -message ListObjectsRequestParameters { - string bucket_name = 1; - - string prefix = 2; - - string delimiter = 3; - - string start_after = 4; - - int32 limit = 5; -} - -message ListObjectsResponse { - message ObjectView { - string etag = 1; - - string object_key = 2; - - google.protobuf.Timestamp last_modified = 3; - - int64 size = 4; - - string storage_class = 5; - } - - repeated ObjectView objects = 1; - - repeated string common_prefixes = 2; - - bool truncated = 3; -} - -// ---------------------------------------- - -message PostObjectRequestParameters { - string bucket_name = 1; - - string object_key = 2; - - int64 size = 3; -} - -message PostObjectResponse { - string etag = 1; - - string version = 2; -} - -// ---------------------------------------- - -message PutObjectRequestParameters { - string bucket_name = 1; - - string object_key = 2; - - int64 size = 3; - - string storage_class = 4; - - string expected_md5 = 5; -} - -message PutObjectResponse { - string etag = 1; - - string version = 2; -}