* Add a new status CONTAINER_ACCESS_DENIED.
* Fix descriptions for methods of container and object services.
* Also regenerate md docs.
Signed-off-by: Airat Arifullin <aarifullin@yadro.com>
FilePath attribute is already used by S3 and HTTP protocol gateways.
Also seen in [Gaspump](https://github.com/configwizard/gaspump-api/).
Signed-off-by: Stanislav Bogatyrev <stanislav@nspcc.ru>
Add `OBJECT_ALREADY_REMOVED` value to `Object` enumeration. Return this
status from object GET/HEAD/RANGE operations.
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
Define `object.Lock` message which carries list of locked objects.
Require this message to be a payload of locked objects (`LOCK` type).
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
Add `status.Object` section for object failures. Add `LOCKED` and
`LOCK_NON_REGULAR_OBJECT` codes to it. Return these codes from `Put` and
`Delete` RPCs of `ObjectService`.
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
NeoFS introduces object LOCKs - a mechanism for locking an object from,
for example, deletion. Object locks are implemented and stored in the
container as objects, so there is a need to define a new type of system
objects.
Add `LOCK` value to `ObjectType` enum.
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
Default string presentations of enums in protobuf are the same
as definitions. In our case it is going to be UPPER_SNAKE_CASE
string constants. Default presentation is easier to maintain.
Signed-off-by: Alex Vanin <alexey@nspcc.ru>
Neo3 Oracles need a way to check object's MIME content type, as
described in neo-project/neo-modules#555.
The proposal was to add Content-Type as a well-known attribute.
Signed-off-by: Stanislav Bogatyrev <stanislav@nspcc.ru>
It may be confusing for the user to get all types of objects as the
result of a search with no filters set. Human users may expect to see
only the objects intended for direct manipulation by humans.
Signed-off-by: Stanislav Bogatyrev <stanislav@nspcc.ru>
The behavior of the node when processing system search filters with match
type NOT_PRESENT is declared undefined.
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
All types of attribute keys must be unique and can't be repeated in the same
entity.
- Containers with duplicated attribute keys must not be accepted by InnerRing on
creation.
- Nodes with duplicated attribute keys can't be accepted to NetMap by InnerRing
- Objects with duplicated attribute keys must be considered invalid and not
accepted in PUT operations
Signed-off-by: Stanislav Bogatyrev <stanislav@nspcc.ru>
Raw flag used to get range of physically stored objects and
ignoring split objects. In case of split object node should
return SplitInfo message.
Signed-off-by: Alex Vanin <alexey@nspcc.ru>
SplitInfo structure from split_info field contains meta information
to assembly the object that has been split into parts.
Signed-off-by: Alex Vanin <alexey@nspcc.ru>
- Define payload structure for Tombstone object type.
- Return address of the created TS on object delete. Useful for testing
Signed-off-by: Stanislav Bogatyrev <stanislav@nspcc.ru>
In case there is a need to set flag-like attributes, the value should be set to
something like `true` or `1`.
Signed-off-by: Stanislav Bogatyrev <stanislav@nspcc.ru>
In some cases like nspcc-dev/neofs-node#167 there is no simple way to identify
where does the object part belongs to. Adding `split_id` as the required field
will simplify split object processing.
Signed-off-by: Stanislav Bogatyrev <stanislav@nspcc.ru>
* It's expected by app developers that ROOT filter will return the list of objects
created by user, without supplementary objects like split object parts,
tombstones and storage groups.
* Rename LEAF to PHY as it's purpose it to return physically existing objects.
Signed-off-by: Stanislav Bogatyrev <stanislav@nspcc.ru>