frostfs-rest-gw/gen/restapi/embedded_spec.go
Denis Kirillov 33923a27c3 [#1] Add routes to manage container eacl
Signed-off-by: Denis Kirillov <denis@nspcc.ru>
2022-04-29 10:20:37 +03:00

1590 lines
37 KiB
Go

// Code generated by go-swagger; DO NOT EDIT.
package restapi
// This file was generated by the swagger tool.
// Editing this file might prove futile when you re-run the swagger generate command
import (
"encoding/json"
)
var (
// SwaggerJSON embedded version of the swagger document used at generation time
SwaggerJSON json.RawMessage
// FlatSwaggerJSON embedded flattened version of the swagger document used at generation time
FlatSwaggerJSON json.RawMessage
)
func init() {
SwaggerJSON = json.RawMessage([]byte(`{
"schemes": [
"http"
],
"swagger": "2.0",
"info": {
"description": "REST API NeoFS",
"title": "REST API NeoFS",
"version": "v1"
},
"host": "localhost:8090",
"basePath": "/v1",
"paths": {
"/auth": {
"post": {
"security": [],
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"summary": "Form bearer token to futher requests",
"operationId": "auth",
"parameters": [
{
"enum": [
"object",
"container"
],
"type": "string",
"description": "Supported operation scope for token",
"name": "X-Neofs-Token-Scope",
"in": "header",
"required": true
},
{
"type": "string",
"description": "Public key of user",
"name": "X-Neofs-Token-Signature-Key",
"in": "header",
"required": true
},
{
"type": "integer",
"default": 100,
"description": "Token lifetime in epoch",
"name": "X-Neofs-Token-Lifetime",
"in": "header"
},
{
"description": "Bearer token",
"name": "token",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/Bearer"
}
}
],
"responses": {
"200": {
"description": "Base64 encoded stable binary marshaled bearer token",
"schema": {
"$ref": "#/definitions/TokenResponse"
}
},
"400": {
"description": "Bad request",
"schema": {
"$ref": "#/definitions/Error"
}
}
}
}
},
"/containers": {
"put": {
"summary": "Create new container in NeoFS",
"operationId": "putContainer",
"parameters": [
{
"type": "boolean",
"default": false,
"description": "Provide this parameter to skip registration container name in NNS service",
"name": "skip-native-name",
"in": "query"
},
{
"description": "Container info",
"name": "container",
"in": "body",
"required": true,
"schema": {
"type": "object",
"required": [
"containerName"
],
"properties": {
"basicAcl": {
"type": "string"
},
"containerName": {
"type": "string"
},
"placementPolicy": {
"type": "string"
}
},
"example": {
"basicAcl": "public-read-write",
"containerId": "container",
"placementPolicy": "REP 3"
}
}
}
],
"responses": {
"200": {
"description": "Address of uploaded objects",
"schema": {
"type": "object",
"required": [
"containerId"
],
"properties": {
"containerId": {
"type": "string"
}
},
"example": {
"containerId": "5HZTn5qkRnmgSz9gSrw22CEdPPk6nQhkwf2Mgzyvkikv"
}
}
},
"400": {
"description": "Bad request",
"schema": {
"$ref": "#/definitions/Error"
}
}
}
},
"parameters": [
{
"$ref": "#/parameters/signatureParam"
},
{
"$ref": "#/parameters/signatureKeyParam"
}
]
},
"/containers/{containerId}": {
"get": {
"security": [],
"summary": "Get container by id",
"operationId": "getContainer",
"responses": {
"200": {
"description": "Container info",
"schema": {
"$ref": "#/definitions/ContainerInfo"
}
},
"400": {
"description": "Bad request",
"schema": {
"$ref": "#/definitions/Error"
}
}
}
},
"delete": {
"summary": "Delete container by id",
"operationId": "deleteContainer",
"parameters": [
{
"$ref": "#/parameters/signatureParam"
},
{
"$ref": "#/parameters/signatureKeyParam"
}
],
"responses": {
"204": {
"description": "Successul deletion"
},
"400": {
"description": "Bad request",
"schema": {
"$ref": "#/definitions/Error"
}
}
}
},
"parameters": [
{
"$ref": "#/parameters/containerId"
}
]
},
"/containers/{containerId}/eacl": {
"get": {
"security": [],
"summary": "Get container EACL by id",
"operationId": "getContainerEACL",
"responses": {
"200": {
"description": "Container EACL information",
"schema": {
"$ref": "#/definitions/Eacl"
}
},
"400": {
"description": "Bad request",
"schema": {
"$ref": "#/definitions/Error"
}
}
}
},
"put": {
"summary": "Set container EACL by id",
"operationId": "putContainerEACL",
"parameters": [
{
"$ref": "#/parameters/signatureParam"
},
{
"$ref": "#/parameters/signatureKeyParam"
},
{
"description": "EACL for container",
"name": "eacl",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/Eacl"
}
}
],
"responses": {
"200": {
"description": "Successfule EACL upading"
},
"400": {
"description": "Bad request",
"schema": {
"$ref": "#/definitions/Error"
}
}
}
},
"parameters": [
{
"$ref": "#/parameters/containerId"
}
]
},
"/objects": {
"put": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"summary": "Upload object to NeoFS",
"operationId": "putObject",
"parameters": [
{
"description": "Object info to upload",
"name": "object",
"in": "body",
"required": true,
"schema": {
"type": "object",
"required": [
"containerId",
"fileName"
],
"properties": {
"containerId": {
"type": "string"
},
"fileName": {
"type": "string"
},
"payload": {
"type": "string"
}
},
"example": {
"containerId": "5HZTn5qkRnmgSz9gSrw22CEdPPk6nQhkwf2Mgzyvkikv",
"fileName": "myFile.txt",
"payload": "Y29udGVudCBvZiBmaWxl"
}
}
}
],
"responses": {
"200": {
"description": "Address of uploaded objects",
"schema": {
"type": "object",
"required": [
"objectId",
"containerId"
],
"properties": {
"containerId": {
"type": "string"
},
"objectId": {
"type": "string"
}
},
"example": {
"containerId": "5HZTn5qkRnmgSz9gSrw22CEdPPk6nQhkwf2Mgzyvkikv",
"objectId": "8N3o7Dtr6T1xteCt6eRwhpmJ7JhME58Hyu1dvaswuTDd"
}
}
},
"400": {
"description": "Bad request",
"schema": {
"$ref": "#/definitions/Error"
}
}
}
},
"parameters": [
{
"$ref": "#/parameters/signatureParam"
},
{
"$ref": "#/parameters/signatureKeyParam"
}
]
},
"/objects/{containerId}/{objectId}": {
"get": {
"summary": "Get object info by address and",
"operationId": "getObjectInfo",
"responses": {
"200": {
"description": "Object info",
"schema": {
"$ref": "#/definitions/ObjectInfo"
}
},
"400": {
"description": "Bad request",
"schema": {
"$ref": "#/definitions/Error"
}
}
}
},
"parameters": [
{
"$ref": "#/parameters/signatureParam"
},
{
"$ref": "#/parameters/signatureKeyParam"
},
{
"$ref": "#/parameters/containerId"
},
{
"type": "string",
"description": "Base58 encoded object id",
"name": "objectId",
"in": "path",
"required": true
}
]
}
},
"definitions": {
"Action": {
"type": "string",
"enum": [
"ALLOW",
"DENY"
]
},
"Attribute": {
"type": "object",
"required": [
"key",
"value"
],
"properties": {
"key": {
"type": "string"
},
"value": {
"type": "string"
}
}
},
"Bearer": {
"type": "object",
"properties": {
"container": {
"$ref": "#/definitions/Rule"
},
"object": {
"type": "array",
"items": {
"$ref": "#/definitions/Record"
}
}
}
},
"ContainerInfo": {
"type": "object",
"required": [
"containerId",
"version",
"ownerId",
"basicAcl",
"placementPolicy",
"attributes"
],
"properties": {
"attributes": {
"type": "array",
"items": {
"$ref": "#/definitions/Attribute"
}
},
"basicAcl": {
"type": "string"
},
"containerId": {
"type": "string"
},
"ownerId": {
"type": "string"
},
"placementPolicy": {
"type": "string"
},
"version": {
"type": "string"
}
},
"example": {
"attribute": [
{
"key": "Timestamp",
"value": "1648810072"
},
{
"key": "Name",
"value": "container"
}
],
"basicAcl": "0x1fbf9fff",
"containerId": "5HZTn5qkRnmgSz9gSrw22CEdPPk6nQhkwf2Mgzyvkikv",
"ownerId": "NbUgTSFvPmsRxmGeWpuuGeJUoRoi6PErcM",
"placementPolicy": "REP 2",
"version": "2.11"
}
},
"Eacl": {
"type": "object",
"required": [
"records"
],
"properties": {
"containerId": {
"type": "string",
"readOnly": true
},
"records": {
"type": "array",
"items": {
"$ref": "#/definitions/Record"
}
}
}
},
"Error": {
"type": "string"
},
"Filter": {
"type": "object",
"required": [
"headerType",
"matchType",
"key",
"value"
],
"properties": {
"headerType": {
"$ref": "#/definitions/HeaderType"
},
"key": {
"type": "string"
},
"matchType": {
"$ref": "#/definitions/MatchType"
},
"value": {
"type": "string"
}
},
"example": {
"headerType": "OBJECT",
"key": "FileName",
"matchType": "STRING_NOT_EQUAL",
"value": "myfile"
}
},
"HeaderType": {
"type": "string",
"enum": [
"REQUEST",
"OBJECT",
"SERVICE"
]
},
"MatchType": {
"type": "string",
"enum": [
"STRING_EQUAL",
"STRING_NOT_EQUAL"
]
},
"ObjectInfo": {
"type": "object",
"required": [
"containerId",
"objectId",
"ownerId",
"attributes"
],
"properties": {
"attributes": {
"type": "array",
"items": {
"$ref": "#/definitions/Attribute"
}
},
"containerId": {
"type": "string"
},
"objectId": {
"type": "string"
},
"ownerId": {
"type": "string"
}
},
"example": {
"attribute": [
{
"key": "Timestamp",
"value": "1648810072"
},
{
"key": "Name",
"value": "object"
}
],
"containerId": "5HZTn5qkRnmgSz9gSrw22CEdPPk6nQhkwf2Mgzyvkikv",
"objectId": "8N3o7Dtr6T1xteCt6eRwhpmJ7JhME58Hyu1dvaswuTDd",
"ownerId": "NbUgTSFvPmsRxmGeWpuuGeJUoRoi6PErcM"
}
},
"Operation": {
"type": "string",
"enum": [
"GET",
"HEAD",
"PUT",
"DELETE",
"SEARCH",
"RANGE",
"RANGEHASH"
]
},
"Principal": {
"type": "string"
},
"Record": {
"type": "object",
"required": [
"action",
"operation",
"filters",
"targets"
],
"properties": {
"action": {
"$ref": "#/definitions/Action"
},
"filters": {
"type": "array",
"items": {
"$ref": "#/definitions/Filter"
}
},
"operation": {
"$ref": "#/definitions/Operation"
},
"targets": {
"type": "array",
"items": {
"$ref": "#/definitions/Target"
}
}
},
"example": {
"action": "ALLOW",
"filters": null,
"operation": "GET",
"targets": [
{
"keys": null,
"role": "OTHERS"
}
]
}
},
"Role": {
"type": "string",
"enum": [
"USER",
"SYSTEM",
"OTHERS"
]
},
"Rule": {
"type": "object",
"required": [
"verb"
],
"properties": {
"containerId": {
"type": "string"
},
"verb": {
"$ref": "#/definitions/Verb"
}
}
},
"Target": {
"type": "object",
"required": [
"role",
"keys"
],
"properties": {
"keys": {
"type": "array",
"items": {
"type": "string"
}
},
"role": {
"$ref": "#/definitions/Role"
}
},
"example": {
"keys": [
"021dc56fc6d81d581ae7605a8e00e0e0bab6cbad566a924a527339475a97a8e38e"
],
"role": "USER"
}
},
"TokenResponse": {
"type": "object",
"required": [
"type",
"token"
],
"properties": {
"token": {
"type": "string"
},
"type": {
"$ref": "#/definitions/TokenType"
}
},
"example": [
{
"token": "sometoken-todo-add",
"type": "object"
},
{
"token": "ChCpanIBJCpJuJz42KOmGMSnEhsKGTWquaX2Lq6GhhO4faOYkLD0f9WkXuYJlq4aBAhnGAMiIQJgFcIEghQB5lq3AJZOVswInwc1IGhlQ7NCUh4DFO3UATIECAEQAQ==",
"type": "container"
}
]
},
"TokenType": {
"type": "string",
"enum": [
"object",
"container"
]
},
"Verb": {
"type": "string",
"enum": [
"PUT",
"DELETE",
"SETEACL"
]
}
},
"parameters": {
"containerId": {
"type": "string",
"description": "Base58 encoded container id",
"name": "containerId",
"in": "path",
"required": true
},
"ojectId": {
"type": "string",
"description": "Base58 encoded object id",
"name": "objectId",
"in": "path",
"required": true
},
"signatureKeyParam": {
"type": "string",
"description": "Hex encoded the public part of the key that signed the bearer token",
"name": "X-Neofs-Token-Signature-Key",
"in": "header",
"required": true
},
"signatureParam": {
"type": "string",
"description": "Base64 encoded signature for bearer token",
"name": "X-Neofs-Token-Signature",
"in": "header",
"required": true
}
},
"securityDefinitions": {
"BearerAuth": {
"description": "Bearer token body to provide with NeoFS request. Must have 'Bearer ' prefix.",
"type": "apiKey",
"name": "Authorization",
"in": "header"
}
},
"security": [
{
"BearerAuth": []
}
]
}`))
FlatSwaggerJSON = json.RawMessage([]byte(`{
"schemes": [
"http"
],
"swagger": "2.0",
"info": {
"description": "REST API NeoFS",
"title": "REST API NeoFS",
"version": "v1"
},
"host": "localhost:8090",
"basePath": "/v1",
"paths": {
"/auth": {
"post": {
"security": [],
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"summary": "Form bearer token to futher requests",
"operationId": "auth",
"parameters": [
{
"enum": [
"object",
"container"
],
"type": "string",
"description": "Supported operation scope for token",
"name": "X-Neofs-Token-Scope",
"in": "header",
"required": true
},
{
"type": "string",
"description": "Public key of user",
"name": "X-Neofs-Token-Signature-Key",
"in": "header",
"required": true
},
{
"type": "integer",
"default": 100,
"description": "Token lifetime in epoch",
"name": "X-Neofs-Token-Lifetime",
"in": "header"
},
{
"description": "Bearer token",
"name": "token",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/Bearer"
}
}
],
"responses": {
"200": {
"description": "Base64 encoded stable binary marshaled bearer token",
"schema": {
"$ref": "#/definitions/TokenResponse"
}
},
"400": {
"description": "Bad request",
"schema": {
"$ref": "#/definitions/Error"
}
}
}
}
},
"/containers": {
"put": {
"summary": "Create new container in NeoFS",
"operationId": "putContainer",
"parameters": [
{
"type": "boolean",
"default": false,
"description": "Provide this parameter to skip registration container name in NNS service",
"name": "skip-native-name",
"in": "query"
},
{
"description": "Container info",
"name": "container",
"in": "body",
"required": true,
"schema": {
"type": "object",
"required": [
"containerName"
],
"properties": {
"basicAcl": {
"type": "string"
},
"containerName": {
"type": "string"
},
"placementPolicy": {
"type": "string"
}
},
"example": {
"basicAcl": "public-read-write",
"containerId": "container",
"placementPolicy": "REP 3"
}
}
}
],
"responses": {
"200": {
"description": "Address of uploaded objects",
"schema": {
"type": "object",
"required": [
"containerId"
],
"properties": {
"containerId": {
"type": "string"
}
},
"example": {
"containerId": "5HZTn5qkRnmgSz9gSrw22CEdPPk6nQhkwf2Mgzyvkikv"
}
}
},
"400": {
"description": "Bad request",
"schema": {
"$ref": "#/definitions/Error"
}
}
}
},
"parameters": [
{
"type": "string",
"description": "Base64 encoded signature for bearer token",
"name": "X-Neofs-Token-Signature",
"in": "header",
"required": true
},
{
"type": "string",
"description": "Hex encoded the public part of the key that signed the bearer token",
"name": "X-Neofs-Token-Signature-Key",
"in": "header",
"required": true
}
]
},
"/containers/{containerId}": {
"get": {
"security": [],
"summary": "Get container by id",
"operationId": "getContainer",
"responses": {
"200": {
"description": "Container info",
"schema": {
"$ref": "#/definitions/ContainerInfo"
}
},
"400": {
"description": "Bad request",
"schema": {
"$ref": "#/definitions/Error"
}
}
}
},
"delete": {
"summary": "Delete container by id",
"operationId": "deleteContainer",
"parameters": [
{
"type": "string",
"description": "Base64 encoded signature for bearer token",
"name": "X-Neofs-Token-Signature",
"in": "header",
"required": true
},
{
"type": "string",
"description": "Hex encoded the public part of the key that signed the bearer token",
"name": "X-Neofs-Token-Signature-Key",
"in": "header",
"required": true
}
],
"responses": {
"204": {
"description": "Successul deletion"
},
"400": {
"description": "Bad request",
"schema": {
"$ref": "#/definitions/Error"
}
}
}
},
"parameters": [
{
"type": "string",
"description": "Base58 encoded container id",
"name": "containerId",
"in": "path",
"required": true
}
]
},
"/containers/{containerId}/eacl": {
"get": {
"security": [],
"summary": "Get container EACL by id",
"operationId": "getContainerEACL",
"responses": {
"200": {
"description": "Container EACL information",
"schema": {
"$ref": "#/definitions/Eacl"
}
},
"400": {
"description": "Bad request",
"schema": {
"$ref": "#/definitions/Error"
}
}
}
},
"put": {
"summary": "Set container EACL by id",
"operationId": "putContainerEACL",
"parameters": [
{
"type": "string",
"description": "Base64 encoded signature for bearer token",
"name": "X-Neofs-Token-Signature",
"in": "header",
"required": true
},
{
"type": "string",
"description": "Hex encoded the public part of the key that signed the bearer token",
"name": "X-Neofs-Token-Signature-Key",
"in": "header",
"required": true
},
{
"description": "EACL for container",
"name": "eacl",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/Eacl"
}
}
],
"responses": {
"200": {
"description": "Successfule EACL upading"
},
"400": {
"description": "Bad request",
"schema": {
"$ref": "#/definitions/Error"
}
}
}
},
"parameters": [
{
"type": "string",
"description": "Base58 encoded container id",
"name": "containerId",
"in": "path",
"required": true
}
]
},
"/objects": {
"put": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"summary": "Upload object to NeoFS",
"operationId": "putObject",
"parameters": [
{
"description": "Object info to upload",
"name": "object",
"in": "body",
"required": true,
"schema": {
"type": "object",
"required": [
"containerId",
"fileName"
],
"properties": {
"containerId": {
"type": "string"
},
"fileName": {
"type": "string"
},
"payload": {
"type": "string"
}
},
"example": {
"containerId": "5HZTn5qkRnmgSz9gSrw22CEdPPk6nQhkwf2Mgzyvkikv",
"fileName": "myFile.txt",
"payload": "Y29udGVudCBvZiBmaWxl"
}
}
}
],
"responses": {
"200": {
"description": "Address of uploaded objects",
"schema": {
"type": "object",
"required": [
"objectId",
"containerId"
],
"properties": {
"containerId": {
"type": "string"
},
"objectId": {
"type": "string"
}
},
"example": {
"containerId": "5HZTn5qkRnmgSz9gSrw22CEdPPk6nQhkwf2Mgzyvkikv",
"objectId": "8N3o7Dtr6T1xteCt6eRwhpmJ7JhME58Hyu1dvaswuTDd"
}
}
},
"400": {
"description": "Bad request",
"schema": {
"$ref": "#/definitions/Error"
}
}
}
},
"parameters": [
{
"type": "string",
"description": "Base64 encoded signature for bearer token",
"name": "X-Neofs-Token-Signature",
"in": "header",
"required": true
},
{
"type": "string",
"description": "Hex encoded the public part of the key that signed the bearer token",
"name": "X-Neofs-Token-Signature-Key",
"in": "header",
"required": true
}
]
},
"/objects/{containerId}/{objectId}": {
"get": {
"summary": "Get object info by address and",
"operationId": "getObjectInfo",
"responses": {
"200": {
"description": "Object info",
"schema": {
"$ref": "#/definitions/ObjectInfo"
}
},
"400": {
"description": "Bad request",
"schema": {
"$ref": "#/definitions/Error"
}
}
}
},
"parameters": [
{
"type": "string",
"description": "Base64 encoded signature for bearer token",
"name": "X-Neofs-Token-Signature",
"in": "header",
"required": true
},
{
"type": "string",
"description": "Hex encoded the public part of the key that signed the bearer token",
"name": "X-Neofs-Token-Signature-Key",
"in": "header",
"required": true
},
{
"type": "string",
"description": "Base58 encoded container id",
"name": "containerId",
"in": "path",
"required": true
},
{
"type": "string",
"description": "Base58 encoded object id",
"name": "objectId",
"in": "path",
"required": true
}
]
}
},
"definitions": {
"Action": {
"type": "string",
"enum": [
"ALLOW",
"DENY"
]
},
"Attribute": {
"type": "object",
"required": [
"key",
"value"
],
"properties": {
"key": {
"type": "string"
},
"value": {
"type": "string"
}
}
},
"Bearer": {
"type": "object",
"properties": {
"container": {
"$ref": "#/definitions/Rule"
},
"object": {
"type": "array",
"items": {
"$ref": "#/definitions/Record"
}
}
}
},
"ContainerInfo": {
"type": "object",
"required": [
"containerId",
"version",
"ownerId",
"basicAcl",
"placementPolicy",
"attributes"
],
"properties": {
"attributes": {
"type": "array",
"items": {
"$ref": "#/definitions/Attribute"
}
},
"basicAcl": {
"type": "string"
},
"containerId": {
"type": "string"
},
"ownerId": {
"type": "string"
},
"placementPolicy": {
"type": "string"
},
"version": {
"type": "string"
}
},
"example": {
"attribute": [
{
"key": "Timestamp",
"value": "1648810072"
},
{
"key": "Name",
"value": "container"
}
],
"basicAcl": "0x1fbf9fff",
"containerId": "5HZTn5qkRnmgSz9gSrw22CEdPPk6nQhkwf2Mgzyvkikv",
"ownerId": "NbUgTSFvPmsRxmGeWpuuGeJUoRoi6PErcM",
"placementPolicy": "REP 2",
"version": "2.11"
}
},
"Eacl": {
"type": "object",
"required": [
"records"
],
"properties": {
"containerId": {
"type": "string",
"readOnly": true
},
"records": {
"type": "array",
"items": {
"$ref": "#/definitions/Record"
}
}
}
},
"Error": {
"type": "string"
},
"Filter": {
"type": "object",
"required": [
"headerType",
"matchType",
"key",
"value"
],
"properties": {
"headerType": {
"$ref": "#/definitions/HeaderType"
},
"key": {
"type": "string"
},
"matchType": {
"$ref": "#/definitions/MatchType"
},
"value": {
"type": "string"
}
},
"example": {
"headerType": "OBJECT",
"key": "FileName",
"matchType": "STRING_NOT_EQUAL",
"value": "myfile"
}
},
"HeaderType": {
"type": "string",
"enum": [
"REQUEST",
"OBJECT",
"SERVICE"
]
},
"MatchType": {
"type": "string",
"enum": [
"STRING_EQUAL",
"STRING_NOT_EQUAL"
]
},
"ObjectInfo": {
"type": "object",
"required": [
"containerId",
"objectId",
"ownerId",
"attributes"
],
"properties": {
"attributes": {
"type": "array",
"items": {
"$ref": "#/definitions/Attribute"
}
},
"containerId": {
"type": "string"
},
"objectId": {
"type": "string"
},
"ownerId": {
"type": "string"
}
},
"example": {
"attribute": [
{
"key": "Timestamp",
"value": "1648810072"
},
{
"key": "Name",
"value": "object"
}
],
"containerId": "5HZTn5qkRnmgSz9gSrw22CEdPPk6nQhkwf2Mgzyvkikv",
"objectId": "8N3o7Dtr6T1xteCt6eRwhpmJ7JhME58Hyu1dvaswuTDd",
"ownerId": "NbUgTSFvPmsRxmGeWpuuGeJUoRoi6PErcM"
}
},
"Operation": {
"type": "string",
"enum": [
"GET",
"HEAD",
"PUT",
"DELETE",
"SEARCH",
"RANGE",
"RANGEHASH"
]
},
"Principal": {
"type": "string"
},
"Record": {
"type": "object",
"required": [
"action",
"operation",
"filters",
"targets"
],
"properties": {
"action": {
"$ref": "#/definitions/Action"
},
"filters": {
"type": "array",
"items": {
"$ref": "#/definitions/Filter"
}
},
"operation": {
"$ref": "#/definitions/Operation"
},
"targets": {
"type": "array",
"items": {
"$ref": "#/definitions/Target"
}
}
},
"example": {
"action": "ALLOW",
"filters": [],
"operation": "GET",
"targets": [
{
"keys": [],
"role": "OTHERS"
}
]
}
},
"Role": {
"type": "string",
"enum": [
"USER",
"SYSTEM",
"OTHERS"
]
},
"Rule": {
"type": "object",
"required": [
"verb"
],
"properties": {
"containerId": {
"type": "string"
},
"verb": {
"$ref": "#/definitions/Verb"
}
}
},
"Target": {
"type": "object",
"required": [
"role",
"keys"
],
"properties": {
"keys": {
"type": "array",
"items": {
"type": "string"
}
},
"role": {
"$ref": "#/definitions/Role"
}
},
"example": {
"keys": [
"021dc56fc6d81d581ae7605a8e00e0e0bab6cbad566a924a527339475a97a8e38e"
],
"role": "USER"
}
},
"TokenResponse": {
"type": "object",
"required": [
"type",
"token"
],
"properties": {
"token": {
"type": "string"
},
"type": {
"$ref": "#/definitions/TokenType"
}
},
"example": [
{
"token": "sometoken-todo-add",
"type": "object"
},
{
"token": "ChCpanIBJCpJuJz42KOmGMSnEhsKGTWquaX2Lq6GhhO4faOYkLD0f9WkXuYJlq4aBAhnGAMiIQJgFcIEghQB5lq3AJZOVswInwc1IGhlQ7NCUh4DFO3UATIECAEQAQ==",
"type": "container"
}
]
},
"TokenType": {
"type": "string",
"enum": [
"object",
"container"
]
},
"Verb": {
"type": "string",
"enum": [
"PUT",
"DELETE",
"SETEACL"
]
}
},
"parameters": {
"containerId": {
"type": "string",
"description": "Base58 encoded container id",
"name": "containerId",
"in": "path",
"required": true
},
"ojectId": {
"type": "string",
"description": "Base58 encoded object id",
"name": "objectId",
"in": "path",
"required": true
},
"signatureKeyParam": {
"type": "string",
"description": "Hex encoded the public part of the key that signed the bearer token",
"name": "X-Neofs-Token-Signature-Key",
"in": "header",
"required": true
},
"signatureParam": {
"type": "string",
"description": "Base64 encoded signature for bearer token",
"name": "X-Neofs-Token-Signature",
"in": "header",
"required": true
}
},
"securityDefinitions": {
"BearerAuth": {
"description": "Bearer token body to provide with NeoFS request. Must have 'Bearer ' prefix.",
"type": "apiKey",
"name": "Authorization",
"in": "header"
}
},
"security": [
{
"BearerAuth": []
}
]
}`))
}