From 60690a0f0b86b8e240fc9dc8afa60d9f5c303029 Mon Sep 17 00:00:00 2001 From: Alex Vanin Date: Tue, 11 Aug 2020 11:59:36 +0300 Subject: [PATCH] [#37] Add body message to object requests Signed-off-by: Alex Vanin --- object/service.proto | 314 ++++++++++++++++++++++++++++++------------- 1 file changed, 223 insertions(+), 91 deletions(-) diff --git a/object/service.proto b/object/service.proto index 311eb26..613b61d 100644 --- a/object/service.proto +++ b/object/service.proto @@ -5,8 +5,8 @@ package object; option go_package = "github.com/nspcc-dev/neofs-api-go/object"; option csharp_namespace = "NeoFS.API.Object"; -import "refs/types.proto"; import "object/types.proto"; +import "refs/types.proto"; import "service/meta.proto"; import "service/verify.proto"; @@ -53,154 +53,248 @@ service Service { } message GetRequest { - // Carries the address of the requested object. - refs.Address address = 1; + message Body { + // Carries the address of the requested object. + refs.Address address = 1; - // Carries the raw option flag of the request. - // Raw request is sent to receive only the objects - // that are physically stored on the server. - bool raw = 2; + // Carries the raw option flag of the request. + // Raw request is sent to receive only the objects + // that are physically stored on the server. + bool raw = 2; + } + + // Body of get object request message. + Body body = 1; // Carries request meta information. Header data is used only to regulate message // transport and does not affect request execution. - service.RequestMetaHeader meta_header = 98; + service.RequestMetaHeader meta_header = 2; // Carries request verification information. This header is used to authenticate // the nodes of the message route and check the correctness of transmission. - service.RequestVerificationHeader verify_header = 99; + service.RequestVerificationHeader verify_header = 3; } message GetResponse { - // Carries the single message of the response stream. - oneof ObjectPart { - // Carries the object header. - Header header = 1; + message Body { + // Carries the single message of the response stream. + oneof ObjectPart { + // Carries the object header. + Header header = 1; - // Carries part of the object payload. - bytes chunk = 2; + // Carries part of the object payload. + bytes chunk = 2; + } } + + // Body of get object response message. + Body body = 1; + + // Carries response meta information. Header data is used only to regulate + // message transport and does not affect request execution. + service.ResponseMetaHeader meta_header = 2; + + // Carries response verification information. This header is used to + // authenticate the nodes of the message route and check the correctness + // of transmission. + service.ResponseVerificationHeader verify_header = 3; } message PutRequest { - // Groups initialization parameters of object placement in NeoFS. - message Init { - // Carries the header of the object to save in the system. - Header header = 1; + message Body { + // Groups initialization parameters of object placement in NeoFS. + message Init { + // Carries the header of the object to save in the system. + Header header = 1; - // Carries the number of the object copies to store - // within the RPC call. Default zero value is processed according - // to the container placement rules. - uint32 copies_number = 2; + // Carries the number of the object copies to store + // within the RPC call. Default zero value is processed according + // to the container placement rules. + uint32 copies_number = 2; + } + + // Carries the single part of the query stream. + oneof Part { + // Carries the initialization parameters of the object stream. + Init init = 1; + + // Carries part of the object payload. + bytes chunk = 2; + } } - // Carries the single part of the query stream. - oneof Part { - // Carries the initialization parameters of the object stream. - Init init = 1; - - // Carries part of the object payload. - bytes chunk = 2; - } + // Body of put object request message. + Body body = 1; // Carries request meta information. Header data is used only to regulate message // transport and does not affect request execution. - service.RequestMetaHeader meta_header = 98; + service.RequestMetaHeader meta_header = 2; // Carries request verification information. This header is used to authenticate // the nodes of the message route and check the correctness of transmission. - service.RequestVerificationHeader verify_header = 99; + service.RequestVerificationHeader verify_header = 3; } message PutResponse { - // Carries identifier of the saved object. - // It is used to access an object in the container. - refs.ObjectID object_id = 1; + message Body { + // Carries identifier of the saved object. + // It is used to access an object in the container. + refs.ObjectID object_id = 1; + } + + // Body of put object response message. + Body body = 1; + + // Carries response meta information. Header data is used only to regulate + // message transport and does not affect request execution. + service.ResponseMetaHeader meta_header = 2; + + // Carries response verification information. This header is used to + // authenticate the nodes of the message route and check the correctness + // of transmission. + service.ResponseVerificationHeader verify_header = 3; } message DeleteRequest { - // Carries the address of the object to be deleted. - refs.Address address = 1; + message Body { + // Carries the address of the object to be deleted. + refs.Address address = 1; - // Carries identifier the object owner. - refs.OwnerID owner_id = 2; + // Carries identifier the object owner. + refs.OwnerID owner_id = 2; + } + + // Body of delete object request message. + Body body = 1; // Carries request meta information. Header data is used only to regulate message // transport and does not affect request execution. - service.RequestMetaHeader meta_header = 98; + service.RequestMetaHeader meta_header = 2; // Carries request verification information. This header is used to authenticate // the nodes of the message route and check the correctness of transmission. - service.RequestVerificationHeader verify_header = 99; + service.RequestVerificationHeader verify_header = 3; } // DeleteResponse is empty because we cannot guarantee permanent object removal // in distributed system. message DeleteResponse { + message Body { } + + // Body of delete object response message. + Body body = 1; + + // Carries response meta information. Header data is used only to regulate + // message transport and does not affect request execution. + service.ResponseMetaHeader meta_header = 2; + + // Carries response verification information. This header is used to + // authenticate the nodes of the message route and check the correctness + // of transmission. + service.ResponseVerificationHeader verify_header = 3; } message HeadRequest { - // Carries the address of the object with the requested header. - refs.Address address = 1; + message Body { + // Carries the address of the object with the requested header. + refs.Address address = 1; - // Carries the option to crop header to main part. - bool main_only = 2; + // Carries the option to crop header to main part. + bool main_only = 2; - // Carries the raw option flag of the request. - // Raw request is sent to receive only the headers of the objects - // that are physically stored on the server. - bool raw = 3; + // Carries the raw option flag of the request. + // Raw request is sent to receive only the headers of the objects + // that are physically stored on the server. + bool raw = 3; + } + + // Body of head object request message. + Body body = 1; // Carries request meta information. Header data is used only to regulate message // transport and does not affect request execution. - service.RequestMetaHeader meta_header = 98; + service.RequestMetaHeader meta_header = 2; // Carries request verification information. This header is used to authenticate // the nodes of the message route and check the correctness of transmission. - service.RequestVerificationHeader verify_header = 99; + service.RequestVerificationHeader verify_header = 3; } message HeadResponse { - // Carries the requested object header. - Header header = 1; + message Body { + // Carries the requested object header. + Header header = 1; + } + + // Body of head object response message. + Body body = 1; + + // Carries response meta information. Header data is used only to regulate + // message transport and does not affect request execution. + service.ResponseMetaHeader meta_header = 2; + + // Carries response verification information. This header is used to + // authenticate the nodes of the message route and check the correctness + // of transmission. + service.ResponseVerificationHeader verify_header = 3; } message SearchRequest { - // Carries search container identifier. - refs.ContainerID container_id = 1; + message Body { + // Carries search container identifier. + refs.ContainerID container_id = 1; - message Query { - uint32 version = 1; + message Query { + uint32 version = 1; - message Filter { - enum MatchType { - MATCH_UNKNOWN = 0; - STRING_EQUAL = 1; + message Filter { + enum MatchType { + MATCH_UNKNOWN = 0; + STRING_EQUAL = 1; + } + + MatchType match_type = 1; + + string name = 2; + + string value = 3; } - MatchType match_type = 1; - - string name = 2; - - string value = 3; + repeated Filter filters = 2; } - repeated Filter filters = 2; + Query query = 2; } - Query query = 2; + // Body of search object request message. + Body body = 1; // Carries request meta information. Header data is used only to regulate message // transport and does not affect request execution. - service.RequestMetaHeader meta_header = 98; + service.RequestMetaHeader meta_header = 2; // Carries request verification information. This header is used to authenticate // the nodes of the message route and check the correctness of transmission. - service.RequestVerificationHeader verify_header = 99; + service.RequestVerificationHeader verify_header = 3; } message SearchResponse { - // Carries list of object identifiers that match the search query. - repeated refs.ObjectID id_list = 1; + message Body { + // Carries list of object identifiers that match the search query. + repeated refs.ObjectID id_list = 1; + } + + // Body of search object response message. + Body body = 1; + + // Carries response meta information. Header data is used only to regulate + // message transport and does not affect request execution. + service.ResponseMetaHeader meta_header = 2; + + // Carries response verification information. This header is used to + // authenticate the nodes of the message route and check the correctness + // of transmission. + service.ResponseVerificationHeader verify_header = 3; } // Range groups the parameters of object payload range. @@ -213,47 +307,85 @@ message Range { } message GetRangeRequest { - // Address carries address of the object that contains the requested payload range. - refs.Address address = 1; + message Body { + // Address carries address of the object that contains the requested payload range. + refs.Address address = 1; - // Range carries the parameters of the requested payload range. - Range range = 2; + // Range carries the parameters of the requested payload range. + Range range = 2; + } + + // Body of get range object request message. + Body body = 1; // Carries request meta information. Header data is used only to regulate message // transport and does not affect request execution. - service.RequestMetaHeader meta_header = 98; + service.RequestMetaHeader meta_header = 2; // Carries request verification information. This header is used to authenticate // the nodes of the message route and check the correctness of transmission. - service.RequestVerificationHeader verify_header = 99; + service.RequestVerificationHeader verify_header = 3; } message GetRangeResponse { - // Carries part of the object payload. - bytes chunk = 1; + message Body { + // Carries part of the object payload. + bytes chunk = 1; + } + + // Body of get range object response message. + Body body = 1; + + // Carries response meta information. Header data is used only to regulate + // message transport and does not affect request execution. + service.ResponseMetaHeader meta_header = 2; + + // Carries response verification information. This header is used to + // authenticate the nodes of the message route and check the correctness + // of transmission. + service.ResponseVerificationHeader verify_header = 3; } message GetRangeHashRequest { - // Carries address of the object that contains the requested payload range. - refs.Address address = 1; + message Body { + // Carries address of the object that contains the requested payload range. + refs.Address address = 1; - // Carries the list of object payload range to calculate homomorphic hash. - repeated Range ranges = 2; + // Carries the list of object payload range to calculate homomorphic hash. + repeated Range ranges = 2; - // Carries binary salt to XOR object payload ranges before hash calculation. - bytes salt = 3; + // Carries binary salt to XOR object payload ranges before hash calculation. + bytes salt = 3; + } + + // Body of get range hash object request message. + Body body = 1; // Carries request meta information. Header data is used only to regulate message // transport and does not affect request execution. - service.RequestMetaHeader meta_header = 98; + service.RequestMetaHeader meta_header = 2; // Carries request verification information. This header is used to authenticate // the nodes of the message route and check the correctness of transmission. - service.RequestVerificationHeader verify_header = 99; + service.RequestVerificationHeader verify_header = 3; } message GetRangeHashResponse { - // Carries list of homomorphic hashes in a binary format. - repeated bytes hash_list = 1; + message Body { + // Carries list of homomorphic hashes in a binary format. + repeated bytes hash_list = 1; + } + + // Body of get range hash object response message. + Body body = 1; + + // Carries response meta information. Header data is used only to regulate + // message transport and does not affect request execution. + service.ResponseMetaHeader meta_header = 2; + + // Carries response verification information. This header is used to + // authenticate the nodes of the message route and check the correctness + // of transmission. + service.ResponseVerificationHeader verify_header = 3; }