2022-04-11 09:35:06 +00:00
// 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" : {
2022-07-20 15:16:30 +00:00
"description" : "REST API for native integration with NeoFS." ,
2022-04-11 09:35:06 +00:00
"title" : "REST API NeoFS" ,
"version" : "v1"
} ,
"host" : "localhost:8090" ,
"basePath" : "/v1" ,
"paths" : {
2022-07-28 16:57:40 +00:00
"/accounting/balance/{address}" : {
"get" : {
"security" : [ ] ,
"description" : "Getting balance of provided wallet address in NeoFS." ,
"produces" : [
"application/json"
] ,
"summary" : "Get balance in NeoFS" ,
"operationId" : "getBalance" ,
"parameters" : [
{
"type" : "string" ,
"description" : "Base58 encoded wallet address." ,
"name" : "address" ,
"in" : "path" ,
"required" : true
}
] ,
"responses" : {
"200" : {
"description" : "Balance of address in NeoFS" ,
"schema" : {
"$ref" : "#/definitions/Balance"
2022-08-05 19:09:19 +00:00
} ,
"headers" : {
"Access-Control-Allow-Origin" : {
"type" : "string"
}
2022-07-28 16:57:40 +00:00
}
} ,
"400" : {
"description" : "Bad request" ,
"schema" : {
"$ref" : "#/definitions/ErrorResponse"
}
}
}
}
} ,
2022-04-11 09:35:06 +00:00
"/auth" : {
"post" : {
"security" : [ ] ,
"consumes" : [
"application/json"
] ,
"produces" : [
"application/json"
] ,
2022-07-20 15:16:30 +00:00
"summary" : "Form bearer token to further requests" ,
2022-04-11 09:35:06 +00:00
"operationId" : "auth" ,
"parameters" : [
2022-04-14 08:53:13 +00:00
{
2022-06-09 09:59:02 +00:00
"type" : "string" ,
2022-07-20 15:16:30 +00:00
"description" : "Owner Id (wallet address) that will sign the token." ,
2022-06-09 09:59:02 +00:00
"name" : "X-Bearer-Owner-Id" ,
"in" : "header" ,
"required" : true
2022-04-14 08:53:13 +00:00
} ,
2022-04-11 09:35:06 +00:00
{
"type" : "integer" ,
"default" : 100 ,
2022-07-20 15:16:30 +00:00
"description" : "Token lifetime in epoch." ,
2022-04-14 08:53:13 +00:00
"name" : "X-Bearer-Lifetime" ,
2022-04-11 09:35:06 +00:00
"in" : "header"
} ,
2022-08-18 14:51:18 +00:00
{
"type" : "boolean" ,
"default" : false ,
"description" : "Form token for all users or only for this gate." ,
"name" : "X-Bearer-For-All-Users" ,
"in" : "header"
} ,
2022-04-11 09:35:06 +00:00
{
2022-07-20 15:16:30 +00:00
"description" : "Bearer tokens to form." ,
2022-07-07 09:02:05 +00:00
"name" : "tokens" ,
2022-04-11 09:35:06 +00:00
"in" : "body" ,
"required" : true ,
"schema" : {
2022-07-07 09:02:05 +00:00
"type" : "array" ,
"items" : {
"$ref" : "#/definitions/Bearer"
}
2022-04-11 09:35:06 +00:00
}
}
] ,
"responses" : {
"200" : {
2022-08-18 14:35:53 +00:00
"description" : "Base64 encoded stable binary marshaled bearer token bodies." ,
2022-04-11 09:35:06 +00:00
"schema" : {
2022-07-07 09:02:05 +00:00
"type" : "array" ,
"items" : {
"$ref" : "#/definitions/TokenResponse"
}
2022-08-05 19:09:19 +00:00
} ,
"headers" : {
"Access-Control-Allow-Origin" : {
"type" : "string"
}
2022-04-11 09:35:06 +00:00
}
} ,
"400" : {
"description" : "Bad request" ,
"schema" : {
2022-07-07 12:59:38 +00:00
"$ref" : "#/definitions/ErrorResponse"
2022-04-11 09:35:06 +00:00
}
}
}
2022-08-05 19:09:19 +00:00
} ,
"options" : {
"security" : [ ] ,
"operationId" : "optionsAuth" ,
"responses" : {
"200" : {
"description" : "CORS" ,
"headers" : {
"Access-Control-Allow-Headers" : {
"type" : "string"
} ,
"Access-Control-Allow-Origin" : {
"type" : "string"
}
}
}
}
2022-04-11 09:35:06 +00:00
}
} ,
2022-08-18 14:35:53 +00:00
"/auth/bearer" : {
"get" : {
"produces" : [
"application/json"
] ,
"summary" : "Form binary bearer token" ,
"operationId" : "formBinaryBearer" ,
"parameters" : [
{
"$ref" : "#/parameters/signatureParam"
} ,
{
"$ref" : "#/parameters/signatureKeyParam"
} ,
{
"$ref" : "#/parameters/signatureScheme"
}
] ,
"responses" : {
"200" : {
"description" : "Base64 encoded stable binary marshaled bearer token." ,
"schema" : {
"$ref" : "#/definitions/BinaryBearer"
} ,
"headers" : {
"Access-Control-Allow-Origin" : {
"type" : "string"
}
}
} ,
"400" : {
"description" : "Bad request" ,
"schema" : {
"$ref" : "#/definitions/ErrorResponse"
}
}
}
2022-10-06 14:40:14 +00:00
} ,
"options" : {
"security" : [ ] ,
"operationId" : "optionsAuthBearer" ,
"responses" : {
"200" : {
"description" : "CORS" ,
"headers" : {
"Access-Control-Allow-Headers" : {
"type" : "string"
} ,
"Access-Control-Allow-Origin" : {
"type" : "string"
}
}
}
}
2022-08-18 14:35:53 +00:00
}
} ,
2022-04-11 09:35:06 +00:00
"/containers" : {
2022-04-13 15:23:03 +00:00
"get" : {
"security" : [ ] ,
"summary" : "Get list of containers" ,
"operationId" : "listContainers" ,
"parameters" : [
{
"type" : "string" ,
2022-07-20 15:16:30 +00:00
"description" : "Base58 encoded owner id." ,
2022-04-13 15:23:03 +00:00
"name" : "ownerId" ,
"in" : "query" ,
"required" : true
} ,
{
"type" : "integer" ,
"default" : 0 ,
"description" : "The number of containers to skip before starting to collect the result set." ,
"name" : "offset" ,
"in" : "query"
} ,
{
"maximum" : 10000 ,
"minimum" : 1 ,
"type" : "integer" ,
"default" : 100 ,
"description" : "The numbers of containers to return." ,
"name" : "limit" ,
"in" : "query"
}
] ,
"responses" : {
"200" : {
2022-07-20 15:16:30 +00:00
"description" : "Containers info." ,
2022-04-13 15:23:03 +00:00
"schema" : {
"$ref" : "#/definitions/ContainerList"
2022-08-05 19:09:19 +00:00
} ,
"headers" : {
"Access-Control-Allow-Origin" : {
"type" : "string"
}
2022-04-13 15:23:03 +00:00
}
} ,
"400" : {
2022-07-20 15:16:30 +00:00
"description" : "Bad request." ,
2022-04-13 15:23:03 +00:00
"schema" : {
2022-07-07 12:59:38 +00:00
"$ref" : "#/definitions/ErrorResponse"
2022-04-13 15:23:03 +00:00
}
}
}
} ,
2022-04-11 09:35:06 +00:00
"put" : {
"summary" : "Create new container in NeoFS" ,
"operationId" : "putContainer" ,
"parameters" : [
2022-04-13 15:23:03 +00:00
{
"$ref" : "#/parameters/signatureParam"
} ,
{
"$ref" : "#/parameters/signatureKeyParam"
} ,
2022-04-15 07:03:00 +00:00
{
"$ref" : "#/parameters/signatureScheme"
} ,
2022-04-13 08:41:04 +00:00
{
"type" : "boolean" ,
"default" : false ,
2022-07-20 15:16:30 +00:00
"description" : "Provide this parameter to register container name in NNS service." ,
2022-06-15 14:32:28 +00:00
"name" : "name-scope-global" ,
2022-04-13 08:41:04 +00:00
"in" : "query"
} ,
2022-04-11 09:35:06 +00:00
{
"description" : "Container info" ,
"name" : "container" ,
"in" : "body" ,
"required" : true ,
"schema" : {
2022-07-19 14:48:28 +00:00
"$ref" : "#/definitions/ContainerPutInfo"
2022-04-11 09:35:06 +00:00
}
}
] ,
"responses" : {
"200" : {
2022-07-20 15:16:30 +00:00
"description" : "Identifier of the created container." ,
2022-04-11 09:35:06 +00:00
"schema" : {
"type" : "object" ,
"required" : [
"containerId"
] ,
"properties" : {
"containerId" : {
"type" : "string"
}
} ,
"example" : {
"containerId" : "5HZTn5qkRnmgSz9gSrw22CEdPPk6nQhkwf2Mgzyvkikv"
}
2022-08-05 19:09:19 +00:00
} ,
"headers" : {
"Access-Control-Allow-Origin" : {
"type" : "string"
}
2022-04-11 09:35:06 +00:00
}
} ,
"400" : {
2022-07-20 15:16:30 +00:00
"description" : "Bad request." ,
2022-04-11 09:35:06 +00:00
"schema" : {
2022-07-07 12:59:38 +00:00
"$ref" : "#/definitions/ErrorResponse"
2022-04-11 09:35:06 +00:00
}
}
}
2022-08-05 19:09:19 +00:00
} ,
"options" : {
"security" : [ ] ,
"operationId" : "optionsContainersPutList" ,
"responses" : {
"200" : {
"description" : "CORS" ,
"headers" : {
"Access-Control-Allow-Headers" : {
"type" : "string"
} ,
"Access-Control-Allow-Methods" : {
"type" : "string"
} ,
"Access-Control-Allow-Origin" : {
"type" : "string"
}
}
}
}
2022-04-13 15:23:03 +00:00
}
2022-04-11 09:35:06 +00:00
} ,
"/containers/{containerId}" : {
"get" : {
"security" : [ ] ,
"summary" : "Get container by id" ,
"operationId" : "getContainer" ,
"responses" : {
"200" : {
2022-07-20 15:16:30 +00:00
"description" : "Container info." ,
2022-04-11 09:35:06 +00:00
"schema" : {
"$ref" : "#/definitions/ContainerInfo"
2022-08-05 19:09:19 +00:00
} ,
"headers" : {
"Access-Control-Allow-Origin" : {
"type" : "string"
}
2022-04-11 09:35:06 +00:00
}
} ,
"400" : {
2022-07-20 15:16:30 +00:00
"description" : "Bad request." ,
2022-04-11 09:35:06 +00:00
"schema" : {
2022-07-07 12:59:38 +00:00
"$ref" : "#/definitions/ErrorResponse"
2022-04-11 09:35:06 +00:00
}
}
}
2022-04-13 08:41:04 +00:00
} ,
"delete" : {
"summary" : "Delete container by id" ,
"operationId" : "deleteContainer" ,
"parameters" : [
{
"$ref" : "#/parameters/signatureParam"
} ,
{
"$ref" : "#/parameters/signatureKeyParam"
2022-04-15 07:03:00 +00:00
} ,
{
"$ref" : "#/parameters/signatureScheme"
2022-04-13 08:41:04 +00:00
}
] ,
"responses" : {
2022-07-07 09:29:51 +00:00
"200" : {
2022-07-20 15:16:30 +00:00
"description" : "Successful deletion." ,
2022-07-07 09:29:51 +00:00
"schema" : {
"$ref" : "#/definitions/SuccessResponse"
2022-08-05 19:09:19 +00:00
} ,
"headers" : {
"Access-Control-Allow-Origin" : {
"type" : "string"
}
2022-07-07 09:29:51 +00:00
}
2022-04-13 08:41:04 +00:00
} ,
"400" : {
2022-07-20 15:16:30 +00:00
"description" : "Bad request." ,
2022-04-13 08:41:04 +00:00
"schema" : {
2022-07-07 12:59:38 +00:00
"$ref" : "#/definitions/ErrorResponse"
2022-04-13 08:41:04 +00:00
}
}
}
} ,
2022-08-05 19:09:19 +00:00
"options" : {
"security" : [ ] ,
"operationId" : "optionsContainersGetDelete" ,
"responses" : {
"200" : {
"description" : "CORS" ,
"headers" : {
"Access-Control-Allow-Headers" : {
"type" : "string"
} ,
"Access-Control-Allow-Methods" : {
"type" : "string"
} ,
"Access-Control-Allow-Origin" : {
"type" : "string"
}
}
}
}
} ,
2022-04-13 08:41:04 +00:00
"parameters" : [
{
2022-04-13 13:00:04 +00:00
"$ref" : "#/parameters/containerId"
}
]
} ,
"/containers/{containerId}/eacl" : {
"get" : {
"security" : [ ] ,
"summary" : "Get container EACL by id" ,
"operationId" : "getContainerEACL" ,
"responses" : {
"200" : {
2022-07-20 15:16:30 +00:00
"description" : "Container EACL information." ,
2022-04-13 13:00:04 +00:00
"schema" : {
"$ref" : "#/definitions/Eacl"
2022-08-05 19:09:19 +00:00
} ,
"headers" : {
"Access-Control-Allow-Origin" : {
"type" : "string"
}
2022-04-13 13:00:04 +00:00
}
} ,
"400" : {
2022-07-20 15:16:30 +00:00
"description" : "Bad request." ,
2022-04-13 13:00:04 +00:00
"schema" : {
2022-07-07 12:59:38 +00:00
"$ref" : "#/definitions/ErrorResponse"
2022-04-13 13:00:04 +00:00
}
}
}
} ,
"put" : {
"summary" : "Set container EACL by id" ,
"operationId" : "putContainerEACL" ,
"parameters" : [
{
"$ref" : "#/parameters/signatureParam"
} ,
{
"$ref" : "#/parameters/signatureKeyParam"
} ,
2022-04-15 07:03:00 +00:00
{
"$ref" : "#/parameters/signatureScheme"
} ,
2022-04-13 13:00:04 +00:00
{
2022-07-20 15:16:30 +00:00
"description" : "EACL for container." ,
2022-04-13 13:00:04 +00:00
"name" : "eacl" ,
"in" : "body" ,
"required" : true ,
"schema" : {
"$ref" : "#/definitions/Eacl"
}
}
] ,
"responses" : {
"200" : {
2022-07-20 15:16:30 +00:00
"description" : "Successful EACL updating." ,
2022-07-07 09:29:51 +00:00
"schema" : {
"$ref" : "#/definitions/SuccessResponse"
2022-08-05 19:09:19 +00:00
} ,
"headers" : {
"Access-Control-Allow-Origin" : {
"type" : "string"
}
2022-07-07 09:29:51 +00:00
}
2022-04-13 13:00:04 +00:00
} ,
"400" : {
2022-07-20 15:16:30 +00:00
"description" : "Bad request." ,
2022-04-13 13:00:04 +00:00
"schema" : {
2022-07-07 12:59:38 +00:00
"$ref" : "#/definitions/ErrorResponse"
2022-04-13 13:00:04 +00:00
}
}
}
} ,
2022-08-05 19:09:19 +00:00
"options" : {
"security" : [ ] ,
"operationId" : "optionsContainersEACL" ,
"responses" : {
"200" : {
"description" : "CORS" ,
"headers" : {
"Access-Control-Allow-Headers" : {
"type" : "string"
} ,
"Access-Control-Allow-Methods" : {
"type" : "string"
} ,
"Access-Control-Allow-Origin" : {
"type" : "string"
}
}
}
}
} ,
2022-04-13 13:00:04 +00:00
"parameters" : [
{
"$ref" : "#/parameters/containerId"
2022-04-13 08:41:04 +00:00
}
]
2022-04-11 09:35:06 +00:00
} ,
"/objects" : {
"put" : {
"consumes" : [
"application/json"
] ,
"produces" : [
"application/json"
] ,
"summary" : "Upload object to NeoFS" ,
"operationId" : "putObject" ,
"parameters" : [
2022-08-05 19:09:19 +00:00
{
"$ref" : "#/parameters/signatureParam"
} ,
{
"$ref" : "#/parameters/signatureKeyParam"
} ,
{
"$ref" : "#/parameters/signatureScheme"
} ,
2022-08-18 15:41:33 +00:00
{
"$ref" : "#/parameters/fullBearerToken"
} ,
2022-04-11 09:35:06 +00:00
{
"description" : "Object info to upload" ,
"name" : "object" ,
"in" : "body" ,
"required" : true ,
"schema" : {
2022-04-20 14:52:41 +00:00
"$ref" : "#/definitions/ObjectUpload"
2022-04-11 09:35:06 +00:00
}
}
] ,
"responses" : {
"200" : {
"description" : "Address of uploaded objects" ,
"schema" : {
2022-04-18 08:30:34 +00:00
"$ref" : "#/definitions/Address"
2022-08-05 19:09:19 +00:00
} ,
"headers" : {
"Access-Control-Allow-Origin" : {
"type" : "string"
}
2022-04-11 09:35:06 +00:00
}
} ,
"400" : {
"description" : "Bad request" ,
"schema" : {
2022-07-07 12:59:38 +00:00
"$ref" : "#/definitions/ErrorResponse"
2022-04-11 09:35:06 +00:00
}
}
}
} ,
2022-08-05 19:09:19 +00:00
"options" : {
"security" : [ ] ,
"operationId" : "optionsObjectsPut" ,
"responses" : {
"200" : {
"description" : "CORS" ,
"headers" : {
"Access-Control-Allow-Headers" : {
"type" : "string"
} ,
"Access-Control-Allow-Methods" : {
"type" : "string"
} ,
"Access-Control-Allow-Origin" : {
"type" : "string"
}
}
}
2022-04-11 11:18:26 +00:00
}
2022-08-05 19:09:19 +00:00
}
2022-04-11 11:18:26 +00:00
} ,
2022-04-18 08:30:34 +00:00
"/objects/{containerId}/search" : {
"post" : {
2022-10-26 09:40:17 +00:00
"security" : [
{ } ,
{
"BearerAuth" : [ ]
}
] ,
2022-04-18 08:30:34 +00:00
"summary" : "Search objects by filters" ,
"operationId" : "searchObjects" ,
"parameters" : [
2022-08-05 19:09:19 +00:00
{
"$ref" : "#/parameters/signatureParam"
} ,
{
"$ref" : "#/parameters/signatureKeyParam"
} ,
{
"$ref" : "#/parameters/signatureScheme"
} ,
2022-08-18 15:41:33 +00:00
{
"$ref" : "#/parameters/fullBearerToken"
} ,
2022-04-18 08:30:34 +00:00
{
"type" : "integer" ,
"default" : 0 ,
"description" : "The number of containers to skip before starting to collect the result set." ,
"name" : "offset" ,
"in" : "query"
} ,
{
"maximum" : 10000 ,
"minimum" : 1 ,
"type" : "integer" ,
"default" : 100 ,
"description" : "The numbers of containers to return." ,
"name" : "limit" ,
"in" : "query"
} ,
{
2022-07-20 15:16:30 +00:00
"description" : "Filters to search objects." ,
2022-04-18 08:30:34 +00:00
"name" : "searchFilters" ,
"in" : "body" ,
"required" : true ,
"schema" : {
"$ref" : "#/definitions/SearchFilters"
}
}
] ,
"responses" : {
"200" : {
"description" : "List of objects" ,
"schema" : {
"$ref" : "#/definitions/ObjectList"
2022-08-05 19:09:19 +00:00
} ,
"headers" : {
"Access-Control-Allow-Origin" : {
"type" : "string"
}
2022-04-18 08:30:34 +00:00
}
} ,
"400" : {
"description" : "Bad request" ,
"schema" : {
2022-07-07 12:59:38 +00:00
"$ref" : "#/definitions/ErrorResponse"
2022-04-18 08:30:34 +00:00
}
}
}
} ,
2022-08-05 19:09:19 +00:00
"options" : {
"security" : [ ] ,
"operationId" : "optionsObjectsSearch" ,
"responses" : {
"200" : {
"description" : "Base64 encoded stable binary marshaled bearer token." ,
"headers" : {
"Access-Control-Allow-Headers" : {
"type" : "string"
} ,
"Access-Control-Allow-Origin" : {
"type" : "string"
}
}
}
}
} ,
2022-04-18 08:30:34 +00:00
"parameters" : [
{
"$ref" : "#/parameters/containerId"
}
]
} ,
2022-04-11 11:18:26 +00:00
"/objects/{containerId}/{objectId}" : {
"get" : {
2022-10-26 09:40:17 +00:00
"security" : [
{ } ,
{
"BearerAuth" : [ ]
}
] ,
2022-04-20 14:10:43 +00:00
"summary" : "Get object info by address" ,
2022-04-11 11:18:26 +00:00
"operationId" : "getObjectInfo" ,
2022-04-20 14:10:43 +00:00
"parameters" : [
2022-08-05 19:09:19 +00:00
{
"$ref" : "#/parameters/signatureParam"
} ,
{
"$ref" : "#/parameters/signatureKeyParam"
} ,
{
"$ref" : "#/parameters/signatureScheme"
} ,
2022-08-18 15:41:33 +00:00
{
"$ref" : "#/parameters/fullBearerToken"
} ,
2022-04-20 14:10:43 +00:00
{
"type" : "integer" ,
2022-07-20 15:16:30 +00:00
"description" : "Range offset to start reading data." ,
2022-04-20 14:10:43 +00:00
"name" : "range-offset" ,
"in" : "query"
} ,
{
"minimum" : 1 ,
"type" : "integer" ,
2022-07-20 15:16:30 +00:00
"description" : "Length of data range." ,
2022-04-20 14:10:43 +00:00
"name" : "range-length" ,
"in" : "query"
} ,
{
"maximum" : 524288000 ,
"type" : "integer" ,
"default" : 4194304 ,
"description" : "Max payload size (in bytes) that can be included in the response.\nIf the actual size is greater than this params the payload won't be included in the response.\n" ,
"name" : "max-payload-size" ,
"in" : "query"
}
] ,
2022-04-11 11:18:26 +00:00
"responses" : {
"200" : {
"description" : "Object info" ,
"schema" : {
"$ref" : "#/definitions/ObjectInfo"
2022-08-05 19:09:19 +00:00
} ,
"headers" : {
"Access-Control-Allow-Origin" : {
"type" : "string"
}
2022-04-11 11:18:26 +00:00
}
} ,
"400" : {
"description" : "Bad request" ,
"schema" : {
2022-07-07 12:59:38 +00:00
"$ref" : "#/definitions/ErrorResponse"
2022-04-11 11:18:26 +00:00
}
}
}
} ,
2022-04-14 08:53:13 +00:00
"delete" : {
"summary" : "Remove object from NeoFS" ,
"operationId" : "deleteObject" ,
2022-08-05 19:09:19 +00:00
"parameters" : [
{
"$ref" : "#/parameters/signatureParam"
} ,
{
"$ref" : "#/parameters/signatureKeyParam"
} ,
{
"$ref" : "#/parameters/signatureScheme"
2022-08-18 15:41:33 +00:00
} ,
{
"$ref" : "#/parameters/fullBearerToken"
2022-08-05 19:09:19 +00:00
}
] ,
2022-04-14 08:53:13 +00:00
"responses" : {
2022-07-07 09:29:51 +00:00
"200" : {
2022-07-20 15:16:30 +00:00
"description" : "Successful deletion." ,
2022-07-07 09:29:51 +00:00
"schema" : {
"$ref" : "#/definitions/SuccessResponse"
2022-08-05 19:09:19 +00:00
} ,
"headers" : {
"Access-Control-Allow-Origin" : {
"type" : "string"
}
2022-07-07 09:29:51 +00:00
}
2022-04-14 08:53:13 +00:00
} ,
"400" : {
2022-07-20 15:16:30 +00:00
"description" : "Bad request." ,
2022-04-14 08:53:13 +00:00
"schema" : {
2022-07-07 12:59:38 +00:00
"$ref" : "#/definitions/ErrorResponse"
2022-04-14 08:53:13 +00:00
}
}
}
} ,
2022-08-05 19:09:19 +00:00
"options" : {
"security" : [ ] ,
"operationId" : "optionsObjectsGetDelete" ,
"responses" : {
"200" : {
"description" : "CORS" ,
"headers" : {
"Access-Control-Allow-Headers" : {
"type" : "string"
} ,
"Access-Control-Allow-Methods" : {
"type" : "string"
} ,
"Access-Control-Allow-Origin" : {
"type" : "string"
}
}
}
}
} ,
2022-04-11 11:18:26 +00:00
"parameters" : [
2022-04-11 09:35:06 +00:00
{
2022-04-13 13:00:04 +00:00
"$ref" : "#/parameters/containerId"
2022-04-11 09:35:06 +00:00
} ,
{
2022-04-14 08:53:13 +00:00
"$ref" : "#/parameters/objectId"
2022-04-11 09:35:06 +00:00
}
]
}
} ,
"definitions" : {
"Action" : {
2022-07-20 15:16:30 +00:00
"description" : "Rule execution result action in NeoFS EACL. Either allows or denies access if the rule's filters match." ,
2022-04-11 09:35:06 +00:00
"type" : "string" ,
"enum" : [
"ALLOW" ,
"DENY"
]
} ,
2022-04-18 08:30:34 +00:00
"Address" : {
2022-07-20 15:16:30 +00:00
"description" : "Address of the object in NeoFS." ,
2022-04-18 08:30:34 +00:00
"type" : "object" ,
"required" : [
"containerId" ,
"objectId"
] ,
"properties" : {
"containerId" : {
"type" : "string"
} ,
"objectId" : {
"type" : "string"
}
} ,
"example" : {
"containerId" : "5HZTn5qkRnmgSz9gSrw22CEdPPk6nQhkwf2Mgzyvkikv" ,
"objectId" : "8N3o7Dtr6T1xteCt6eRwhpmJ7JhME58Hyu1dvaswuTDd"
}
} ,
2022-04-11 09:35:06 +00:00
"Attribute" : {
2022-07-20 15:16:30 +00:00
"description" : "Attribute is a pair of strings that can be attached to a container or an object." ,
2022-04-11 09:35:06 +00:00
"type" : "object" ,
2022-04-11 11:18:26 +00:00
"required" : [
"key" ,
"value"
] ,
2022-04-11 09:35:06 +00:00
"properties" : {
"key" : {
"type" : "string"
} ,
"value" : {
"type" : "string"
}
2022-07-20 15:16:30 +00:00
} ,
"example" : {
"key" : "User-Defined-Tag" ,
"value" : "tag value"
2022-04-11 09:35:06 +00:00
}
} ,
2022-07-28 16:57:40 +00:00
"Balance" : {
"type" : "object" ,
"required" : [
"address" ,
"value" ,
"precision"
] ,
"properties" : {
"address" : {
"type" : "string"
} ,
"precision" : {
"type" : "integer"
} ,
"value" : {
"type" : "string"
}
}
} ,
2022-04-11 09:35:06 +00:00
"Bearer" : {
2022-07-20 15:16:30 +00:00
"description" : "Bearer token that is expected to be formed." ,
2022-04-11 09:35:06 +00:00
"type" : "object" ,
"properties" : {
"container" : {
"$ref" : "#/definitions/Rule"
} ,
2022-07-07 09:02:05 +00:00
"name" : {
"type" : "string"
} ,
2022-04-11 09:35:06 +00:00
"object" : {
"type" : "array" ,
"items" : {
"$ref" : "#/definitions/Record"
}
}
2022-07-20 15:16:30 +00:00
} ,
"example" : [
{
"name" : "my-bearer-token" ,
"object" : [
{
"action" : "ALLOW" ,
"filters" : null ,
"operation" : "GET" ,
"targets" : [
{
"keys" : null ,
"role" : "OTHERS"
}
]
}
]
} ,
{
"container" : {
"verb" : "PUT"
} ,
"name" : "my token to create container"
}
]
2022-04-11 09:35:06 +00:00
} ,
2022-08-18 14:35:53 +00:00
"BinaryBearer" : {
"description" : "Bearer token for object operations that is represented in binary form." ,
"type" : "object" ,
"required" : [
"token"
] ,
"properties" : {
"token" : {
"description" : "Base64 encoded bearer token." ,
"type" : "string"
}
} ,
"example" : {
"token" : "ChIKDAoAGggIARABIgIIAxoCCGQSZgohA+J5jFWFMiOpyvMZBu9wwPTKsWsG0q206kVe63iuWP/wEkEE4SIV0QngnKppDf54QezUKmar7UQby6HzufT5yVIOvj7QEqZnOavrKW0chCeCwP0khda/j9k00ct6NMEDxQFW+g=="
}
} ,
2022-04-11 09:35:06 +00:00
"ContainerInfo" : {
2022-07-20 15:16:30 +00:00
"description" : "Information about container." ,
2022-04-11 09:35:06 +00:00
"type" : "object" ,
2022-04-11 11:18:26 +00:00
"required" : [
"containerId" ,
2022-07-19 14:48:28 +00:00
"containerName" ,
2022-04-11 11:18:26 +00:00
"version" ,
"ownerId" ,
"basicAcl" ,
"placementPolicy" ,
"attributes"
] ,
2022-04-11 09:35:06 +00:00
"properties" : {
"attributes" : {
"type" : "array" ,
"items" : {
"$ref" : "#/definitions/Attribute"
}
} ,
"basicAcl" : {
"type" : "string"
} ,
2022-08-17 09:22:59 +00:00
"cannedAcl" : {
"description" : "The friendly name for the basicAcl field." ,
"type" : "string"
} ,
2022-04-11 09:35:06 +00:00
"containerId" : {
"type" : "string"
} ,
2022-07-19 14:48:28 +00:00
"containerName" : {
"type" : "string"
} ,
2022-04-11 09:35:06 +00:00
"ownerId" : {
"type" : "string"
} ,
"placementPolicy" : {
"type" : "string"
} ,
"version" : {
"type" : "string"
}
} ,
"example" : {
"attribute" : [
{
"key" : "Timestamp" ,
"value" : "1648810072"
} ,
{
"key" : "Name" ,
"value" : "container"
}
] ,
"basicAcl" : "0x1fbf9fff" ,
"containerId" : "5HZTn5qkRnmgSz9gSrw22CEdPPk6nQhkwf2Mgzyvkikv" ,
2022-07-20 15:16:30 +00:00
"containerName" : "container" ,
2022-04-11 09:35:06 +00:00
"ownerId" : "NbUgTSFvPmsRxmGeWpuuGeJUoRoi6PErcM" ,
"placementPolicy" : "REP 2" ,
"version" : "2.11"
}
} ,
2022-04-13 15:23:03 +00:00
"ContainerList" : {
2022-07-20 15:16:30 +00:00
"description" : "List of containers info" ,
2022-04-13 15:23:03 +00:00
"type" : "object" ,
"required" : [
"size" ,
"containers"
] ,
"properties" : {
"containers" : {
"type" : "array" ,
"items" : {
2022-07-07 14:55:13 +00:00
"$ref" : "#/definitions/ContainerInfo"
2022-04-13 15:23:03 +00:00
}
} ,
"size" : {
"type" : "integer"
}
2022-07-20 15:16:30 +00:00
} ,
"example" : {
"containers" : [
{
"attribute" : [
{
"key" : "Timestamp" ,
"value" : "1648810072"
} ,
{
"key" : "Name" ,
"value" : "container"
}
] ,
"basicAcl" : "0x1fbf9fff" ,
"containerId" : "5HZTn5qkRnmgSz9gSrw22CEdPPk6nQhkwf2Mgzyvkikv" ,
"containerName" : "container" ,
"ownerId" : "NbUgTSFvPmsRxmGeWpuuGeJUoRoi6PErcM" ,
"placementPolicy" : "REP 2" ,
"version" : "2.11"
} ,
{
"attribute" : [
{
"key" : "Name" ,
"value" : "container2"
}
] ,
"basicAcl" : "0x1fbf9fff" ,
"containerId" : "FsE7HLQBBYc2WFJzuTXMcpspDEmwUxsD5YmNb2r25uUu" ,
"containerName" : "container2" ,
"ownerId" : "NbUgTSFvPmsRxmGeWpuuGeJUoRoi6PErcM" ,
"placementPolicy" : "REP 1" ,
"version" : "2.11"
}
] ,
"size" : 2
2022-04-13 15:23:03 +00:00
}
} ,
2022-07-19 14:48:28 +00:00
"ContainerPutInfo" : {
2022-07-20 15:16:30 +00:00
"description" : "Request body to create container. To specify container name use appropriate property (name provided in attributes will be ignored)." ,
2022-07-19 14:48:28 +00:00
"type" : "object" ,
"properties" : {
"attributes" : {
"type" : "array" ,
"items" : {
"$ref" : "#/definitions/Attribute"
}
} ,
"basicAcl" : {
"type" : "string"
} ,
"containerName" : {
"type" : "string"
} ,
"placementPolicy" : {
"type" : "string"
}
} ,
"example" : {
"attributes" : [
{
"key" : "Custom-Attribute" ,
"value" : "value"
}
] ,
"basicAcl" : "public-read-write" ,
"containerName" : "container" ,
"placementPolicy" : "REP 3"
}
} ,
2022-04-13 13:00:04 +00:00
"Eacl" : {
2022-07-20 15:16:30 +00:00
"description" : "EACL NeoFS table." ,
2022-04-13 13:00:04 +00:00
"type" : "object" ,
"required" : [
"records"
] ,
"properties" : {
"containerId" : {
"type" : "string" ,
"readOnly" : true
} ,
"records" : {
"type" : "array" ,
"items" : {
"$ref" : "#/definitions/Record"
}
}
2022-07-20 15:16:30 +00:00
} ,
"example" : {
"containerId" : "5HZTn5qkRnmgSz9gSrw22CEdPPk6nQhkwf2Mgzyvkikv" ,
"records" : [
{
"action" : "GET" ,
"filters" : [
{
"headerType" : "OBJECT" ,
"key" : "FileName" ,
"matchType" : "STRING_EQUAL" ,
"value" : "myfile"
}
] ,
"operation" : "ALLOW" ,
"targets" : [
{
"role" : "OTHERS"
}
]
}
]
2022-04-13 13:00:04 +00:00
}
} ,
2022-07-07 12:59:38 +00:00
"ErrorResponse" : {
2022-07-20 15:16:30 +00:00
"description" : "Error response." ,
2022-07-07 12:59:38 +00:00
"type" : "object" ,
"required" : [
"type" ,
"message"
] ,
"properties" : {
"code" : {
"type" : "integer"
} ,
"message" : {
"type" : "string"
} ,
"type" : {
"$ref" : "#/definitions/ErrorType"
}
2022-07-20 15:16:30 +00:00
} ,
"example" : {
"code" : 1024 ,
"message" : "incomplete object PUT by placement" ,
"type" : "API"
2022-07-07 12:59:38 +00:00
}
} ,
"ErrorType" : {
2022-07-20 15:16:30 +00:00
"description" : "Error type. Allow determine source of the error." ,
2022-07-07 12:59:38 +00:00
"type" : "string" ,
"enum" : [
"GW" ,
"API"
]
2022-04-11 09:35:06 +00:00
} ,
"Filter" : {
2022-07-20 15:16:30 +00:00
"description" : "Filter in NeoFS EACL to check particular properties of the request or the object." ,
2022-04-11 09:35:06 +00:00
"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" : {
2022-07-20 15:16:30 +00:00
"description" : "Enumeration of possible sources of Headers to apply filters in NeoFS EACL." ,
2022-04-11 09:35:06 +00:00
"type" : "string" ,
"enum" : [
"REQUEST" ,
"OBJECT" ,
"SERVICE"
]
} ,
"MatchType" : {
2022-07-20 15:16:30 +00:00
"description" : "Match type in NeoFS EACL filter." ,
2022-04-11 09:35:06 +00:00
"type" : "string" ,
"enum" : [
"STRING_EQUAL" ,
"STRING_NOT_EQUAL"
]
} ,
2022-04-18 08:30:34 +00:00
"ObjectBaseInfo" : {
2022-07-20 15:16:30 +00:00
"description" : "Basic object information." ,
2022-04-18 08:30:34 +00:00
"type" : "object" ,
"required" : [
"address"
] ,
"properties" : {
"address" : {
"$ref" : "#/definitions/Address"
} ,
2022-08-11 09:47:46 +00:00
"filePath" : {
"type" : "string"
} ,
2022-04-18 08:30:34 +00:00
"name" : {
"type" : "string"
}
2022-07-20 15:16:30 +00:00
} ,
"example" : {
"address" : {
"containerId" : "5HZTn5qkRnmgSz9gSrw22CEdPPk6nQhkwf2Mgzyvkikv" ,
"objectId" : "8N3o7Dtr6T1xteCt6eRwhpmJ7JhME58Hyu1dvaswuTDd"
} ,
2022-08-11 09:47:46 +00:00
"filePath" : "/my/object/name.txt" ,
"name" : "name.txt"
2022-04-18 08:30:34 +00:00
}
} ,
2022-04-11 11:18:26 +00:00
"ObjectInfo" : {
2022-07-20 15:16:30 +00:00
"description" : "Object information." ,
2022-04-11 11:18:26 +00:00
"type" : "object" ,
"required" : [
"containerId" ,
"objectId" ,
"ownerId" ,
2022-04-20 14:10:43 +00:00
"attributes" ,
"objectSize" ,
"payloadSize"
2022-04-11 11:18:26 +00:00
] ,
"properties" : {
"attributes" : {
"type" : "array" ,
"items" : {
"$ref" : "#/definitions/Attribute"
}
} ,
"containerId" : {
"type" : "string"
} ,
"objectId" : {
"type" : "string"
} ,
2022-04-20 14:10:43 +00:00
"objectSize" : {
"description" : "Object full payload size" ,
"type" : "integer"
} ,
2022-04-11 11:18:26 +00:00
"ownerId" : {
"type" : "string"
2022-04-20 14:10:43 +00:00
} ,
"payload" : {
"description" : "Base64 encoded object payload" ,
"type" : "string"
} ,
"payloadSize" : {
"description" : "Payload size in response" ,
"type" : "integer"
2022-04-11 11:18:26 +00:00
}
} ,
"example" : {
"attribute" : [
{
"key" : "Timestamp" ,
"value" : "1648810072"
} ,
{
"key" : "Name" ,
"value" : "object"
}
] ,
"containerId" : "5HZTn5qkRnmgSz9gSrw22CEdPPk6nQhkwf2Mgzyvkikv" ,
"objectId" : "8N3o7Dtr6T1xteCt6eRwhpmJ7JhME58Hyu1dvaswuTDd" ,
"ownerId" : "NbUgTSFvPmsRxmGeWpuuGeJUoRoi6PErcM"
}
} ,
2022-04-18 08:30:34 +00:00
"ObjectList" : {
2022-07-20 15:16:30 +00:00
"description" : "List of objects." ,
2022-04-18 08:30:34 +00:00
"type" : "object" ,
"required" : [
"size" ,
"objects"
] ,
"properties" : {
"objects" : {
"type" : "array" ,
"items" : {
"$ref" : "#/definitions/ObjectBaseInfo"
}
} ,
"size" : {
"type" : "integer"
}
2022-07-20 15:16:30 +00:00
} ,
"example" : {
"objects" : [
{
"address" : {
"containerId" : "5HZTn5qkRnmgSz9gSrw22CEdPPk6nQhkwf2Mgzyvkikv" ,
"objectId" : "8N3o7Dtr6T1xteCt6eRwhpmJ7JhME58Hyu1dvaswuTDd"
} ,
"name" : "/my/object/name"
} ,
{
"address" : {
"containerId" : "5HZTn5qkRnmgSz9gSrw22CEdPPk6nQhkwf2Mgzyvkikv" ,
"objectId" : "3GbmMWusaWgMHokWui2zDunxMTzButuQMVLbtL3cDn8s"
} ,
"name" : "/my/object/some/other/name"
}
] ,
"size" : 2
2022-04-18 08:30:34 +00:00
}
} ,
2022-04-20 14:52:41 +00:00
"ObjectUpload" : {
2022-07-20 15:16:30 +00:00
"description" : "Request body to create object." ,
2022-04-20 14:52:41 +00:00
"type" : "object" ,
"required" : [
"containerId" ,
"fileName"
] ,
"properties" : {
"attributes" : {
"type" : "array" ,
"items" : {
"$ref" : "#/definitions/Attribute"
}
} ,
"containerId" : {
"type" : "string"
} ,
"fileName" : {
"type" : "string"
} ,
"payload" : {
"type" : "string"
}
} ,
"example" : {
"attributes" : [
{
"key" : "User-Attribute" ,
"value" : "some-value"
}
] ,
"containerId" : "5HZTn5qkRnmgSz9gSrw22CEdPPk6nQhkwf2Mgzyvkikv" ,
"fileName" : "myFile.txt" ,
"payload" : "Y29udGVudCBvZiBmaWxl"
}
} ,
2022-04-11 09:35:06 +00:00
"Operation" : {
2022-07-20 15:16:30 +00:00
"description" : "Request's operation type to match in NeoFS EACL if the rule is applicable to a particular request." ,
2022-04-11 09:35:06 +00:00
"type" : "string" ,
"enum" : [
"GET" ,
"HEAD" ,
"PUT" ,
"DELETE" ,
"SEARCH" ,
"RANGE" ,
"RANGEHASH"
]
} ,
"Principal" : {
"type" : "string"
} ,
"Record" : {
2022-07-20 15:16:30 +00:00
"description" : "A single NeoFS EACL rule." ,
2022-04-11 09:35:06 +00:00
"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" : {
2022-07-20 15:16:30 +00:00
"description" : "Role for target in EACL." ,
2022-04-11 09:35:06 +00:00
"type" : "string" ,
"enum" : [
"USER" ,
"SYSTEM" ,
2022-08-29 14:16:41 +00:00
"OTHERS" ,
"KEYS"
2022-04-11 09:35:06 +00:00
]
} ,
"Rule" : {
2022-07-20 15:16:30 +00:00
"description" : "Container session token rule." ,
2022-04-11 09:35:06 +00:00
"type" : "object" ,
"required" : [
"verb"
] ,
"properties" : {
"containerId" : {
"type" : "string"
} ,
"verb" : {
"$ref" : "#/definitions/Verb"
}
2022-07-20 15:16:30 +00:00
} ,
"example" : {
"containerId" : "6jvKJCQr6e47Yx8SsbSN3fNgzroUJVkY66Q9wqxYcAjc" ,
"verb" : "DELETE"
2022-04-11 09:35:06 +00:00
}
} ,
2022-04-18 08:30:34 +00:00
"SearchFilter" : {
2022-07-20 15:16:30 +00:00
"description" : "Search filter to find objects." ,
2022-04-18 08:30:34 +00:00
"type" : "object" ,
"required" : [
"key" ,
"value" ,
"match"
] ,
"properties" : {
"key" : {
"type" : "string"
} ,
"match" : {
"$ref" : "#/definitions/SearchMatch"
} ,
"value" : {
"type" : "string"
}
2022-07-20 15:16:30 +00:00
} ,
"example" : {
"key" : "FileName" ,
"match" : "MatchStringEqual" ,
"value" : "object-name"
2022-04-18 08:30:34 +00:00
}
} ,
"SearchFilters" : {
2022-07-20 15:16:30 +00:00
"description" : "List of SearchFilter elements." ,
2022-04-18 08:30:34 +00:00
"type" : "object" ,
"required" : [
"filters"
] ,
"properties" : {
"filters" : {
"type" : "array" ,
"items" : {
"$ref" : "#/definitions/SearchFilter"
}
}
2022-07-20 15:16:30 +00:00
} ,
"example" : {
"filters" : [
{
"key" : "FileName" ,
"match" : "MatchCommonPrefix" ,
"value" : "some/prefix"
} ,
{
"key" : "CustomAttribute" ,
"match" : "MatchStringEqual" ,
"value" : "tag-value"
}
]
2022-04-18 08:30:34 +00:00
}
} ,
"SearchMatch" : {
2022-07-20 15:16:30 +00:00
"description" : "Search match type." ,
2022-04-18 08:30:34 +00:00
"type" : "string" ,
"enum" : [
"MatchStringEqual" ,
"MatchStringNotEqual" ,
"MatchNotPresent" ,
"MatchCommonPrefix"
]
} ,
2022-07-07 09:29:51 +00:00
"SuccessResponse" : {
2022-07-20 15:16:30 +00:00
"description" : "Success response." ,
2022-07-07 09:29:51 +00:00
"type" : "object" ,
"required" : [
"success"
] ,
"properties" : {
"success" : {
"type" : "boolean"
}
2022-07-20 15:16:30 +00:00
} ,
"example" : {
"success" : true
2022-07-07 09:29:51 +00:00
}
} ,
2022-04-11 09:35:06 +00:00
"Target" : {
2022-08-29 14:16:41 +00:00
"description" : "Target to apply the ACL rule. Can be a subject's role class or a list of public keys to match (KEYS role)." ,
2022-04-11 09:35:06 +00:00
"type" : "object" ,
"required" : [
"role" ,
"keys"
] ,
"properties" : {
"keys" : {
"type" : "array" ,
"items" : {
"type" : "string"
}
} ,
"role" : {
"$ref" : "#/definitions/Role"
}
} ,
"example" : {
"keys" : [
"021dc56fc6d81d581ae7605a8e00e0e0bab6cbad566a924a527339475a97a8e38e"
] ,
2022-08-29 14:16:41 +00:00
"role" : "KEYS"
2022-04-11 09:35:06 +00:00
}
} ,
"TokenResponse" : {
2022-07-20 15:16:30 +00:00
"description" : "Base64 encoded marshaled token (for container or for object operations)." ,
2022-04-11 09:35:06 +00:00
"type" : "object" ,
"required" : [
"type" ,
"token"
] ,
"properties" : {
2022-07-07 09:02:05 +00:00
"name" : {
"type" : "string"
} ,
2022-04-11 09:35:06 +00:00
"token" : {
"type" : "string"
} ,
"type" : {
"$ref" : "#/definitions/TokenType"
}
} ,
"example" : [
{
2022-07-20 15:16:30 +00:00
"token" : "ClYKBAgCEA0aCAgDEAEiAggDGggIARACIgIIAxoICAIQAiICCAMaCAgDEAIiAggDGggIBBACIgIIAxoICAUQAiICCAMaCAgGEAIiAggDGggIBxACIgIIAxIbChk182WEDFuAqq3nssrGOaH0NK0ZhzF8bu+YGgQIaBgE" ,
2022-04-11 09:35:06 +00:00
"type" : "object"
} ,
{
"token" : "ChCpanIBJCpJuJz42KOmGMSnEhsKGTWquaX2Lq6GhhO4faOYkLD0f9WkXuYJlq4aBAhnGAMiIQJgFcIEghQB5lq3AJZOVswInwc1IGhlQ7NCUh4DFO3UATIECAEQAQ==" ,
"type" : "container"
}
]
} ,
"TokenType" : {
2022-07-20 15:16:30 +00:00
"description" : "Type of token." ,
2022-04-11 09:35:06 +00:00
"type" : "string" ,
"enum" : [
"object" ,
"container"
]
} ,
"Verb" : {
2022-07-20 15:16:30 +00:00
"description" : "Verb that describes the allowed container operation for token." ,
2022-04-11 09:35:06 +00:00
"type" : "string" ,
"enum" : [
"PUT" ,
"DELETE" ,
"SETEACL"
]
}
} ,
2022-04-11 11:18:26 +00:00
"parameters" : {
2022-04-13 13:00:04 +00:00
"containerId" : {
"type" : "string" ,
2022-07-20 15:16:30 +00:00
"description" : "Base58 encoded container id." ,
2022-04-13 13:00:04 +00:00
"name" : "containerId" ,
"in" : "path" ,
"required" : true
} ,
2022-08-18 15:41:33 +00:00
"fullBearerToken" : {
"type" : "boolean" ,
"default" : false ,
"description" : "Provided bearer token is final or gate should assemble it using signature." ,
"name" : "fullBearer" ,
"in" : "query"
} ,
2022-04-14 08:53:13 +00:00
"objectId" : {
2022-04-13 13:00:04 +00:00
"type" : "string" ,
2022-07-20 15:16:30 +00:00
"description" : "Base58 encoded object id." ,
2022-04-13 13:00:04 +00:00
"name" : "objectId" ,
"in" : "path" ,
"required" : true
} ,
2022-04-11 11:18:26 +00:00
"signatureKeyParam" : {
"type" : "string" ,
2022-07-20 15:16:30 +00:00
"description" : "Hex encoded the public part of the key that signed the bearer token." ,
2022-04-14 08:53:13 +00:00
"name" : "X-Bearer-Signature-Key" ,
2022-08-18 15:41:33 +00:00
"in" : "header"
2022-04-11 11:18:26 +00:00
} ,
"signatureParam" : {
"type" : "string" ,
2022-07-20 15:16:30 +00:00
"description" : "Base64 encoded signature for bearer token." ,
2022-04-14 08:53:13 +00:00
"name" : "X-Bearer-Signature" ,
2022-08-18 15:41:33 +00:00
"in" : "header"
2022-04-15 07:03:00 +00:00
} ,
"signatureScheme" : {
"type" : "boolean" ,
"default" : false ,
2022-07-20 15:16:30 +00:00
"description" : "Use wallet connect signature scheme or native NeoFS signature." ,
2022-04-15 07:03:00 +00:00
"name" : "walletConnect" ,
"in" : "query"
2022-04-11 11:18:26 +00:00
}
} ,
2022-04-11 09:35:06 +00:00
"securityDefinitions" : {
"BearerAuth" : {
2022-04-11 11:18:26 +00:00
"description" : "Bearer token body to provide with NeoFS request. Must have 'Bearer ' prefix." ,
2022-04-11 09:35:06 +00:00
"type" : "apiKey" ,
"name" : "Authorization" ,
"in" : "header"
}
} ,
"security" : [
{
"BearerAuth" : [ ]
}
]
} ` ) )
FlatSwaggerJSON = json . RawMessage ( [ ] byte ( ` {
"schemes" : [
"http"
] ,
"swagger" : "2.0" ,
"info" : {
2022-07-20 15:16:30 +00:00
"description" : "REST API for native integration with NeoFS." ,
2022-04-11 09:35:06 +00:00
"title" : "REST API NeoFS" ,
"version" : "v1"
} ,
"host" : "localhost:8090" ,
"basePath" : "/v1" ,
"paths" : {
2022-07-28 16:57:40 +00:00
"/accounting/balance/{address}" : {
"get" : {
"security" : [ ] ,
"description" : "Getting balance of provided wallet address in NeoFS." ,
"produces" : [
"application/json"
] ,
"summary" : "Get balance in NeoFS" ,
"operationId" : "getBalance" ,
"parameters" : [
{
"type" : "string" ,
"description" : "Base58 encoded wallet address." ,
"name" : "address" ,
"in" : "path" ,
"required" : true
}
] ,
"responses" : {
"200" : {
"description" : "Balance of address in NeoFS" ,
"schema" : {
"$ref" : "#/definitions/Balance"
2022-08-05 19:09:19 +00:00
} ,
"headers" : {
"Access-Control-Allow-Origin" : {
"type" : "string"
}
2022-07-28 16:57:40 +00:00
}
} ,
"400" : {
"description" : "Bad request" ,
"schema" : {
"$ref" : "#/definitions/ErrorResponse"
}
}
}
}
} ,
2022-04-11 09:35:06 +00:00
"/auth" : {
"post" : {
"security" : [ ] ,
"consumes" : [
"application/json"
] ,
"produces" : [
"application/json"
] ,
2022-07-20 15:16:30 +00:00
"summary" : "Form bearer token to further requests" ,
2022-04-11 09:35:06 +00:00
"operationId" : "auth" ,
"parameters" : [
{
"type" : "string" ,
2022-07-20 15:16:30 +00:00
"description" : "Owner Id (wallet address) that will sign the token." ,
2022-06-09 09:59:02 +00:00
"name" : "X-Bearer-Owner-Id" ,
2022-04-11 09:35:06 +00:00
"in" : "header" ,
"required" : true
} ,
{
"type" : "integer" ,
"default" : 100 ,
2022-07-20 15:16:30 +00:00
"description" : "Token lifetime in epoch." ,
2022-04-14 08:53:13 +00:00
"name" : "X-Bearer-Lifetime" ,
2022-04-11 09:35:06 +00:00
"in" : "header"
} ,
2022-08-18 14:51:18 +00:00
{
"type" : "boolean" ,
"default" : false ,
"description" : "Form token for all users or only for this gate." ,
"name" : "X-Bearer-For-All-Users" ,
"in" : "header"
} ,
2022-04-11 09:35:06 +00:00
{
2022-07-20 15:16:30 +00:00
"description" : "Bearer tokens to form." ,
2022-07-07 09:02:05 +00:00
"name" : "tokens" ,
2022-04-11 09:35:06 +00:00
"in" : "body" ,
"required" : true ,
"schema" : {
2022-07-07 09:02:05 +00:00
"type" : "array" ,
"items" : {
"$ref" : "#/definitions/Bearer"
}
2022-04-11 09:35:06 +00:00
}
}
] ,
"responses" : {
"200" : {
2022-08-18 14:35:53 +00:00
"description" : "Base64 encoded stable binary marshaled bearer token bodies." ,
2022-04-11 09:35:06 +00:00
"schema" : {
2022-07-07 09:02:05 +00:00
"type" : "array" ,
"items" : {
"$ref" : "#/definitions/TokenResponse"
}
2022-08-05 19:09:19 +00:00
} ,
"headers" : {
"Access-Control-Allow-Origin" : {
"type" : "string"
}
2022-04-11 09:35:06 +00:00
}
} ,
"400" : {
"description" : "Bad request" ,
"schema" : {
2022-07-07 12:59:38 +00:00
"$ref" : "#/definitions/ErrorResponse"
2022-04-11 09:35:06 +00:00
}
}
}
2022-08-05 19:09:19 +00:00
} ,
"options" : {
"security" : [ ] ,
"operationId" : "optionsAuth" ,
"responses" : {
"200" : {
"description" : "CORS" ,
"headers" : {
"Access-Control-Allow-Headers" : {
"type" : "string"
} ,
"Access-Control-Allow-Origin" : {
"type" : "string"
}
}
}
}
2022-04-11 09:35:06 +00:00
}
} ,
2022-08-18 14:35:53 +00:00
"/auth/bearer" : {
"get" : {
"produces" : [
"application/json"
] ,
"summary" : "Form binary bearer token" ,
"operationId" : "formBinaryBearer" ,
"parameters" : [
{
"type" : "string" ,
"description" : "Base64 encoded signature for bearer token." ,
"name" : "X-Bearer-Signature" ,
2022-08-18 15:41:33 +00:00
"in" : "header"
2022-08-18 14:35:53 +00:00
} ,
{
"type" : "string" ,
"description" : "Hex encoded the public part of the key that signed the bearer token." ,
"name" : "X-Bearer-Signature-Key" ,
2022-08-18 15:41:33 +00:00
"in" : "header"
2022-08-18 14:35:53 +00:00
} ,
{
"type" : "boolean" ,
"default" : false ,
"description" : "Use wallet connect signature scheme or native NeoFS signature." ,
"name" : "walletConnect" ,
"in" : "query"
}
] ,
"responses" : {
"200" : {
"description" : "Base64 encoded stable binary marshaled bearer token." ,
"schema" : {
"$ref" : "#/definitions/BinaryBearer"
} ,
"headers" : {
"Access-Control-Allow-Origin" : {
"type" : "string"
}
}
} ,
"400" : {
"description" : "Bad request" ,
"schema" : {
"$ref" : "#/definitions/ErrorResponse"
}
}
}
2022-10-06 14:40:14 +00:00
} ,
"options" : {
"security" : [ ] ,
"operationId" : "optionsAuthBearer" ,
"responses" : {
"200" : {
"description" : "CORS" ,
"headers" : {
"Access-Control-Allow-Headers" : {
"type" : "string"
} ,
"Access-Control-Allow-Origin" : {
"type" : "string"
}
}
}
}
2022-08-18 14:35:53 +00:00
}
} ,
2022-04-11 09:35:06 +00:00
"/containers" : {
2022-04-13 15:23:03 +00:00
"get" : {
"security" : [ ] ,
"summary" : "Get list of containers" ,
"operationId" : "listContainers" ,
"parameters" : [
{
"type" : "string" ,
2022-07-20 15:16:30 +00:00
"description" : "Base58 encoded owner id." ,
2022-04-13 15:23:03 +00:00
"name" : "ownerId" ,
"in" : "query" ,
"required" : true
} ,
{
"minimum" : 0 ,
"type" : "integer" ,
"default" : 0 ,
"description" : "The number of containers to skip before starting to collect the result set." ,
"name" : "offset" ,
"in" : "query"
} ,
{
"maximum" : 10000 ,
"minimum" : 1 ,
"type" : "integer" ,
"default" : 100 ,
"description" : "The numbers of containers to return." ,
"name" : "limit" ,
"in" : "query"
}
] ,
"responses" : {
"200" : {
2022-07-20 15:16:30 +00:00
"description" : "Containers info." ,
2022-04-13 15:23:03 +00:00
"schema" : {
"$ref" : "#/definitions/ContainerList"
2022-08-05 19:09:19 +00:00
} ,
"headers" : {
"Access-Control-Allow-Origin" : {
"type" : "string"
}
2022-04-13 15:23:03 +00:00
}
} ,
"400" : {
2022-07-20 15:16:30 +00:00
"description" : "Bad request." ,
2022-04-13 15:23:03 +00:00
"schema" : {
2022-07-07 12:59:38 +00:00
"$ref" : "#/definitions/ErrorResponse"
2022-04-13 15:23:03 +00:00
}
}
}
} ,
2022-04-11 09:35:06 +00:00
"put" : {
"summary" : "Create new container in NeoFS" ,
"operationId" : "putContainer" ,
"parameters" : [
2022-04-13 15:23:03 +00:00
{
"type" : "string" ,
2022-07-20 15:16:30 +00:00
"description" : "Base64 encoded signature for bearer token." ,
2022-04-14 08:53:13 +00:00
"name" : "X-Bearer-Signature" ,
2022-08-18 15:41:33 +00:00
"in" : "header"
2022-04-13 15:23:03 +00:00
} ,
{
"type" : "string" ,
2022-07-20 15:16:30 +00:00
"description" : "Hex encoded the public part of the key that signed the bearer token." ,
2022-04-14 08:53:13 +00:00
"name" : "X-Bearer-Signature-Key" ,
2022-08-18 15:41:33 +00:00
"in" : "header"
2022-04-13 15:23:03 +00:00
} ,
2022-04-15 07:03:00 +00:00
{
"type" : "boolean" ,
"default" : false ,
2022-07-20 15:16:30 +00:00
"description" : "Use wallet connect signature scheme or native NeoFS signature." ,
2022-04-15 07:03:00 +00:00
"name" : "walletConnect" ,
"in" : "query"
} ,
2022-04-13 08:41:04 +00:00
{
"type" : "boolean" ,
"default" : false ,
2022-07-20 15:16:30 +00:00
"description" : "Provide this parameter to register container name in NNS service." ,
2022-06-15 14:32:28 +00:00
"name" : "name-scope-global" ,
2022-04-13 08:41:04 +00:00
"in" : "query"
} ,
2022-04-11 09:35:06 +00:00
{
"description" : "Container info" ,
"name" : "container" ,
"in" : "body" ,
"required" : true ,
"schema" : {
2022-07-19 14:48:28 +00:00
"$ref" : "#/definitions/ContainerPutInfo"
2022-04-11 09:35:06 +00:00
}
}
] ,
"responses" : {
"200" : {
2022-07-20 15:16:30 +00:00
"description" : "Identifier of the created container." ,
2022-04-11 09:35:06 +00:00
"schema" : {
"type" : "object" ,
"required" : [
"containerId"
] ,
"properties" : {
"containerId" : {
"type" : "string"
}
} ,
"example" : {
"containerId" : "5HZTn5qkRnmgSz9gSrw22CEdPPk6nQhkwf2Mgzyvkikv"
}
2022-08-05 19:09:19 +00:00
} ,
"headers" : {
"Access-Control-Allow-Origin" : {
"type" : "string"
}
2022-04-11 09:35:06 +00:00
}
} ,
"400" : {
2022-07-20 15:16:30 +00:00
"description" : "Bad request." ,
2022-04-11 09:35:06 +00:00
"schema" : {
2022-07-07 12:59:38 +00:00
"$ref" : "#/definitions/ErrorResponse"
2022-04-11 09:35:06 +00:00
}
}
}
2022-08-05 19:09:19 +00:00
} ,
"options" : {
"security" : [ ] ,
"operationId" : "optionsContainersPutList" ,
"responses" : {
"200" : {
"description" : "CORS" ,
"headers" : {
"Access-Control-Allow-Headers" : {
"type" : "string"
} ,
"Access-Control-Allow-Methods" : {
"type" : "string"
} ,
"Access-Control-Allow-Origin" : {
"type" : "string"
}
}
}
}
2022-04-13 15:23:03 +00:00
}
2022-04-11 09:35:06 +00:00
} ,
"/containers/{containerId}" : {
"get" : {
"security" : [ ] ,
"summary" : "Get container by id" ,
"operationId" : "getContainer" ,
2022-04-13 08:41:04 +00:00
"responses" : {
"200" : {
2022-07-20 15:16:30 +00:00
"description" : "Container info." ,
2022-04-13 08:41:04 +00:00
"schema" : {
"$ref" : "#/definitions/ContainerInfo"
2022-08-05 19:09:19 +00:00
} ,
"headers" : {
"Access-Control-Allow-Origin" : {
"type" : "string"
}
2022-04-13 08:41:04 +00:00
}
} ,
"400" : {
2022-07-20 15:16:30 +00:00
"description" : "Bad request." ,
2022-04-13 08:41:04 +00:00
"schema" : {
2022-07-07 12:59:38 +00:00
"$ref" : "#/definitions/ErrorResponse"
2022-04-13 08:41:04 +00:00
}
}
}
} ,
"delete" : {
"summary" : "Delete container by id" ,
"operationId" : "deleteContainer" ,
2022-04-11 09:35:06 +00:00
"parameters" : [
{
"type" : "string" ,
2022-07-20 15:16:30 +00:00
"description" : "Base64 encoded signature for bearer token." ,
2022-04-14 08:53:13 +00:00
"name" : "X-Bearer-Signature" ,
2022-08-18 15:41:33 +00:00
"in" : "header"
2022-04-13 08:41:04 +00:00
} ,
{
"type" : "string" ,
2022-07-20 15:16:30 +00:00
"description" : "Hex encoded the public part of the key that signed the bearer token." ,
2022-04-14 08:53:13 +00:00
"name" : "X-Bearer-Signature-Key" ,
2022-08-18 15:41:33 +00:00
"in" : "header"
2022-04-15 07:03:00 +00:00
} ,
{
"type" : "boolean" ,
"default" : false ,
2022-07-20 15:16:30 +00:00
"description" : "Use wallet connect signature scheme or native NeoFS signature." ,
2022-04-15 07:03:00 +00:00
"name" : "walletConnect" ,
"in" : "query"
2022-04-11 09:35:06 +00:00
}
] ,
"responses" : {
2022-07-07 09:29:51 +00:00
"200" : {
2022-07-20 15:16:30 +00:00
"description" : "Successful deletion." ,
2022-07-07 09:29:51 +00:00
"schema" : {
"$ref" : "#/definitions/SuccessResponse"
2022-08-05 19:09:19 +00:00
} ,
"headers" : {
"Access-Control-Allow-Origin" : {
"type" : "string"
}
2022-07-07 09:29:51 +00:00
}
2022-04-11 09:35:06 +00:00
} ,
"400" : {
2022-07-20 15:16:30 +00:00
"description" : "Bad request." ,
2022-04-11 09:35:06 +00:00
"schema" : {
2022-07-07 12:59:38 +00:00
"$ref" : "#/definitions/ErrorResponse"
2022-04-11 09:35:06 +00:00
}
}
}
2022-04-13 08:41:04 +00:00
} ,
2022-08-05 19:09:19 +00:00
"options" : {
"security" : [ ] ,
"operationId" : "optionsContainersGetDelete" ,
"responses" : {
"200" : {
"description" : "CORS" ,
"headers" : {
"Access-Control-Allow-Headers" : {
"type" : "string"
} ,
"Access-Control-Allow-Methods" : {
"type" : "string"
} ,
"Access-Control-Allow-Origin" : {
"type" : "string"
}
}
}
}
} ,
2022-04-13 08:41:04 +00:00
"parameters" : [
{
"type" : "string" ,
2022-07-20 15:16:30 +00:00
"description" : "Base58 encoded container id." ,
2022-04-13 08:41:04 +00:00
"name" : "containerId" ,
"in" : "path" ,
"required" : true
}
]
2022-04-11 09:35:06 +00:00
} ,
2022-04-13 13:00:04 +00:00
"/containers/{containerId}/eacl" : {
"get" : {
"security" : [ ] ,
"summary" : "Get container EACL by id" ,
"operationId" : "getContainerEACL" ,
"responses" : {
"200" : {
2022-07-20 15:16:30 +00:00
"description" : "Container EACL information." ,
2022-04-13 13:00:04 +00:00
"schema" : {
"$ref" : "#/definitions/Eacl"
2022-08-05 19:09:19 +00:00
} ,
"headers" : {
"Access-Control-Allow-Origin" : {
"type" : "string"
}
2022-04-13 13:00:04 +00:00
}
} ,
"400" : {
2022-07-20 15:16:30 +00:00
"description" : "Bad request." ,
2022-04-13 13:00:04 +00:00
"schema" : {
2022-07-07 12:59:38 +00:00
"$ref" : "#/definitions/ErrorResponse"
2022-04-13 13:00:04 +00:00
}
}
}
} ,
"put" : {
"summary" : "Set container EACL by id" ,
"operationId" : "putContainerEACL" ,
"parameters" : [
{
"type" : "string" ,
2022-07-20 15:16:30 +00:00
"description" : "Base64 encoded signature for bearer token." ,
2022-04-14 08:53:13 +00:00
"name" : "X-Bearer-Signature" ,
2022-08-18 15:41:33 +00:00
"in" : "header"
2022-04-13 13:00:04 +00:00
} ,
{
"type" : "string" ,
2022-07-20 15:16:30 +00:00
"description" : "Hex encoded the public part of the key that signed the bearer token." ,
2022-04-14 08:53:13 +00:00
"name" : "X-Bearer-Signature-Key" ,
2022-08-18 15:41:33 +00:00
"in" : "header"
2022-04-13 13:00:04 +00:00
} ,
2022-04-15 07:03:00 +00:00
{
"type" : "boolean" ,
"default" : false ,
2022-07-20 15:16:30 +00:00
"description" : "Use wallet connect signature scheme or native NeoFS signature." ,
2022-04-15 07:03:00 +00:00
"name" : "walletConnect" ,
"in" : "query"
} ,
2022-04-13 13:00:04 +00:00
{
2022-07-20 15:16:30 +00:00
"description" : "EACL for container." ,
2022-04-13 13:00:04 +00:00
"name" : "eacl" ,
"in" : "body" ,
"required" : true ,
"schema" : {
"$ref" : "#/definitions/Eacl"
}
}
] ,
"responses" : {
"200" : {
2022-07-20 15:16:30 +00:00
"description" : "Successful EACL updating." ,
2022-07-07 09:29:51 +00:00
"schema" : {
"$ref" : "#/definitions/SuccessResponse"
2022-08-05 19:09:19 +00:00
} ,
"headers" : {
"Access-Control-Allow-Origin" : {
"type" : "string"
}
2022-07-07 09:29:51 +00:00
}
2022-04-13 13:00:04 +00:00
} ,
"400" : {
2022-07-20 15:16:30 +00:00
"description" : "Bad request." ,
2022-04-13 13:00:04 +00:00
"schema" : {
2022-07-07 12:59:38 +00:00
"$ref" : "#/definitions/ErrorResponse"
2022-04-13 13:00:04 +00:00
}
}
}
} ,
2022-08-05 19:09:19 +00:00
"options" : {
"security" : [ ] ,
"operationId" : "optionsContainersEACL" ,
"responses" : {
"200" : {
"description" : "CORS" ,
"headers" : {
"Access-Control-Allow-Headers" : {
"type" : "string"
} ,
"Access-Control-Allow-Methods" : {
"type" : "string"
} ,
"Access-Control-Allow-Origin" : {
"type" : "string"
}
}
}
}
} ,
2022-04-13 13:00:04 +00:00
"parameters" : [
{
"type" : "string" ,
2022-07-20 15:16:30 +00:00
"description" : "Base58 encoded container id." ,
2022-04-13 13:00:04 +00:00
"name" : "containerId" ,
"in" : "path" ,
"required" : true
}
]
} ,
2022-04-11 09:35:06 +00:00
"/objects" : {
"put" : {
"consumes" : [
"application/json"
] ,
"produces" : [
"application/json"
] ,
"summary" : "Upload object to NeoFS" ,
"operationId" : "putObject" ,
"parameters" : [
2022-08-05 19:09:19 +00:00
{
"type" : "string" ,
"description" : "Base64 encoded signature for bearer token." ,
"name" : "X-Bearer-Signature" ,
2022-08-18 15:41:33 +00:00
"in" : "header"
2022-08-05 19:09:19 +00:00
} ,
{
"type" : "string" ,
"description" : "Hex encoded the public part of the key that signed the bearer token." ,
"name" : "X-Bearer-Signature-Key" ,
2022-08-18 15:41:33 +00:00
"in" : "header"
2022-08-05 19:09:19 +00:00
} ,
{
"type" : "boolean" ,
"default" : false ,
"description" : "Use wallet connect signature scheme or native NeoFS signature." ,
"name" : "walletConnect" ,
"in" : "query"
} ,
2022-08-18 15:41:33 +00:00
{
"type" : "boolean" ,
"default" : false ,
"description" : "Provided bearer token is final or gate should assemble it using signature." ,
"name" : "fullBearer" ,
"in" : "query"
} ,
2022-04-11 09:35:06 +00:00
{
"description" : "Object info to upload" ,
"name" : "object" ,
"in" : "body" ,
"required" : true ,
"schema" : {
2022-04-20 14:52:41 +00:00
"$ref" : "#/definitions/ObjectUpload"
2022-04-11 09:35:06 +00:00
}
}
] ,
"responses" : {
"200" : {
"description" : "Address of uploaded objects" ,
"schema" : {
2022-04-18 08:30:34 +00:00
"$ref" : "#/definitions/Address"
2022-08-05 19:09:19 +00:00
} ,
"headers" : {
"Access-Control-Allow-Origin" : {
"type" : "string"
}
2022-04-18 08:30:34 +00:00
}
} ,
"400" : {
"description" : "Bad request" ,
"schema" : {
2022-07-07 12:59:38 +00:00
"$ref" : "#/definitions/ErrorResponse"
2022-04-18 08:30:34 +00:00
}
}
}
} ,
2022-08-05 19:09:19 +00:00
"options" : {
"security" : [ ] ,
"operationId" : "optionsObjectsPut" ,
"responses" : {
"200" : {
"description" : "CORS" ,
"headers" : {
"Access-Control-Allow-Headers" : {
"type" : "string"
} ,
"Access-Control-Allow-Methods" : {
"type" : "string"
} ,
"Access-Control-Allow-Origin" : {
"type" : "string"
}
}
}
2022-04-18 08:30:34 +00:00
}
2022-08-05 19:09:19 +00:00
}
2022-04-18 08:30:34 +00:00
} ,
"/objects/{containerId}/search" : {
"post" : {
2022-10-26 09:40:17 +00:00
"security" : [
{ } ,
{
"BearerAuth" : [ ]
}
] ,
2022-04-18 08:30:34 +00:00
"summary" : "Search objects by filters" ,
"operationId" : "searchObjects" ,
"parameters" : [
2022-08-05 19:09:19 +00:00
{
"type" : "string" ,
"description" : "Base64 encoded signature for bearer token." ,
"name" : "X-Bearer-Signature" ,
2022-08-18 15:41:33 +00:00
"in" : "header"
2022-08-05 19:09:19 +00:00
} ,
{
"type" : "string" ,
"description" : "Hex encoded the public part of the key that signed the bearer token." ,
"name" : "X-Bearer-Signature-Key" ,
2022-08-18 15:41:33 +00:00
"in" : "header"
2022-08-05 19:09:19 +00:00
} ,
{
"type" : "boolean" ,
"default" : false ,
"description" : "Use wallet connect signature scheme or native NeoFS signature." ,
"name" : "walletConnect" ,
"in" : "query"
} ,
2022-08-18 15:41:33 +00:00
{
"type" : "boolean" ,
"default" : false ,
"description" : "Provided bearer token is final or gate should assemble it using signature." ,
"name" : "fullBearer" ,
"in" : "query"
} ,
2022-04-18 08:30:34 +00:00
{
"minimum" : 0 ,
"type" : "integer" ,
"default" : 0 ,
"description" : "The number of containers to skip before starting to collect the result set." ,
"name" : "offset" ,
"in" : "query"
} ,
{
"maximum" : 10000 ,
"minimum" : 1 ,
"type" : "integer" ,
"default" : 100 ,
"description" : "The numbers of containers to return." ,
"name" : "limit" ,
"in" : "query"
} ,
{
2022-07-20 15:16:30 +00:00
"description" : "Filters to search objects." ,
2022-04-18 08:30:34 +00:00
"name" : "searchFilters" ,
"in" : "body" ,
"required" : true ,
"schema" : {
"$ref" : "#/definitions/SearchFilters"
}
}
] ,
"responses" : {
"200" : {
"description" : "List of objects" ,
"schema" : {
"$ref" : "#/definitions/ObjectList"
2022-08-05 19:09:19 +00:00
} ,
"headers" : {
"Access-Control-Allow-Origin" : {
"type" : "string"
}
2022-04-11 09:35:06 +00:00
}
} ,
"400" : {
"description" : "Bad request" ,
"schema" : {
2022-07-07 12:59:38 +00:00
"$ref" : "#/definitions/ErrorResponse"
2022-04-11 09:35:06 +00:00
}
}
}
} ,
2022-08-05 19:09:19 +00:00
"options" : {
"security" : [ ] ,
"operationId" : "optionsObjectsSearch" ,
"responses" : {
"200" : {
"description" : "Base64 encoded stable binary marshaled bearer token." ,
"headers" : {
"Access-Control-Allow-Headers" : {
"type" : "string"
} ,
"Access-Control-Allow-Origin" : {
"type" : "string"
}
}
}
}
} ,
2022-04-11 09:35:06 +00:00
"parameters" : [
2022-04-18 08:30:34 +00:00
{
"type" : "string" ,
2022-07-20 15:16:30 +00:00
"description" : "Base58 encoded container id." ,
2022-04-18 08:30:34 +00:00
"name" : "containerId" ,
"in" : "path" ,
"required" : true
2022-04-11 09:35:06 +00:00
}
]
2022-04-11 11:18:26 +00:00
} ,
"/objects/{containerId}/{objectId}" : {
"get" : {
2022-10-26 09:40:17 +00:00
"security" : [
{ } ,
{
"BearerAuth" : [ ]
}
] ,
2022-04-20 14:10:43 +00:00
"summary" : "Get object info by address" ,
2022-04-11 11:18:26 +00:00
"operationId" : "getObjectInfo" ,
2022-04-20 14:10:43 +00:00
"parameters" : [
2022-08-05 19:09:19 +00:00
{
"type" : "string" ,
"description" : "Base64 encoded signature for bearer token." ,
"name" : "X-Bearer-Signature" ,
2022-08-18 15:41:33 +00:00
"in" : "header"
2022-08-05 19:09:19 +00:00
} ,
{
"type" : "string" ,
"description" : "Hex encoded the public part of the key that signed the bearer token." ,
"name" : "X-Bearer-Signature-Key" ,
2022-08-18 15:41:33 +00:00
"in" : "header"
2022-08-05 19:09:19 +00:00
} ,
{
"type" : "boolean" ,
"default" : false ,
"description" : "Use wallet connect signature scheme or native NeoFS signature." ,
"name" : "walletConnect" ,
"in" : "query"
} ,
2022-08-18 15:41:33 +00:00
{
"type" : "boolean" ,
"default" : false ,
"description" : "Provided bearer token is final or gate should assemble it using signature." ,
"name" : "fullBearer" ,
"in" : "query"
} ,
2022-04-20 14:10:43 +00:00
{
"minimum" : 0 ,
"type" : "integer" ,
2022-07-20 15:16:30 +00:00
"description" : "Range offset to start reading data." ,
2022-04-20 14:10:43 +00:00
"name" : "range-offset" ,
"in" : "query"
} ,
{
"minimum" : 1 ,
"type" : "integer" ,
2022-07-20 15:16:30 +00:00
"description" : "Length of data range." ,
2022-04-20 14:10:43 +00:00
"name" : "range-length" ,
"in" : "query"
} ,
{
"maximum" : 524288000 ,
"minimum" : 0 ,
"type" : "integer" ,
"default" : 4194304 ,
"description" : "Max payload size (in bytes) that can be included in the response.\nIf the actual size is greater than this params the payload won't be included in the response.\n" ,
"name" : "max-payload-size" ,
"in" : "query"
}
] ,
2022-04-11 11:18:26 +00:00
"responses" : {
"200" : {
"description" : "Object info" ,
"schema" : {
"$ref" : "#/definitions/ObjectInfo"
2022-08-05 19:09:19 +00:00
} ,
"headers" : {
"Access-Control-Allow-Origin" : {
"type" : "string"
}
2022-04-11 11:18:26 +00:00
}
} ,
"400" : {
"description" : "Bad request" ,
"schema" : {
2022-07-07 12:59:38 +00:00
"$ref" : "#/definitions/ErrorResponse"
2022-04-11 11:18:26 +00:00
}
}
}
} ,
2022-04-14 08:53:13 +00:00
"delete" : {
"summary" : "Remove object from NeoFS" ,
"operationId" : "deleteObject" ,
2022-08-05 19:09:19 +00:00
"parameters" : [
{
"type" : "string" ,
"description" : "Base64 encoded signature for bearer token." ,
"name" : "X-Bearer-Signature" ,
2022-08-18 15:41:33 +00:00
"in" : "header"
2022-08-05 19:09:19 +00:00
} ,
{
"type" : "string" ,
"description" : "Hex encoded the public part of the key that signed the bearer token." ,
"name" : "X-Bearer-Signature-Key" ,
2022-08-18 15:41:33 +00:00
"in" : "header"
2022-08-05 19:09:19 +00:00
} ,
{
"type" : "boolean" ,
"default" : false ,
"description" : "Use wallet connect signature scheme or native NeoFS signature." ,
"name" : "walletConnect" ,
"in" : "query"
2022-08-18 15:41:33 +00:00
} ,
{
"type" : "boolean" ,
"default" : false ,
"description" : "Provided bearer token is final or gate should assemble it using signature." ,
"name" : "fullBearer" ,
"in" : "query"
2022-08-05 19:09:19 +00:00
}
] ,
2022-04-14 08:53:13 +00:00
"responses" : {
2022-07-07 09:29:51 +00:00
"200" : {
2022-07-20 15:16:30 +00:00
"description" : "Successful deletion." ,
2022-07-07 09:29:51 +00:00
"schema" : {
"$ref" : "#/definitions/SuccessResponse"
2022-08-05 19:09:19 +00:00
} ,
"headers" : {
"Access-Control-Allow-Origin" : {
"type" : "string"
}
2022-07-07 09:29:51 +00:00
}
2022-04-14 08:53:13 +00:00
} ,
"400" : {
2022-07-20 15:16:30 +00:00
"description" : "Bad request." ,
2022-04-14 08:53:13 +00:00
"schema" : {
2022-07-07 12:59:38 +00:00
"$ref" : "#/definitions/ErrorResponse"
2022-04-14 08:53:13 +00:00
}
}
}
} ,
2022-08-05 19:09:19 +00:00
"options" : {
"security" : [ ] ,
"operationId" : "optionsObjectsGetDelete" ,
"responses" : {
"200" : {
"description" : "CORS" ,
"headers" : {
"Access-Control-Allow-Headers" : {
"type" : "string"
} ,
"Access-Control-Allow-Methods" : {
"type" : "string"
} ,
"Access-Control-Allow-Origin" : {
"type" : "string"
}
}
}
}
} ,
2022-04-11 11:18:26 +00:00
"parameters" : [
{
"type" : "string" ,
2022-07-20 15:16:30 +00:00
"description" : "Base58 encoded container id." ,
2022-04-11 11:18:26 +00:00
"name" : "containerId" ,
"in" : "path" ,
"required" : true
} ,
{
"type" : "string" ,
2022-07-20 15:16:30 +00:00
"description" : "Base58 encoded object id." ,
2022-04-11 11:18:26 +00:00
"name" : "objectId" ,
"in" : "path" ,
"required" : true
}
]
2022-04-11 09:35:06 +00:00
}
} ,
"definitions" : {
"Action" : {
2022-07-20 15:16:30 +00:00
"description" : "Rule execution result action in NeoFS EACL. Either allows or denies access if the rule's filters match." ,
2022-04-11 09:35:06 +00:00
"type" : "string" ,
"enum" : [
"ALLOW" ,
"DENY"
]
} ,
2022-04-18 08:30:34 +00:00
"Address" : {
2022-07-20 15:16:30 +00:00
"description" : "Address of the object in NeoFS." ,
2022-04-18 08:30:34 +00:00
"type" : "object" ,
"required" : [
"containerId" ,
"objectId"
] ,
"properties" : {
"containerId" : {
"type" : "string"
} ,
"objectId" : {
"type" : "string"
}
} ,
"example" : {
"containerId" : "5HZTn5qkRnmgSz9gSrw22CEdPPk6nQhkwf2Mgzyvkikv" ,
"objectId" : "8N3o7Dtr6T1xteCt6eRwhpmJ7JhME58Hyu1dvaswuTDd"
}
} ,
2022-04-11 09:35:06 +00:00
"Attribute" : {
2022-07-20 15:16:30 +00:00
"description" : "Attribute is a pair of strings that can be attached to a container or an object." ,
2022-04-11 09:35:06 +00:00
"type" : "object" ,
2022-04-11 11:18:26 +00:00
"required" : [
"key" ,
"value"
] ,
2022-04-11 09:35:06 +00:00
"properties" : {
"key" : {
"type" : "string"
} ,
"value" : {
"type" : "string"
}
2022-07-20 15:16:30 +00:00
} ,
"example" : {
"key" : "User-Defined-Tag" ,
"value" : "tag value"
2022-04-11 09:35:06 +00:00
}
} ,
2022-07-28 16:57:40 +00:00
"Balance" : {
"type" : "object" ,
"required" : [
"address" ,
"value" ,
"precision"
] ,
"properties" : {
"address" : {
"type" : "string"
} ,
"precision" : {
"type" : "integer"
} ,
"value" : {
"type" : "string"
}
}
} ,
2022-04-11 09:35:06 +00:00
"Bearer" : {
2022-07-20 15:16:30 +00:00
"description" : "Bearer token that is expected to be formed." ,
2022-04-11 09:35:06 +00:00
"type" : "object" ,
"properties" : {
"container" : {
"$ref" : "#/definitions/Rule"
} ,
2022-07-07 09:02:05 +00:00
"name" : {
"type" : "string"
} ,
2022-04-11 09:35:06 +00:00
"object" : {
"type" : "array" ,
"items" : {
"$ref" : "#/definitions/Record"
}
}
2022-07-20 15:16:30 +00:00
} ,
"example" : [
{
"name" : "my-bearer-token" ,
"object" : [
{
"action" : "ALLOW" ,
"filters" : [ ] ,
"operation" : "GET" ,
"targets" : [
{
"keys" : [ ] ,
"role" : "OTHERS"
}
]
}
]
} ,
{
"container" : {
"verb" : "PUT"
} ,
"name" : "my token to create container"
}
]
2022-04-11 09:35:06 +00:00
} ,
2022-08-18 14:35:53 +00:00
"BinaryBearer" : {
"description" : "Bearer token for object operations that is represented in binary form." ,
"type" : "object" ,
"required" : [
"token"
] ,
"properties" : {
"token" : {
"description" : "Base64 encoded bearer token." ,
"type" : "string"
}
} ,
"example" : {
"token" : "ChIKDAoAGggIARABIgIIAxoCCGQSZgohA+J5jFWFMiOpyvMZBu9wwPTKsWsG0q206kVe63iuWP/wEkEE4SIV0QngnKppDf54QezUKmar7UQby6HzufT5yVIOvj7QEqZnOavrKW0chCeCwP0khda/j9k00ct6NMEDxQFW+g=="
}
} ,
2022-04-11 09:35:06 +00:00
"ContainerInfo" : {
2022-07-20 15:16:30 +00:00
"description" : "Information about container." ,
2022-04-11 09:35:06 +00:00
"type" : "object" ,
2022-04-11 11:18:26 +00:00
"required" : [
"containerId" ,
2022-07-19 14:48:28 +00:00
"containerName" ,
2022-04-11 11:18:26 +00:00
"version" ,
"ownerId" ,
"basicAcl" ,
"placementPolicy" ,
"attributes"
] ,
2022-04-11 09:35:06 +00:00
"properties" : {
"attributes" : {
"type" : "array" ,
"items" : {
"$ref" : "#/definitions/Attribute"
}
} ,
"basicAcl" : {
"type" : "string"
} ,
2022-08-17 09:22:59 +00:00
"cannedAcl" : {
"description" : "The friendly name for the basicAcl field." ,
"type" : "string"
} ,
2022-04-11 09:35:06 +00:00
"containerId" : {
"type" : "string"
} ,
2022-07-19 14:48:28 +00:00
"containerName" : {
"type" : "string"
} ,
2022-04-11 09:35:06 +00:00
"ownerId" : {
"type" : "string"
} ,
"placementPolicy" : {
"type" : "string"
} ,
"version" : {
"type" : "string"
}
} ,
"example" : {
"attribute" : [
{
"key" : "Timestamp" ,
"value" : "1648810072"
} ,
{
"key" : "Name" ,
"value" : "container"
}
] ,
"basicAcl" : "0x1fbf9fff" ,
"containerId" : "5HZTn5qkRnmgSz9gSrw22CEdPPk6nQhkwf2Mgzyvkikv" ,
2022-07-20 15:16:30 +00:00
"containerName" : "container" ,
2022-04-11 09:35:06 +00:00
"ownerId" : "NbUgTSFvPmsRxmGeWpuuGeJUoRoi6PErcM" ,
"placementPolicy" : "REP 2" ,
"version" : "2.11"
}
} ,
2022-04-13 15:23:03 +00:00
"ContainerList" : {
2022-07-20 15:16:30 +00:00
"description" : "List of containers info" ,
2022-04-13 15:23:03 +00:00
"type" : "object" ,
"required" : [
"size" ,
"containers"
] ,
"properties" : {
"containers" : {
"type" : "array" ,
"items" : {
2022-07-07 14:55:13 +00:00
"$ref" : "#/definitions/ContainerInfo"
2022-04-13 15:23:03 +00:00
}
} ,
"size" : {
"type" : "integer"
}
2022-07-20 15:16:30 +00:00
} ,
"example" : {
"containers" : [
{
"attribute" : [
{
"key" : "Timestamp" ,
"value" : "1648810072"
} ,
{
"key" : "Name" ,
"value" : "container"
}
] ,
"basicAcl" : "0x1fbf9fff" ,
"containerId" : "5HZTn5qkRnmgSz9gSrw22CEdPPk6nQhkwf2Mgzyvkikv" ,
"containerName" : "container" ,
"ownerId" : "NbUgTSFvPmsRxmGeWpuuGeJUoRoi6PErcM" ,
"placementPolicy" : "REP 2" ,
"version" : "2.11"
} ,
{
"attribute" : [
{
"key" : "Name" ,
"value" : "container2"
}
] ,
"basicAcl" : "0x1fbf9fff" ,
"containerId" : "FsE7HLQBBYc2WFJzuTXMcpspDEmwUxsD5YmNb2r25uUu" ,
"containerName" : "container2" ,
"ownerId" : "NbUgTSFvPmsRxmGeWpuuGeJUoRoi6PErcM" ,
"placementPolicy" : "REP 1" ,
"version" : "2.11"
}
] ,
"size" : 2
2022-04-13 15:23:03 +00:00
}
} ,
2022-07-19 14:48:28 +00:00
"ContainerPutInfo" : {
2022-07-20 15:16:30 +00:00
"description" : "Request body to create container. To specify container name use appropriate property (name provided in attributes will be ignored)." ,
2022-07-19 14:48:28 +00:00
"type" : "object" ,
"properties" : {
"attributes" : {
"type" : "array" ,
"items" : {
"$ref" : "#/definitions/Attribute"
}
} ,
"basicAcl" : {
"type" : "string"
} ,
"containerName" : {
"type" : "string"
} ,
"placementPolicy" : {
"type" : "string"
}
} ,
"example" : {
"attributes" : [
{
"key" : "Custom-Attribute" ,
"value" : "value"
}
] ,
"basicAcl" : "public-read-write" ,
"containerName" : "container" ,
"placementPolicy" : "REP 3"
}
} ,
2022-04-13 13:00:04 +00:00
"Eacl" : {
2022-07-20 15:16:30 +00:00
"description" : "EACL NeoFS table." ,
2022-04-13 13:00:04 +00:00
"type" : "object" ,
"required" : [
"records"
] ,
"properties" : {
"containerId" : {
"type" : "string" ,
"readOnly" : true
} ,
"records" : {
"type" : "array" ,
"items" : {
"$ref" : "#/definitions/Record"
}
}
2022-07-20 15:16:30 +00:00
} ,
"example" : {
"containerId" : "5HZTn5qkRnmgSz9gSrw22CEdPPk6nQhkwf2Mgzyvkikv" ,
"records" : [
{
"action" : "GET" ,
"filters" : [
{
"headerType" : "OBJECT" ,
"key" : "FileName" ,
"matchType" : "STRING_EQUAL" ,
"value" : "myfile"
}
] ,
"operation" : "ALLOW" ,
"targets" : [
{
"role" : "OTHERS"
}
]
}
]
2022-04-13 13:00:04 +00:00
}
} ,
2022-07-07 12:59:38 +00:00
"ErrorResponse" : {
2022-07-20 15:16:30 +00:00
"description" : "Error response." ,
2022-07-07 12:59:38 +00:00
"type" : "object" ,
"required" : [
"type" ,
"message"
] ,
"properties" : {
"code" : {
"type" : "integer"
} ,
"message" : {
"type" : "string"
} ,
"type" : {
"$ref" : "#/definitions/ErrorType"
}
2022-07-20 15:16:30 +00:00
} ,
"example" : {
"code" : 1024 ,
"message" : "incomplete object PUT by placement" ,
"type" : "API"
2022-07-07 12:59:38 +00:00
}
} ,
"ErrorType" : {
2022-07-20 15:16:30 +00:00
"description" : "Error type. Allow determine source of the error." ,
2022-07-07 12:59:38 +00:00
"type" : "string" ,
"enum" : [
"GW" ,
"API"
]
2022-04-11 09:35:06 +00:00
} ,
"Filter" : {
2022-07-20 15:16:30 +00:00
"description" : "Filter in NeoFS EACL to check particular properties of the request or the object." ,
2022-04-11 09:35:06 +00:00
"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" : {
2022-07-20 15:16:30 +00:00
"description" : "Enumeration of possible sources of Headers to apply filters in NeoFS EACL." ,
2022-04-11 09:35:06 +00:00
"type" : "string" ,
"enum" : [
"REQUEST" ,
"OBJECT" ,
"SERVICE"
]
} ,
"MatchType" : {
2022-07-20 15:16:30 +00:00
"description" : "Match type in NeoFS EACL filter." ,
2022-04-11 09:35:06 +00:00
"type" : "string" ,
"enum" : [
"STRING_EQUAL" ,
"STRING_NOT_EQUAL"
]
} ,
2022-04-18 08:30:34 +00:00
"ObjectBaseInfo" : {
2022-07-20 15:16:30 +00:00
"description" : "Basic object information." ,
2022-04-18 08:30:34 +00:00
"type" : "object" ,
"required" : [
"address"
] ,
"properties" : {
"address" : {
"$ref" : "#/definitions/Address"
} ,
2022-08-11 09:47:46 +00:00
"filePath" : {
"type" : "string"
} ,
2022-04-18 08:30:34 +00:00
"name" : {
"type" : "string"
}
2022-07-20 15:16:30 +00:00
} ,
"example" : {
"address" : {
"containerId" : "5HZTn5qkRnmgSz9gSrw22CEdPPk6nQhkwf2Mgzyvkikv" ,
"objectId" : "8N3o7Dtr6T1xteCt6eRwhpmJ7JhME58Hyu1dvaswuTDd"
} ,
2022-08-11 09:47:46 +00:00
"filePath" : "/my/object/name.txt" ,
"name" : "name.txt"
2022-04-18 08:30:34 +00:00
}
} ,
2022-04-11 11:18:26 +00:00
"ObjectInfo" : {
2022-07-20 15:16:30 +00:00
"description" : "Object information." ,
2022-04-11 11:18:26 +00:00
"type" : "object" ,
"required" : [
"containerId" ,
"objectId" ,
"ownerId" ,
2022-04-20 14:10:43 +00:00
"attributes" ,
"objectSize" ,
"payloadSize"
2022-04-11 11:18:26 +00:00
] ,
"properties" : {
"attributes" : {
"type" : "array" ,
"items" : {
"$ref" : "#/definitions/Attribute"
}
} ,
"containerId" : {
"type" : "string"
} ,
"objectId" : {
"type" : "string"
} ,
2022-04-20 14:10:43 +00:00
"objectSize" : {
"description" : "Object full payload size" ,
"type" : "integer"
} ,
2022-04-11 11:18:26 +00:00
"ownerId" : {
"type" : "string"
2022-04-20 14:10:43 +00:00
} ,
"payload" : {
"description" : "Base64 encoded object payload" ,
"type" : "string"
} ,
"payloadSize" : {
"description" : "Payload size in response" ,
"type" : "integer"
2022-04-11 11:18:26 +00:00
}
} ,
"example" : {
"attribute" : [
{
"key" : "Timestamp" ,
"value" : "1648810072"
} ,
{
"key" : "Name" ,
"value" : "object"
}
] ,
"containerId" : "5HZTn5qkRnmgSz9gSrw22CEdPPk6nQhkwf2Mgzyvkikv" ,
"objectId" : "8N3o7Dtr6T1xteCt6eRwhpmJ7JhME58Hyu1dvaswuTDd" ,
"ownerId" : "NbUgTSFvPmsRxmGeWpuuGeJUoRoi6PErcM"
}
} ,
2022-04-18 08:30:34 +00:00
"ObjectList" : {
2022-07-20 15:16:30 +00:00
"description" : "List of objects." ,
2022-04-18 08:30:34 +00:00
"type" : "object" ,
"required" : [
"size" ,
"objects"
] ,
"properties" : {
"objects" : {
"type" : "array" ,
"items" : {
"$ref" : "#/definitions/ObjectBaseInfo"
}
} ,
"size" : {
"type" : "integer"
}
2022-07-20 15:16:30 +00:00
} ,
"example" : {
"objects" : [
{
"address" : {
"containerId" : "5HZTn5qkRnmgSz9gSrw22CEdPPk6nQhkwf2Mgzyvkikv" ,
"objectId" : "8N3o7Dtr6T1xteCt6eRwhpmJ7JhME58Hyu1dvaswuTDd"
} ,
"name" : "/my/object/name"
} ,
{
"address" : {
"containerId" : "5HZTn5qkRnmgSz9gSrw22CEdPPk6nQhkwf2Mgzyvkikv" ,
"objectId" : "3GbmMWusaWgMHokWui2zDunxMTzButuQMVLbtL3cDn8s"
} ,
"name" : "/my/object/some/other/name"
}
] ,
"size" : 2
2022-04-18 08:30:34 +00:00
}
} ,
2022-04-20 14:52:41 +00:00
"ObjectUpload" : {
2022-07-20 15:16:30 +00:00
"description" : "Request body to create object." ,
2022-04-20 14:52:41 +00:00
"type" : "object" ,
"required" : [
"containerId" ,
"fileName"
] ,
"properties" : {
"attributes" : {
"type" : "array" ,
"items" : {
"$ref" : "#/definitions/Attribute"
}
} ,
"containerId" : {
"type" : "string"
} ,
"fileName" : {
"type" : "string"
} ,
"payload" : {
"type" : "string"
}
} ,
"example" : {
"attributes" : [
{
"key" : "User-Attribute" ,
"value" : "some-value"
}
] ,
"containerId" : "5HZTn5qkRnmgSz9gSrw22CEdPPk6nQhkwf2Mgzyvkikv" ,
"fileName" : "myFile.txt" ,
"payload" : "Y29udGVudCBvZiBmaWxl"
}
} ,
2022-04-11 09:35:06 +00:00
"Operation" : {
2022-07-20 15:16:30 +00:00
"description" : "Request's operation type to match in NeoFS EACL if the rule is applicable to a particular request." ,
2022-04-11 09:35:06 +00:00
"type" : "string" ,
"enum" : [
"GET" ,
"HEAD" ,
"PUT" ,
"DELETE" ,
"SEARCH" ,
"RANGE" ,
"RANGEHASH"
]
} ,
"Principal" : {
"type" : "string"
} ,
"Record" : {
2022-07-20 15:16:30 +00:00
"description" : "A single NeoFS EACL rule." ,
2022-04-11 09:35:06 +00:00
"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" : {
2022-07-20 15:16:30 +00:00
"description" : "Role for target in EACL." ,
2022-04-11 09:35:06 +00:00
"type" : "string" ,
"enum" : [
"USER" ,
"SYSTEM" ,
2022-08-29 14:16:41 +00:00
"OTHERS" ,
"KEYS"
2022-04-11 09:35:06 +00:00
]
} ,
"Rule" : {
2022-07-20 15:16:30 +00:00
"description" : "Container session token rule." ,
2022-04-11 09:35:06 +00:00
"type" : "object" ,
"required" : [
"verb"
] ,
"properties" : {
"containerId" : {
"type" : "string"
} ,
"verb" : {
"$ref" : "#/definitions/Verb"
}
2022-07-20 15:16:30 +00:00
} ,
"example" : {
"containerId" : "6jvKJCQr6e47Yx8SsbSN3fNgzroUJVkY66Q9wqxYcAjc" ,
"verb" : "DELETE"
2022-04-11 09:35:06 +00:00
}
} ,
2022-04-18 08:30:34 +00:00
"SearchFilter" : {
2022-07-20 15:16:30 +00:00
"description" : "Search filter to find objects." ,
2022-04-18 08:30:34 +00:00
"type" : "object" ,
"required" : [
"key" ,
"value" ,
"match"
] ,
"properties" : {
"key" : {
"type" : "string"
} ,
"match" : {
"$ref" : "#/definitions/SearchMatch"
} ,
"value" : {
"type" : "string"
}
2022-07-20 15:16:30 +00:00
} ,
"example" : {
"key" : "FileName" ,
"match" : "MatchStringEqual" ,
"value" : "object-name"
2022-04-18 08:30:34 +00:00
}
} ,
"SearchFilters" : {
2022-07-20 15:16:30 +00:00
"description" : "List of SearchFilter elements." ,
2022-04-18 08:30:34 +00:00
"type" : "object" ,
"required" : [
"filters"
] ,
"properties" : {
"filters" : {
"type" : "array" ,
"items" : {
"$ref" : "#/definitions/SearchFilter"
}
}
2022-07-20 15:16:30 +00:00
} ,
"example" : {
"filters" : [
{
"key" : "FileName" ,
"match" : "MatchCommonPrefix" ,
"value" : "some/prefix"
} ,
{
"key" : "CustomAttribute" ,
"match" : "MatchStringEqual" ,
"value" : "tag-value"
}
]
2022-04-18 08:30:34 +00:00
}
} ,
"SearchMatch" : {
2022-07-20 15:16:30 +00:00
"description" : "Search match type." ,
2022-04-18 08:30:34 +00:00
"type" : "string" ,
"enum" : [
"MatchStringEqual" ,
"MatchStringNotEqual" ,
"MatchNotPresent" ,
"MatchCommonPrefix"
]
} ,
2022-07-07 09:29:51 +00:00
"SuccessResponse" : {
2022-07-20 15:16:30 +00:00
"description" : "Success response." ,
2022-07-07 09:29:51 +00:00
"type" : "object" ,
"required" : [
"success"
] ,
"properties" : {
"success" : {
"type" : "boolean"
}
2022-07-20 15:16:30 +00:00
} ,
"example" : {
"success" : true
2022-07-07 09:29:51 +00:00
}
} ,
2022-04-11 09:35:06 +00:00
"Target" : {
2022-08-29 14:16:41 +00:00
"description" : "Target to apply the ACL rule. Can be a subject's role class or a list of public keys to match (KEYS role)." ,
2022-04-11 09:35:06 +00:00
"type" : "object" ,
"required" : [
"role" ,
"keys"
] ,
"properties" : {
"keys" : {
"type" : "array" ,
"items" : {
"type" : "string"
}
} ,
"role" : {
"$ref" : "#/definitions/Role"
}
} ,
"example" : {
"keys" : [
"021dc56fc6d81d581ae7605a8e00e0e0bab6cbad566a924a527339475a97a8e38e"
] ,
2022-08-29 14:16:41 +00:00
"role" : "KEYS"
2022-04-11 09:35:06 +00:00
}
} ,
"TokenResponse" : {
2022-07-20 15:16:30 +00:00
"description" : "Base64 encoded marshaled token (for container or for object operations)." ,
2022-04-11 09:35:06 +00:00
"type" : "object" ,
"required" : [
"type" ,
"token"
] ,
"properties" : {
2022-07-07 09:02:05 +00:00
"name" : {
"type" : "string"
} ,
2022-04-11 09:35:06 +00:00
"token" : {
"type" : "string"
} ,
"type" : {
"$ref" : "#/definitions/TokenType"
}
} ,
"example" : [
{
2022-07-20 15:16:30 +00:00
"token" : "ClYKBAgCEA0aCAgDEAEiAggDGggIARACIgIIAxoICAIQAiICCAMaCAgDEAIiAggDGggIBBACIgIIAxoICAUQAiICCAMaCAgGEAIiAggDGggIBxACIgIIAxIbChk182WEDFuAqq3nssrGOaH0NK0ZhzF8bu+YGgQIaBgE" ,
2022-04-11 09:35:06 +00:00
"type" : "object"
} ,
{
"token" : "ChCpanIBJCpJuJz42KOmGMSnEhsKGTWquaX2Lq6GhhO4faOYkLD0f9WkXuYJlq4aBAhnGAMiIQJgFcIEghQB5lq3AJZOVswInwc1IGhlQ7NCUh4DFO3UATIECAEQAQ==" ,
"type" : "container"
}
]
} ,
"TokenType" : {
2022-07-20 15:16:30 +00:00
"description" : "Type of token." ,
2022-04-11 09:35:06 +00:00
"type" : "string" ,
"enum" : [
"object" ,
"container"
]
} ,
"Verb" : {
2022-07-20 15:16:30 +00:00
"description" : "Verb that describes the allowed container operation for token." ,
2022-04-11 09:35:06 +00:00
"type" : "string" ,
"enum" : [
"PUT" ,
"DELETE" ,
"SETEACL"
]
}
} ,
2022-04-11 11:18:26 +00:00
"parameters" : {
2022-04-13 13:00:04 +00:00
"containerId" : {
"type" : "string" ,
2022-07-20 15:16:30 +00:00
"description" : "Base58 encoded container id." ,
2022-04-13 13:00:04 +00:00
"name" : "containerId" ,
"in" : "path" ,
"required" : true
} ,
2022-08-18 15:41:33 +00:00
"fullBearerToken" : {
"type" : "boolean" ,
"default" : false ,
"description" : "Provided bearer token is final or gate should assemble it using signature." ,
"name" : "fullBearer" ,
"in" : "query"
} ,
2022-04-14 08:53:13 +00:00
"objectId" : {
2022-04-13 13:00:04 +00:00
"type" : "string" ,
2022-07-20 15:16:30 +00:00
"description" : "Base58 encoded object id." ,
2022-04-13 13:00:04 +00:00
"name" : "objectId" ,
"in" : "path" ,
"required" : true
} ,
2022-04-11 11:18:26 +00:00
"signatureKeyParam" : {
"type" : "string" ,
2022-07-20 15:16:30 +00:00
"description" : "Hex encoded the public part of the key that signed the bearer token." ,
2022-04-14 08:53:13 +00:00
"name" : "X-Bearer-Signature-Key" ,
2022-08-18 15:41:33 +00:00
"in" : "header"
2022-04-11 11:18:26 +00:00
} ,
"signatureParam" : {
"type" : "string" ,
2022-07-20 15:16:30 +00:00
"description" : "Base64 encoded signature for bearer token." ,
2022-04-14 08:53:13 +00:00
"name" : "X-Bearer-Signature" ,
2022-08-18 15:41:33 +00:00
"in" : "header"
2022-04-15 07:03:00 +00:00
} ,
"signatureScheme" : {
"type" : "boolean" ,
"default" : false ,
2022-07-20 15:16:30 +00:00
"description" : "Use wallet connect signature scheme or native NeoFS signature." ,
2022-04-15 07:03:00 +00:00
"name" : "walletConnect" ,
"in" : "query"
2022-04-11 11:18:26 +00:00
}
} ,
2022-04-11 09:35:06 +00:00
"securityDefinitions" : {
"BearerAuth" : {
2022-04-11 11:18:26 +00:00
"description" : "Bearer token body to provide with NeoFS request. Must have 'Bearer ' prefix." ,
2022-04-11 09:35:06 +00:00
"type" : "apiKey" ,
"name" : "Authorization" ,
"in" : "header"
}
} ,
"security" : [
{
"BearerAuth" : [ ]
}
]
} ` ) )
}