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
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
- `CONTAINER_AWAIT_TIMEOUT` status (#358)
- `SetAttribute` and `RemoveAttribute` RPC to `ContainerService` (#362)
- `SETATTRIBUTE` and `REMOVEATTRIBUTE` verbs for container sessions V1 (#362)
- Container `S3_TAGS`, `S3_SETTINGS`, `S3_NOTIFICATIONS` attributes (#371)

### Changed
- `ContainerService`'s `Put`, `Delete` and `SetExtendedACL` RPC are async/await now (#358)
Expand Down
9 changes: 9 additions & 0 deletions container/service.proto
Original file line number Diff line number Diff line change
Expand Up @@ -478,11 +478,17 @@ message SetAttributeRequest {
//
// `attribute` must be one of:
// - `CORS`;
// - `S3_TAGS`;
// - `S3_SETTINGS`;
// - `S3_NOTIFICATIONS`;
// - `__NEOFS__LOCK_UNTIL`.
//
// In general, requirements for `value` are the same as for container
// creation. Attribute-specific requirements:
// - `__NEOFS__LOCK_UNTIL`: new timestamp must be after the current one if any
// - `S3_TAGS`: must be a valid JSON object
// - `S3_SETTINGS`: must be a valid JSON object
// - `S3_NOTIFICATIONS`: must be a valid JSON object
message Parameters {
// Identifier of the container to set attribute for.
neo.fs.v2.refs.ContainerID container_id = 1;
Expand Down Expand Up @@ -554,6 +560,9 @@ message RemoveAttributeRequest {
//
// `attribute` must be one of:
// - `CORS`;
// - `S3_TAGS`;
// - `S3_SETTINGS`;
// - `S3_NOTIFICATIONS`;
// - `__NEOFS__LOCK_UNTIL`.
//
// Attribute-specific requirements:
Expand Down
9 changes: 9 additions & 0 deletions container/types.proto
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,15 @@ message Container {
//
// The CORS schema is based on Amazon S3 CORS (https://docs.aws.amazon.com/AmazonS3/latest/userguide/cors.html)
// configuration.
// * S3_TAGS \
// It is used to store S3 gate-specific container tags. The value is controlled by the gate itself.
// Despite it, the value must be valid JSON object.
// * S3_SETTINGS \
// It is used to store S3 gate-specific container settings. The value is controlled by the gate itself.
// Despite it, the value must be valid JSON object.
// * S3_NOTIFICATIONS \
// It is used to store S3 gate-specific container notification settings. The value is controlled by the gate itself.
// Despite it, the value must be valid JSON object.
message Attribute {
// Attribute name key
string key = 1 [json_name = "key"];
Expand Down
18 changes: 18 additions & 0 deletions proto-docs/container.md
Original file line number Diff line number Diff line change
Expand Up @@ -599,6 +599,9 @@ format.

`attribute` must be one of:
- `CORS`;
- `S3_TAGS`;
- `S3_SETTINGS`;
- `S3_NOTIFICATIONS`;
- `__NEOFS__LOCK_UNTIL`.

Attribute-specific requirements:
Expand Down Expand Up @@ -674,11 +677,17 @@ format.

`attribute` must be one of:
- `CORS`;
- `S3_TAGS`;
- `S3_SETTINGS`;
- `S3_NOTIFICATIONS`;
- `__NEOFS__LOCK_UNTIL`.

In general, requirements for `value` are the same as for container
creation. Attribute-specific requirements:
- `__NEOFS__LOCK_UNTIL`: new timestamp must be after the current one if any
- `S3_TAGS`: must be a valid JSON object
- `S3_SETTINGS`: must be a valid JSON object
- `S3_NOTIFICATIONS`: must be a valid JSON object


| Field | Type | Label | Description |
Expand Down Expand Up @@ -865,6 +874,15 @@ And some well-known attributes used by applications only:

The CORS schema is based on Amazon S3 CORS (https://docs.aws.amazon.com/AmazonS3/latest/userguide/cors.html)
configuration.
* S3_TAGS \
It is used to store S3 gate-specific container tags. The value is controlled by the gate itself.
Despite it, the value must be valid JSON object.
* S3_SETTINGS \
It is used to store S3 gate-specific container settings. The value is controlled by the gate itself.
Despite it, the value must be valid JSON object.
* S3_NOTIFICATIONS \
It is used to store S3 gate-specific container notification settings. The value is controlled by the gate itself.
Despite it, the value must be valid JSON object.


| Field | Type | Label | Description |
Expand Down