github.com/TrueCloudLab/frostfs-api-go/v2@v2.0.0-20230228134343-196241c4e79a/object/grpc/service_grpc.pb.go (about) 1 // Code generated by protoc-gen-go-grpc. DO NOT EDIT. 2 // versions: 3 // - protoc-gen-go-grpc v1.2.0 4 // - protoc v3.21.9 5 // source: object/grpc/service.proto 6 7 package object 8 9 import ( 10 context "context" 11 grpc "google.golang.org/grpc" 12 codes "google.golang.org/grpc/codes" 13 status "google.golang.org/grpc/status" 14 ) 15 16 // This is a compile-time assertion to ensure that this generated file 17 // is compatible with the grpc package it is being compiled against. 18 // Requires gRPC-Go v1.32.0 or later. 19 const _ = grpc.SupportPackageIsVersion7 20 21 // ObjectServiceClient is the client API for ObjectService service. 22 // 23 // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. 24 type ObjectServiceClient interface { 25 // Receive full object structure, including Headers and payload. Response uses 26 // gRPC stream. First response message carries the object with the requested address. 27 // Chunk messages are parts of the object's payload if it is needed. All 28 // messages, except the first one, carry payload chunks. The requested object can 29 // be restored by concatenation of object message payload and all chunks 30 // keeping the receiving order. 31 // 32 // Extended headers can change `Get` behaviour: 33 // * __NEOFS__NETMAP_EPOCH \ 34 // Will use the requsted version of Network Map for object placement 35 // calculation. 36 // * __NEOFS__NETMAP_LOOKUP_DEPTH \ 37 // Will try older versions (starting from `__NEOFS__NETMAP_EPOCH` if specified or 38 // the latest one otherwise) of Network Map to find an object until the depth 39 // limit is reached. 40 // 41 // Please refer to detailed `XHeader` description. 42 // 43 // Statuses: 44 // - **OK** (0, SECTION_SUCCESS): \ 45 // object has been successfully read; 46 // - Common failures (SECTION_FAILURE_COMMON); 47 // - **ACCESS_DENIED** (2048, SECTION_OBJECT): \ 48 // read access to the object is denied; 49 // - **OBJECT_NOT_FOUND** (2049, SECTION_OBJECT): \ 50 // object not found in container; 51 // - **OBJECT_ALREADY_REMOVED** (2052, SECTION_OBJECT): \ 52 // the requested object has been marked as deleted; 53 // - **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER): \ 54 // object container not found; 55 // - **TOKEN_EXPIRED** (4097, SECTION_SESSION): \ 56 // provided session token has expired. 57 Get(ctx context.Context, in *GetRequest, opts ...grpc.CallOption) (ObjectService_GetClient, error) 58 // Put the object into container. Request uses gRPC stream. First message 59 // SHOULD be of PutHeader type. `ContainerID` and `OwnerID` of an object 60 // SHOULD be set. Session token SHOULD be obtained before `PUT` operation (see 61 // session package). Chunk messages are considered by server as a part of an 62 // object payload. All messages, except first one, SHOULD be payload chunks. 63 // Chunk messages SHOULD be sent in the direct order of fragmentation. 64 // 65 // Extended headers can change `Put` behaviour: 66 // * __NEOFS__NETMAP_EPOCH \ 67 // Will use the requsted version of Network Map for object placement 68 // calculation. 69 // 70 // Please refer to detailed `XHeader` description. 71 // 72 // Statuses: 73 // - **OK** (0, SECTION_SUCCESS): \ 74 // object has been successfully saved in the container; 75 // - Common failures (SECTION_FAILURE_COMMON); 76 // - **ACCESS_DENIED** (2048, SECTION_OBJECT): \ 77 // write access to the container is denied; 78 // - **LOCKED** (2050, SECTION_OBJECT): \ 79 // placement of an object of type TOMBSTONE that includes at least one locked 80 // object is prohibited; 81 // - **LOCK_NON_REGULAR_OBJECT** (2051, SECTION_OBJECT): \ 82 // placement of an object of type LOCK that includes at least one object of 83 // type other than REGULAR is prohibited; 84 // - **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER): \ 85 // object storage container not found; 86 // - **TOKEN_NOT_FOUND** (4096, SECTION_SESSION): \ 87 // (for trusted object preparation) session private key does not exist or has 88 // been deleted; 89 // - **TOKEN_EXPIRED** (4097, SECTION_SESSION): \ 90 // provided session token has expired. 91 Put(ctx context.Context, opts ...grpc.CallOption) (ObjectService_PutClient, error) 92 // Delete the object from a container. There is no immediate removal 93 // guarantee. Object will be marked for removal and deleted eventually. 94 // 95 // Extended headers can change `Delete` behaviour: 96 // * __NEOFS__NETMAP_EPOCH \ 97 // Will use the requsted version of Network Map for object placement 98 // calculation. 99 // 100 // Please refer to detailed `XHeader` description. 101 // 102 // Statuses: 103 // - **OK** (0, SECTION_SUCCESS): \ 104 // object has been successfully marked to be removed from the container; 105 // - Common failures (SECTION_FAILURE_COMMON); 106 // - **ACCESS_DENIED** (2048, SECTION_OBJECT): \ 107 // delete access to the object is denied; 108 // - **LOCKED** (2050, SECTION_OBJECT): \ 109 // deleting a locked object is prohibited; 110 // - **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER): \ 111 // object container not found; 112 // - **TOKEN_EXPIRED** (4097, SECTION_SESSION): \ 113 // provided session token has expired. 114 Delete(ctx context.Context, in *DeleteRequest, opts ...grpc.CallOption) (*DeleteResponse, error) 115 // Returns the object Headers without data payload. By default full header is 116 // returned. If `main_only` request field is set, the short header with only 117 // the very minimal information will be returned instead. 118 // 119 // Extended headers can change `Head` behaviour: 120 // * __NEOFS__NETMAP_EPOCH \ 121 // Will use the requsted version of Network Map for object placement 122 // calculation. 123 // 124 // Please refer to detailed `XHeader` description. 125 // 126 // Statuses: 127 // - **OK** (0, SECTION_SUCCESS): \ 128 // object header has been successfully read; 129 // - Common failures (SECTION_FAILURE_COMMON); 130 // - **ACCESS_DENIED** (2048, SECTION_OBJECT): \ 131 // access to operation HEAD of the object is denied; 132 // - **OBJECT_NOT_FOUND** (2049, SECTION_OBJECT): \ 133 // object not found in container; 134 // - **OBJECT_ALREADY_REMOVED** (2052, SECTION_OBJECT): \ 135 // the requested object has been marked as deleted; 136 // - **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER): \ 137 // object container not found; 138 // - **TOKEN_EXPIRED** (4097, SECTION_SESSION): \ 139 // provided session token has expired. 140 Head(ctx context.Context, in *HeadRequest, opts ...grpc.CallOption) (*HeadResponse, error) 141 // Search objects in container. Search query allows to match by Object 142 // Header's filed values. Please see the corresponding NeoFS Technical 143 // Specification section for more details. 144 // 145 // Extended headers can change `Search` behaviour: 146 // * __NEOFS__NETMAP_EPOCH \ 147 // Will use the requsted version of Network Map for object placement 148 // calculation. 149 // 150 // Please refer to detailed `XHeader` description. 151 // 152 // Statuses: 153 // - **OK** (0, SECTION_SUCCESS): \ 154 // objects have been successfully selected; 155 // - Common failures (SECTION_FAILURE_COMMON); 156 // - **ACCESS_DENIED** (2048, SECTION_OBJECT): \ 157 // access to operation SEARCH of the object is denied; 158 // - **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER): \ 159 // search container not found; 160 // - **TOKEN_EXPIRED** (4097, SECTION_SESSION): \ 161 // provided session token has expired. 162 Search(ctx context.Context, in *SearchRequest, opts ...grpc.CallOption) (ObjectService_SearchClient, error) 163 // Get byte range of data payload. Range is set as an (offset, length) tuple. 164 // Like in `Get` method, the response uses gRPC stream. Requested range can be 165 // restored by concatenation of all received payload chunks keeping the receiving 166 // order. 167 // 168 // Extended headers can change `GetRange` behaviour: 169 // * __NEOFS__NETMAP_EPOCH \ 170 // Will use the requsted version of Network Map for object placement 171 // calculation. 172 // * __NEOFS__NETMAP_LOOKUP_DEPTH \ 173 // Will try older versions of Network Map to find an object until the depth 174 // limit is reached. 175 // 176 // Please refer to detailed `XHeader` description. 177 // 178 // Statuses: 179 // - **OK** (0, SECTION_SUCCESS): \ 180 // data range of the object payload has been successfully read; 181 // - Common failures (SECTION_FAILURE_COMMON); 182 // - **ACCESS_DENIED** (2048, SECTION_OBJECT): \ 183 // access to operation RANGE of the object is denied; 184 // - **OBJECT_NOT_FOUND** (2049, SECTION_OBJECT): \ 185 // object not found in container; 186 // - **OBJECT_ALREADY_REMOVED** (2052, SECTION_OBJECT): \ 187 // the requested object has been marked as deleted. 188 // - **OUT_OF_RANGE** (2053, SECTION_OBJECT): \ 189 // the requested range is out of bounds; 190 // - **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER): \ 191 // object container not found; 192 // - **TOKEN_EXPIRED** (4097, SECTION_SESSION): \ 193 // provided session token has expired. 194 GetRange(ctx context.Context, in *GetRangeRequest, opts ...grpc.CallOption) (ObjectService_GetRangeClient, error) 195 // Returns homomorphic or regular hash of object's payload range after 196 // applying XOR operation with the provided `salt`. Ranges are set of (offset, 197 // length) tuples. Hashes order in response corresponds to the ranges order in 198 // the request. Note that hash is calculated for XORed data. 199 // 200 // Extended headers can change `GetRangeHash` behaviour: 201 // * __NEOFS__NETMAP_EPOCH \ 202 // Will use the requsted version of Network Map for object placement 203 // calculation. 204 // * __NEOFS__NETMAP_LOOKUP_DEPTH \ 205 // Will try older versions of Network Map to find an object until the depth 206 // limit is reached. 207 // 208 // Please refer to detailed `XHeader` description. 209 // 210 // Statuses: 211 // - **OK** (0, SECTION_SUCCESS): \ 212 // data range of the object payload has been successfully hashed; 213 // - Common failures (SECTION_FAILURE_COMMON); 214 // - **ACCESS_DENIED** (2048, SECTION_OBJECT): \ 215 // access to operation RANGEHASH of the object is denied; 216 // - **OBJECT_NOT_FOUND** (2049, SECTION_OBJECT): \ 217 // object not found in container; 218 // - **OUT_OF_RANGE** (2053, SECTION_OBJECT): \ 219 // the requested range is out of bounds; 220 // - **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER): \ 221 // object container not found; 222 // - **TOKEN_EXPIRED** (4097, SECTION_SESSION): \ 223 // provided session token has expired. 224 GetRangeHash(ctx context.Context, in *GetRangeHashRequest, opts ...grpc.CallOption) (*GetRangeHashResponse, error) 225 } 226 227 type objectServiceClient struct { 228 cc grpc.ClientConnInterface 229 } 230 231 func NewObjectServiceClient(cc grpc.ClientConnInterface) ObjectServiceClient { 232 return &objectServiceClient{cc} 233 } 234 235 func (c *objectServiceClient) Get(ctx context.Context, in *GetRequest, opts ...grpc.CallOption) (ObjectService_GetClient, error) { 236 stream, err := c.cc.NewStream(ctx, &ObjectService_ServiceDesc.Streams[0], "/neo.fs.v2.object.ObjectService/Get", opts...) 237 if err != nil { 238 return nil, err 239 } 240 x := &objectServiceGetClient{stream} 241 if err := x.ClientStream.SendMsg(in); err != nil { 242 return nil, err 243 } 244 if err := x.ClientStream.CloseSend(); err != nil { 245 return nil, err 246 } 247 return x, nil 248 } 249 250 type ObjectService_GetClient interface { 251 Recv() (*GetResponse, error) 252 grpc.ClientStream 253 } 254 255 type objectServiceGetClient struct { 256 grpc.ClientStream 257 } 258 259 func (x *objectServiceGetClient) Recv() (*GetResponse, error) { 260 m := new(GetResponse) 261 if err := x.ClientStream.RecvMsg(m); err != nil { 262 return nil, err 263 } 264 return m, nil 265 } 266 267 func (c *objectServiceClient) Put(ctx context.Context, opts ...grpc.CallOption) (ObjectService_PutClient, error) { 268 stream, err := c.cc.NewStream(ctx, &ObjectService_ServiceDesc.Streams[1], "/neo.fs.v2.object.ObjectService/Put", opts...) 269 if err != nil { 270 return nil, err 271 } 272 x := &objectServicePutClient{stream} 273 return x, nil 274 } 275 276 type ObjectService_PutClient interface { 277 Send(*PutRequest) error 278 CloseAndRecv() (*PutResponse, error) 279 grpc.ClientStream 280 } 281 282 type objectServicePutClient struct { 283 grpc.ClientStream 284 } 285 286 func (x *objectServicePutClient) Send(m *PutRequest) error { 287 return x.ClientStream.SendMsg(m) 288 } 289 290 func (x *objectServicePutClient) CloseAndRecv() (*PutResponse, error) { 291 if err := x.ClientStream.CloseSend(); err != nil { 292 return nil, err 293 } 294 m := new(PutResponse) 295 if err := x.ClientStream.RecvMsg(m); err != nil { 296 return nil, err 297 } 298 return m, nil 299 } 300 301 func (c *objectServiceClient) Delete(ctx context.Context, in *DeleteRequest, opts ...grpc.CallOption) (*DeleteResponse, error) { 302 out := new(DeleteResponse) 303 err := c.cc.Invoke(ctx, "/neo.fs.v2.object.ObjectService/Delete", in, out, opts...) 304 if err != nil { 305 return nil, err 306 } 307 return out, nil 308 } 309 310 func (c *objectServiceClient) Head(ctx context.Context, in *HeadRequest, opts ...grpc.CallOption) (*HeadResponse, error) { 311 out := new(HeadResponse) 312 err := c.cc.Invoke(ctx, "/neo.fs.v2.object.ObjectService/Head", in, out, opts...) 313 if err != nil { 314 return nil, err 315 } 316 return out, nil 317 } 318 319 func (c *objectServiceClient) Search(ctx context.Context, in *SearchRequest, opts ...grpc.CallOption) (ObjectService_SearchClient, error) { 320 stream, err := c.cc.NewStream(ctx, &ObjectService_ServiceDesc.Streams[2], "/neo.fs.v2.object.ObjectService/Search", opts...) 321 if err != nil { 322 return nil, err 323 } 324 x := &objectServiceSearchClient{stream} 325 if err := x.ClientStream.SendMsg(in); err != nil { 326 return nil, err 327 } 328 if err := x.ClientStream.CloseSend(); err != nil { 329 return nil, err 330 } 331 return x, nil 332 } 333 334 type ObjectService_SearchClient interface { 335 Recv() (*SearchResponse, error) 336 grpc.ClientStream 337 } 338 339 type objectServiceSearchClient struct { 340 grpc.ClientStream 341 } 342 343 func (x *objectServiceSearchClient) Recv() (*SearchResponse, error) { 344 m := new(SearchResponse) 345 if err := x.ClientStream.RecvMsg(m); err != nil { 346 return nil, err 347 } 348 return m, nil 349 } 350 351 func (c *objectServiceClient) GetRange(ctx context.Context, in *GetRangeRequest, opts ...grpc.CallOption) (ObjectService_GetRangeClient, error) { 352 stream, err := c.cc.NewStream(ctx, &ObjectService_ServiceDesc.Streams[3], "/neo.fs.v2.object.ObjectService/GetRange", opts...) 353 if err != nil { 354 return nil, err 355 } 356 x := &objectServiceGetRangeClient{stream} 357 if err := x.ClientStream.SendMsg(in); err != nil { 358 return nil, err 359 } 360 if err := x.ClientStream.CloseSend(); err != nil { 361 return nil, err 362 } 363 return x, nil 364 } 365 366 type ObjectService_GetRangeClient interface { 367 Recv() (*GetRangeResponse, error) 368 grpc.ClientStream 369 } 370 371 type objectServiceGetRangeClient struct { 372 grpc.ClientStream 373 } 374 375 func (x *objectServiceGetRangeClient) Recv() (*GetRangeResponse, error) { 376 m := new(GetRangeResponse) 377 if err := x.ClientStream.RecvMsg(m); err != nil { 378 return nil, err 379 } 380 return m, nil 381 } 382 383 func (c *objectServiceClient) GetRangeHash(ctx context.Context, in *GetRangeHashRequest, opts ...grpc.CallOption) (*GetRangeHashResponse, error) { 384 out := new(GetRangeHashResponse) 385 err := c.cc.Invoke(ctx, "/neo.fs.v2.object.ObjectService/GetRangeHash", in, out, opts...) 386 if err != nil { 387 return nil, err 388 } 389 return out, nil 390 } 391 392 // ObjectServiceServer is the server API for ObjectService service. 393 // All implementations should embed UnimplementedObjectServiceServer 394 // for forward compatibility 395 type ObjectServiceServer interface { 396 // Receive full object structure, including Headers and payload. Response uses 397 // gRPC stream. First response message carries the object with the requested address. 398 // Chunk messages are parts of the object's payload if it is needed. All 399 // messages, except the first one, carry payload chunks. The requested object can 400 // be restored by concatenation of object message payload and all chunks 401 // keeping the receiving order. 402 // 403 // Extended headers can change `Get` behaviour: 404 // * __NEOFS__NETMAP_EPOCH \ 405 // Will use the requsted version of Network Map for object placement 406 // calculation. 407 // * __NEOFS__NETMAP_LOOKUP_DEPTH \ 408 // Will try older versions (starting from `__NEOFS__NETMAP_EPOCH` if specified or 409 // the latest one otherwise) of Network Map to find an object until the depth 410 // limit is reached. 411 // 412 // Please refer to detailed `XHeader` description. 413 // 414 // Statuses: 415 // - **OK** (0, SECTION_SUCCESS): \ 416 // object has been successfully read; 417 // - Common failures (SECTION_FAILURE_COMMON); 418 // - **ACCESS_DENIED** (2048, SECTION_OBJECT): \ 419 // read access to the object is denied; 420 // - **OBJECT_NOT_FOUND** (2049, SECTION_OBJECT): \ 421 // object not found in container; 422 // - **OBJECT_ALREADY_REMOVED** (2052, SECTION_OBJECT): \ 423 // the requested object has been marked as deleted; 424 // - **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER): \ 425 // object container not found; 426 // - **TOKEN_EXPIRED** (4097, SECTION_SESSION): \ 427 // provided session token has expired. 428 Get(*GetRequest, ObjectService_GetServer) error 429 // Put the object into container. Request uses gRPC stream. First message 430 // SHOULD be of PutHeader type. `ContainerID` and `OwnerID` of an object 431 // SHOULD be set. Session token SHOULD be obtained before `PUT` operation (see 432 // session package). Chunk messages are considered by server as a part of an 433 // object payload. All messages, except first one, SHOULD be payload chunks. 434 // Chunk messages SHOULD be sent in the direct order of fragmentation. 435 // 436 // Extended headers can change `Put` behaviour: 437 // * __NEOFS__NETMAP_EPOCH \ 438 // Will use the requsted version of Network Map for object placement 439 // calculation. 440 // 441 // Please refer to detailed `XHeader` description. 442 // 443 // Statuses: 444 // - **OK** (0, SECTION_SUCCESS): \ 445 // object has been successfully saved in the container; 446 // - Common failures (SECTION_FAILURE_COMMON); 447 // - **ACCESS_DENIED** (2048, SECTION_OBJECT): \ 448 // write access to the container is denied; 449 // - **LOCKED** (2050, SECTION_OBJECT): \ 450 // placement of an object of type TOMBSTONE that includes at least one locked 451 // object is prohibited; 452 // - **LOCK_NON_REGULAR_OBJECT** (2051, SECTION_OBJECT): \ 453 // placement of an object of type LOCK that includes at least one object of 454 // type other than REGULAR is prohibited; 455 // - **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER): \ 456 // object storage container not found; 457 // - **TOKEN_NOT_FOUND** (4096, SECTION_SESSION): \ 458 // (for trusted object preparation) session private key does not exist or has 459 // been deleted; 460 // - **TOKEN_EXPIRED** (4097, SECTION_SESSION): \ 461 // provided session token has expired. 462 Put(ObjectService_PutServer) error 463 // Delete the object from a container. There is no immediate removal 464 // guarantee. Object will be marked for removal and deleted eventually. 465 // 466 // Extended headers can change `Delete` behaviour: 467 // * __NEOFS__NETMAP_EPOCH \ 468 // Will use the requsted version of Network Map for object placement 469 // calculation. 470 // 471 // Please refer to detailed `XHeader` description. 472 // 473 // Statuses: 474 // - **OK** (0, SECTION_SUCCESS): \ 475 // object has been successfully marked to be removed from the container; 476 // - Common failures (SECTION_FAILURE_COMMON); 477 // - **ACCESS_DENIED** (2048, SECTION_OBJECT): \ 478 // delete access to the object is denied; 479 // - **LOCKED** (2050, SECTION_OBJECT): \ 480 // deleting a locked object is prohibited; 481 // - **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER): \ 482 // object container not found; 483 // - **TOKEN_EXPIRED** (4097, SECTION_SESSION): \ 484 // provided session token has expired. 485 Delete(context.Context, *DeleteRequest) (*DeleteResponse, error) 486 // Returns the object Headers without data payload. By default full header is 487 // returned. If `main_only` request field is set, the short header with only 488 // the very minimal information will be returned instead. 489 // 490 // Extended headers can change `Head` behaviour: 491 // * __NEOFS__NETMAP_EPOCH \ 492 // Will use the requsted version of Network Map for object placement 493 // calculation. 494 // 495 // Please refer to detailed `XHeader` description. 496 // 497 // Statuses: 498 // - **OK** (0, SECTION_SUCCESS): \ 499 // object header has been successfully read; 500 // - Common failures (SECTION_FAILURE_COMMON); 501 // - **ACCESS_DENIED** (2048, SECTION_OBJECT): \ 502 // access to operation HEAD of the object is denied; 503 // - **OBJECT_NOT_FOUND** (2049, SECTION_OBJECT): \ 504 // object not found in container; 505 // - **OBJECT_ALREADY_REMOVED** (2052, SECTION_OBJECT): \ 506 // the requested object has been marked as deleted; 507 // - **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER): \ 508 // object container not found; 509 // - **TOKEN_EXPIRED** (4097, SECTION_SESSION): \ 510 // provided session token has expired. 511 Head(context.Context, *HeadRequest) (*HeadResponse, error) 512 // Search objects in container. Search query allows to match by Object 513 // Header's filed values. Please see the corresponding NeoFS Technical 514 // Specification section for more details. 515 // 516 // Extended headers can change `Search` behaviour: 517 // * __NEOFS__NETMAP_EPOCH \ 518 // Will use the requsted version of Network Map for object placement 519 // calculation. 520 // 521 // Please refer to detailed `XHeader` description. 522 // 523 // Statuses: 524 // - **OK** (0, SECTION_SUCCESS): \ 525 // objects have been successfully selected; 526 // - Common failures (SECTION_FAILURE_COMMON); 527 // - **ACCESS_DENIED** (2048, SECTION_OBJECT): \ 528 // access to operation SEARCH of the object is denied; 529 // - **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER): \ 530 // search container not found; 531 // - **TOKEN_EXPIRED** (4097, SECTION_SESSION): \ 532 // provided session token has expired. 533 Search(*SearchRequest, ObjectService_SearchServer) error 534 // Get byte range of data payload. Range is set as an (offset, length) tuple. 535 // Like in `Get` method, the response uses gRPC stream. Requested range can be 536 // restored by concatenation of all received payload chunks keeping the receiving 537 // order. 538 // 539 // Extended headers can change `GetRange` behaviour: 540 // * __NEOFS__NETMAP_EPOCH \ 541 // Will use the requsted version of Network Map for object placement 542 // calculation. 543 // * __NEOFS__NETMAP_LOOKUP_DEPTH \ 544 // Will try older versions of Network Map to find an object until the depth 545 // limit is reached. 546 // 547 // Please refer to detailed `XHeader` description. 548 // 549 // Statuses: 550 // - **OK** (0, SECTION_SUCCESS): \ 551 // data range of the object payload has been successfully read; 552 // - Common failures (SECTION_FAILURE_COMMON); 553 // - **ACCESS_DENIED** (2048, SECTION_OBJECT): \ 554 // access to operation RANGE of the object is denied; 555 // - **OBJECT_NOT_FOUND** (2049, SECTION_OBJECT): \ 556 // object not found in container; 557 // - **OBJECT_ALREADY_REMOVED** (2052, SECTION_OBJECT): \ 558 // the requested object has been marked as deleted. 559 // - **OUT_OF_RANGE** (2053, SECTION_OBJECT): \ 560 // the requested range is out of bounds; 561 // - **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER): \ 562 // object container not found; 563 // - **TOKEN_EXPIRED** (4097, SECTION_SESSION): \ 564 // provided session token has expired. 565 GetRange(*GetRangeRequest, ObjectService_GetRangeServer) error 566 // Returns homomorphic or regular hash of object's payload range after 567 // applying XOR operation with the provided `salt`. Ranges are set of (offset, 568 // length) tuples. Hashes order in response corresponds to the ranges order in 569 // the request. Note that hash is calculated for XORed data. 570 // 571 // Extended headers can change `GetRangeHash` behaviour: 572 // * __NEOFS__NETMAP_EPOCH \ 573 // Will use the requsted version of Network Map for object placement 574 // calculation. 575 // * __NEOFS__NETMAP_LOOKUP_DEPTH \ 576 // Will try older versions of Network Map to find an object until the depth 577 // limit is reached. 578 // 579 // Please refer to detailed `XHeader` description. 580 // 581 // Statuses: 582 // - **OK** (0, SECTION_SUCCESS): \ 583 // data range of the object payload has been successfully hashed; 584 // - Common failures (SECTION_FAILURE_COMMON); 585 // - **ACCESS_DENIED** (2048, SECTION_OBJECT): \ 586 // access to operation RANGEHASH of the object is denied; 587 // - **OBJECT_NOT_FOUND** (2049, SECTION_OBJECT): \ 588 // object not found in container; 589 // - **OUT_OF_RANGE** (2053, SECTION_OBJECT): \ 590 // the requested range is out of bounds; 591 // - **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER): \ 592 // object container not found; 593 // - **TOKEN_EXPIRED** (4097, SECTION_SESSION): \ 594 // provided session token has expired. 595 GetRangeHash(context.Context, *GetRangeHashRequest) (*GetRangeHashResponse, error) 596 } 597 598 // UnimplementedObjectServiceServer should be embedded to have forward compatible implementations. 599 type UnimplementedObjectServiceServer struct { 600 } 601 602 func (UnimplementedObjectServiceServer) Get(*GetRequest, ObjectService_GetServer) error { 603 return status.Errorf(codes.Unimplemented, "method Get not implemented") 604 } 605 func (UnimplementedObjectServiceServer) Put(ObjectService_PutServer) error { 606 return status.Errorf(codes.Unimplemented, "method Put not implemented") 607 } 608 func (UnimplementedObjectServiceServer) Delete(context.Context, *DeleteRequest) (*DeleteResponse, error) { 609 return nil, status.Errorf(codes.Unimplemented, "method Delete not implemented") 610 } 611 func (UnimplementedObjectServiceServer) Head(context.Context, *HeadRequest) (*HeadResponse, error) { 612 return nil, status.Errorf(codes.Unimplemented, "method Head not implemented") 613 } 614 func (UnimplementedObjectServiceServer) Search(*SearchRequest, ObjectService_SearchServer) error { 615 return status.Errorf(codes.Unimplemented, "method Search not implemented") 616 } 617 func (UnimplementedObjectServiceServer) GetRange(*GetRangeRequest, ObjectService_GetRangeServer) error { 618 return status.Errorf(codes.Unimplemented, "method GetRange not implemented") 619 } 620 func (UnimplementedObjectServiceServer) GetRangeHash(context.Context, *GetRangeHashRequest) (*GetRangeHashResponse, error) { 621 return nil, status.Errorf(codes.Unimplemented, "method GetRangeHash not implemented") 622 } 623 624 // UnsafeObjectServiceServer may be embedded to opt out of forward compatibility for this service. 625 // Use of this interface is not recommended, as added methods to ObjectServiceServer will 626 // result in compilation errors. 627 type UnsafeObjectServiceServer interface { 628 mustEmbedUnimplementedObjectServiceServer() 629 } 630 631 func RegisterObjectServiceServer(s grpc.ServiceRegistrar, srv ObjectServiceServer) { 632 s.RegisterService(&ObjectService_ServiceDesc, srv) 633 } 634 635 func _ObjectService_Get_Handler(srv interface{}, stream grpc.ServerStream) error { 636 m := new(GetRequest) 637 if err := stream.RecvMsg(m); err != nil { 638 return err 639 } 640 return srv.(ObjectServiceServer).Get(m, &objectServiceGetServer{stream}) 641 } 642 643 type ObjectService_GetServer interface { 644 Send(*GetResponse) error 645 grpc.ServerStream 646 } 647 648 type objectServiceGetServer struct { 649 grpc.ServerStream 650 } 651 652 func (x *objectServiceGetServer) Send(m *GetResponse) error { 653 return x.ServerStream.SendMsg(m) 654 } 655 656 func _ObjectService_Put_Handler(srv interface{}, stream grpc.ServerStream) error { 657 return srv.(ObjectServiceServer).Put(&objectServicePutServer{stream}) 658 } 659 660 type ObjectService_PutServer interface { 661 SendAndClose(*PutResponse) error 662 Recv() (*PutRequest, error) 663 grpc.ServerStream 664 } 665 666 type objectServicePutServer struct { 667 grpc.ServerStream 668 } 669 670 func (x *objectServicePutServer) SendAndClose(m *PutResponse) error { 671 return x.ServerStream.SendMsg(m) 672 } 673 674 func (x *objectServicePutServer) Recv() (*PutRequest, error) { 675 m := new(PutRequest) 676 if err := x.ServerStream.RecvMsg(m); err != nil { 677 return nil, err 678 } 679 return m, nil 680 } 681 682 func _ObjectService_Delete_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 683 in := new(DeleteRequest) 684 if err := dec(in); err != nil { 685 return nil, err 686 } 687 if interceptor == nil { 688 return srv.(ObjectServiceServer).Delete(ctx, in) 689 } 690 info := &grpc.UnaryServerInfo{ 691 Server: srv, 692 FullMethod: "/neo.fs.v2.object.ObjectService/Delete", 693 } 694 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 695 return srv.(ObjectServiceServer).Delete(ctx, req.(*DeleteRequest)) 696 } 697 return interceptor(ctx, in, info, handler) 698 } 699 700 func _ObjectService_Head_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 701 in := new(HeadRequest) 702 if err := dec(in); err != nil { 703 return nil, err 704 } 705 if interceptor == nil { 706 return srv.(ObjectServiceServer).Head(ctx, in) 707 } 708 info := &grpc.UnaryServerInfo{ 709 Server: srv, 710 FullMethod: "/neo.fs.v2.object.ObjectService/Head", 711 } 712 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 713 return srv.(ObjectServiceServer).Head(ctx, req.(*HeadRequest)) 714 } 715 return interceptor(ctx, in, info, handler) 716 } 717 718 func _ObjectService_Search_Handler(srv interface{}, stream grpc.ServerStream) error { 719 m := new(SearchRequest) 720 if err := stream.RecvMsg(m); err != nil { 721 return err 722 } 723 return srv.(ObjectServiceServer).Search(m, &objectServiceSearchServer{stream}) 724 } 725 726 type ObjectService_SearchServer interface { 727 Send(*SearchResponse) error 728 grpc.ServerStream 729 } 730 731 type objectServiceSearchServer struct { 732 grpc.ServerStream 733 } 734 735 func (x *objectServiceSearchServer) Send(m *SearchResponse) error { 736 return x.ServerStream.SendMsg(m) 737 } 738 739 func _ObjectService_GetRange_Handler(srv interface{}, stream grpc.ServerStream) error { 740 m := new(GetRangeRequest) 741 if err := stream.RecvMsg(m); err != nil { 742 return err 743 } 744 return srv.(ObjectServiceServer).GetRange(m, &objectServiceGetRangeServer{stream}) 745 } 746 747 type ObjectService_GetRangeServer interface { 748 Send(*GetRangeResponse) error 749 grpc.ServerStream 750 } 751 752 type objectServiceGetRangeServer struct { 753 grpc.ServerStream 754 } 755 756 func (x *objectServiceGetRangeServer) Send(m *GetRangeResponse) error { 757 return x.ServerStream.SendMsg(m) 758 } 759 760 func _ObjectService_GetRangeHash_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 761 in := new(GetRangeHashRequest) 762 if err := dec(in); err != nil { 763 return nil, err 764 } 765 if interceptor == nil { 766 return srv.(ObjectServiceServer).GetRangeHash(ctx, in) 767 } 768 info := &grpc.UnaryServerInfo{ 769 Server: srv, 770 FullMethod: "/neo.fs.v2.object.ObjectService/GetRangeHash", 771 } 772 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 773 return srv.(ObjectServiceServer).GetRangeHash(ctx, req.(*GetRangeHashRequest)) 774 } 775 return interceptor(ctx, in, info, handler) 776 } 777 778 // ObjectService_ServiceDesc is the grpc.ServiceDesc for ObjectService service. 779 // It's only intended for direct use with grpc.RegisterService, 780 // and not to be introspected or modified (even as a copy) 781 var ObjectService_ServiceDesc = grpc.ServiceDesc{ 782 ServiceName: "neo.fs.v2.object.ObjectService", 783 HandlerType: (*ObjectServiceServer)(nil), 784 Methods: []grpc.MethodDesc{ 785 { 786 MethodName: "Delete", 787 Handler: _ObjectService_Delete_Handler, 788 }, 789 { 790 MethodName: "Head", 791 Handler: _ObjectService_Head_Handler, 792 }, 793 { 794 MethodName: "GetRangeHash", 795 Handler: _ObjectService_GetRangeHash_Handler, 796 }, 797 }, 798 Streams: []grpc.StreamDesc{ 799 { 800 StreamName: "Get", 801 Handler: _ObjectService_Get_Handler, 802 ServerStreams: true, 803 }, 804 { 805 StreamName: "Put", 806 Handler: _ObjectService_Put_Handler, 807 ClientStreams: true, 808 }, 809 { 810 StreamName: "Search", 811 Handler: _ObjectService_Search_Handler, 812 ServerStreams: true, 813 }, 814 { 815 StreamName: "GetRange", 816 Handler: _ObjectService_GetRange_Handler, 817 ServerStreams: true, 818 }, 819 }, 820 Metadata: "object/grpc/service.proto", 821 }