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" : {
"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" : [
2022-04-14 08:53:13 +00:00
{
2022-06-09 09:59:02 +00:00
"type" : "string" ,
"description" : "Owner Id (wallet address) that will sign the token" ,
"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
{
"enum" : [
"object" ,
"container"
] ,
"type" : "string" ,
"description" : "Supported operation scope for token" ,
2022-04-14 08:53:13 +00:00
"name" : "X-Bearer-Scope" ,
2022-04-11 09:35:06 +00:00
"in" : "header" ,
"required" : true
} ,
{
"type" : "integer" ,
"default" : 100 ,
"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"
} ,
{
"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" : {
2022-04-13 15:23:03 +00:00
"get" : {
"security" : [ ] ,
"summary" : "Get list of containers" ,
"operationId" : "listContainers" ,
"parameters" : [
{
"type" : "string" ,
"description" : "Base58 encoded owner id" ,
"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" : {
"description" : "Containers info" ,
"schema" : {
"$ref" : "#/definitions/ContainerList"
}
} ,
"400" : {
"description" : "Bad request" ,
"schema" : {
"$ref" : "#/definitions/Error"
}
}
}
} ,
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-06-15 14:32:28 +00:00
"description" : "Provide this parameter to register container name in NNS service" ,
"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" : {
"type" : "object" ,
"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"
}
}
}
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" : {
"description" : "Container info" ,
"schema" : {
"$ref" : "#/definitions/ContainerInfo"
}
} ,
"400" : {
"description" : "Bad request" ,
"schema" : {
"$ref" : "#/definitions/Error"
}
}
}
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" : {
"204" : {
"description" : "Successul deletion"
} ,
"400" : {
"description" : "Bad request" ,
"schema" : {
"$ref" : "#/definitions/Error"
}
}
}
} ,
"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" : {
"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"
} ,
2022-04-15 07:03:00 +00:00
{
"$ref" : "#/parameters/signatureScheme"
} ,
2022-04-13 13:00:04 +00:00
{
"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"
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" : [
{
"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-04-11 09:35:06 +00:00
}
} ,
"400" : {
"description" : "Bad request" ,
"schema" : {
"$ref" : "#/definitions/Error"
}
}
}
} ,
"parameters" : [
2022-04-11 11:18:26 +00:00
{
"$ref" : "#/parameters/signatureParam"
} ,
{
"$ref" : "#/parameters/signatureKeyParam"
2022-04-15 07:03:00 +00:00
} ,
{
"$ref" : "#/parameters/signatureScheme"
2022-04-11 11:18:26 +00:00
}
]
} ,
2022-04-18 08:30:34 +00:00
"/objects/{containerId}/search" : {
"post" : {
"summary" : "Search objects by filters" ,
"operationId" : "searchObjects" ,
"parameters" : [
{
"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"
} ,
{
"description" : "Filters to search objects" ,
"name" : "searchFilters" ,
"in" : "body" ,
"required" : true ,
"schema" : {
"$ref" : "#/definitions/SearchFilters"
}
}
] ,
"responses" : {
"200" : {
"description" : "List of objects" ,
"schema" : {
"$ref" : "#/definitions/ObjectList"
}
} ,
"400" : {
"description" : "Bad request" ,
"schema" : {
"$ref" : "#/definitions/Error"
}
}
}
} ,
"parameters" : [
{
"$ref" : "#/parameters/signatureParam"
} ,
{
"$ref" : "#/parameters/signatureKeyParam"
} ,
{
"$ref" : "#/parameters/signatureScheme"
} ,
{
"$ref" : "#/parameters/containerId"
}
]
} ,
2022-04-11 11:18:26 +00:00
"/objects/{containerId}/{objectId}" : {
"get" : {
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" : [
{
"type" : "integer" ,
"name" : "range-offset" ,
"in" : "query"
} ,
{
"minimum" : 1 ,
"type" : "integer" ,
"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"
}
} ,
"400" : {
"description" : "Bad request" ,
"schema" : {
"$ref" : "#/definitions/Error"
}
}
}
} ,
2022-04-14 08:53:13 +00:00
"delete" : {
"summary" : "Remove object from NeoFS" ,
"operationId" : "deleteObject" ,
"responses" : {
"204" : {
"description" : "Successful deletion"
} ,
"400" : {
"description" : "Bad request" ,
"schema" : {
"$ref" : "#/definitions/Error"
}
}
}
} ,
2022-04-11 11:18:26 +00:00
"parameters" : [
{
"$ref" : "#/parameters/signatureParam"
} ,
{
"$ref" : "#/parameters/signatureKeyParam"
} ,
2022-04-15 07:03:00 +00:00
{
"$ref" : "#/parameters/signatureScheme"
} ,
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" : {
"type" : "string" ,
"enum" : [
"ALLOW" ,
"DENY"
]
} ,
2022-04-18 08:30:34 +00:00
"Address" : {
"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" : {
"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"
}
}
} ,
"Bearer" : {
"type" : "object" ,
"properties" : {
"container" : {
"$ref" : "#/definitions/Rule"
} ,
"object" : {
"type" : "array" ,
"items" : {
"$ref" : "#/definitions/Record"
}
}
}
} ,
2022-04-13 15:23:03 +00:00
"ContainerBaseInfo" : {
"type" : "object" ,
"required" : [
"containerId"
] ,
"properties" : {
"containerId" : {
"type" : "string"
} ,
"name" : {
"type" : "string"
}
}
} ,
2022-04-11 09:35:06 +00:00
"ContainerInfo" : {
"type" : "object" ,
2022-04-11 11:18:26 +00:00
"required" : [
"containerId" ,
"version" ,
"ownerId" ,
"basicAcl" ,
"placementPolicy" ,
"attributes"
] ,
2022-04-11 09:35:06 +00:00
"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"
}
} ,
2022-04-13 15:23:03 +00:00
"ContainerList" : {
"type" : "object" ,
"required" : [
"size" ,
"containers"
] ,
"properties" : {
"containers" : {
"type" : "array" ,
"items" : {
"$ref" : "#/definitions/ContainerBaseInfo"
}
} ,
"size" : {
"type" : "integer"
}
}
} ,
2022-04-13 13:00:04 +00:00
"Eacl" : {
"type" : "object" ,
"required" : [
"records"
] ,
"properties" : {
"containerId" : {
"type" : "string" ,
"readOnly" : true
} ,
"records" : {
"type" : "array" ,
"items" : {
"$ref" : "#/definitions/Record"
}
}
}
} ,
2022-04-11 09:35:06 +00:00
"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"
]
} ,
2022-04-18 08:30:34 +00:00
"ObjectBaseInfo" : {
"type" : "object" ,
"required" : [
"address"
] ,
"properties" : {
"address" : {
"$ref" : "#/definitions/Address"
} ,
"name" : {
"type" : "string"
}
}
} ,
2022-04-11 11:18:26 +00:00
"ObjectInfo" : {
"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" : {
"type" : "object" ,
"required" : [
"size" ,
"objects"
] ,
"properties" : {
"objects" : {
"type" : "array" ,
"items" : {
"$ref" : "#/definitions/ObjectBaseInfo"
}
} ,
"size" : {
"type" : "integer"
}
}
} ,
2022-04-20 14:52:41 +00:00
"ObjectUpload" : {
"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" : {
"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"
}
}
} ,
2022-04-18 08:30:34 +00:00
"SearchFilter" : {
"type" : "object" ,
"required" : [
"key" ,
"value" ,
"match"
] ,
"properties" : {
"key" : {
"type" : "string"
} ,
"match" : {
"$ref" : "#/definitions/SearchMatch"
} ,
"value" : {
"type" : "string"
}
}
} ,
"SearchFilters" : {
"type" : "object" ,
"required" : [
"filters"
] ,
"properties" : {
"filters" : {
"type" : "array" ,
"items" : {
"$ref" : "#/definitions/SearchFilter"
}
}
}
} ,
"SearchMatch" : {
"type" : "string" ,
"enum" : [
"MatchStringEqual" ,
"MatchStringNotEqual" ,
"MatchNotPresent" ,
"MatchCommonPrefix"
]
} ,
2022-04-11 09:35:06 +00:00
"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"
]
}
} ,
2022-04-11 11:18:26 +00:00
"parameters" : {
2022-04-13 13:00:04 +00:00
"containerId" : {
"type" : "string" ,
"description" : "Base58 encoded container id" ,
"name" : "containerId" ,
"in" : "path" ,
"required" : true
} ,
2022-04-14 08:53:13 +00:00
"objectId" : {
2022-04-13 13:00:04 +00:00
"type" : "string" ,
"description" : "Base58 encoded object id" ,
"name" : "objectId" ,
"in" : "path" ,
"required" : true
} ,
2022-04-11 11:18:26 +00:00
"signatureKeyParam" : {
"type" : "string" ,
"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-04-11 11:18:26 +00:00
"in" : "header" ,
"required" : true
} ,
"signatureParam" : {
"type" : "string" ,
"description" : "Base64 encoded signature for bearer token" ,
2022-04-14 08:53:13 +00:00
"name" : "X-Bearer-Signature" ,
2022-04-11 11:18:26 +00:00
"in" : "header" ,
"required" : true
2022-04-15 07:03:00 +00:00
} ,
"signatureScheme" : {
"type" : "boolean" ,
"default" : false ,
"description" : "Use wallect connect signature scheme or not" ,
"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" : {
"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" : [
{
"type" : "string" ,
2022-06-09 09:59:02 +00:00
"description" : "Owner Id (wallet address) that will sign the token" ,
"name" : "X-Bearer-Owner-Id" ,
2022-04-11 09:35:06 +00:00
"in" : "header" ,
"required" : true
} ,
{
2022-04-14 08:53:13 +00:00
"enum" : [
"object" ,
"container"
] ,
2022-04-11 09:35:06 +00:00
"type" : "string" ,
2022-04-14 08:53:13 +00:00
"description" : "Supported operation scope for token" ,
"name" : "X-Bearer-Scope" ,
2022-04-11 09:35:06 +00:00
"in" : "header" ,
"required" : true
} ,
{
"type" : "integer" ,
"default" : 100 ,
"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"
} ,
{
"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" : {
2022-04-13 15:23:03 +00:00
"get" : {
"security" : [ ] ,
"summary" : "Get list of containers" ,
"operationId" : "listContainers" ,
"parameters" : [
{
"type" : "string" ,
"description" : "Base58 encoded owner id" ,
"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" : {
"description" : "Containers info" ,
"schema" : {
"$ref" : "#/definitions/ContainerList"
}
} ,
"400" : {
"description" : "Bad request" ,
"schema" : {
"$ref" : "#/definitions/Error"
}
}
}
} ,
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" ,
"description" : "Base64 encoded signature for bearer token" ,
2022-04-14 08:53:13 +00:00
"name" : "X-Bearer-Signature" ,
2022-04-13 15:23:03 +00:00
"in" : "header" ,
"required" : true
} ,
{
"type" : "string" ,
"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-04-13 15:23:03 +00:00
"in" : "header" ,
"required" : true
} ,
2022-04-15 07:03:00 +00:00
{
"type" : "boolean" ,
"default" : false ,
"description" : "Use wallect connect signature scheme or not" ,
"name" : "walletConnect" ,
"in" : "query"
} ,
2022-04-13 08:41:04 +00:00
{
"type" : "boolean" ,
"default" : false ,
2022-06-15 14:32:28 +00:00
"description" : "Provide this parameter to register container name in NNS service" ,
"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" : {
"type" : "object" ,
"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"
}
}
}
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" : {
"description" : "Container info" ,
"schema" : {
"$ref" : "#/definitions/ContainerInfo"
}
} ,
"400" : {
"description" : "Bad request" ,
"schema" : {
"$ref" : "#/definitions/Error"
}
}
}
} ,
"delete" : {
"summary" : "Delete container by id" ,
"operationId" : "deleteContainer" ,
2022-04-11 09:35:06 +00:00
"parameters" : [
{
"type" : "string" ,
2022-04-13 08:41:04 +00:00
"description" : "Base64 encoded signature for bearer token" ,
2022-04-14 08:53:13 +00:00
"name" : "X-Bearer-Signature" ,
2022-04-13 08:41:04 +00:00
"in" : "header" ,
"required" : true
} ,
{
"type" : "string" ,
"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-04-13 08:41:04 +00:00
"in" : "header" ,
2022-04-11 09:35:06 +00:00
"required" : true
2022-04-15 07:03:00 +00:00
} ,
{
"type" : "boolean" ,
"default" : false ,
"description" : "Use wallect connect signature scheme or not" ,
"name" : "walletConnect" ,
"in" : "query"
2022-04-11 09:35:06 +00:00
}
] ,
"responses" : {
2022-04-13 08:41:04 +00:00
"204" : {
"description" : "Successul deletion"
2022-04-11 09:35:06 +00:00
} ,
"400" : {
"description" : "Bad request" ,
"schema" : {
"$ref" : "#/definitions/Error"
}
}
}
2022-04-13 08:41:04 +00:00
} ,
"parameters" : [
{
"type" : "string" ,
"description" : "Base58 encoded container id" ,
"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" : {
"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" ,
2022-04-14 08:53:13 +00:00
"name" : "X-Bearer-Signature" ,
2022-04-13 13:00:04 +00:00
"in" : "header" ,
"required" : true
} ,
{
"type" : "string" ,
"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-04-13 13:00:04 +00:00
"in" : "header" ,
"required" : true
} ,
2022-04-15 07:03:00 +00:00
{
"type" : "boolean" ,
"default" : false ,
"description" : "Use wallect connect signature scheme or not" ,
"name" : "walletConnect" ,
"in" : "query"
} ,
2022-04-13 13:00:04 +00:00
{
"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
}
]
} ,
2022-04-11 09:35:06 +00:00
"/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" : {
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"
}
} ,
"400" : {
"description" : "Bad request" ,
"schema" : {
"$ref" : "#/definitions/Error"
}
}
}
} ,
"parameters" : [
{
"type" : "string" ,
"description" : "Base64 encoded signature for bearer token" ,
"name" : "X-Bearer-Signature" ,
"in" : "header" ,
"required" : true
} ,
{
"type" : "string" ,
"description" : "Hex encoded the public part of the key that signed the bearer token" ,
"name" : "X-Bearer-Signature-Key" ,
"in" : "header" ,
"required" : true
} ,
{
"type" : "boolean" ,
"default" : false ,
"description" : "Use wallect connect signature scheme or not" ,
"name" : "walletConnect" ,
"in" : "query"
}
]
} ,
"/objects/{containerId}/search" : {
"post" : {
"summary" : "Search objects by filters" ,
"operationId" : "searchObjects" ,
"parameters" : [
{
"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"
} ,
{
"description" : "Filters to search objects" ,
"name" : "searchFilters" ,
"in" : "body" ,
"required" : true ,
"schema" : {
"$ref" : "#/definitions/SearchFilters"
}
}
] ,
"responses" : {
"200" : {
"description" : "List of objects" ,
"schema" : {
"$ref" : "#/definitions/ObjectList"
2022-04-11 09:35:06 +00:00
}
} ,
"400" : {
"description" : "Bad request" ,
"schema" : {
"$ref" : "#/definitions/Error"
}
}
}
} ,
"parameters" : [
{
"type" : "string" ,
"description" : "Base64 encoded signature for bearer token" ,
2022-04-14 08:53:13 +00:00
"name" : "X-Bearer-Signature" ,
2022-04-11 09:35:06 +00:00
"in" : "header" ,
"required" : true
} ,
{
"type" : "string" ,
"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-04-11 09:35:06 +00:00
"in" : "header" ,
"required" : true
2022-04-15 07:03:00 +00:00
} ,
{
"type" : "boolean" ,
"default" : false ,
"description" : "Use wallect connect signature scheme or not" ,
"name" : "walletConnect" ,
"in" : "query"
2022-04-18 08:30:34 +00:00
} ,
{
"type" : "string" ,
"description" : "Base58 encoded container id" ,
"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-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" : [
{
"minimum" : 0 ,
"type" : "integer" ,
"name" : "range-offset" ,
"in" : "query"
} ,
{
"minimum" : 1 ,
"type" : "integer" ,
"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"
}
} ,
"400" : {
"description" : "Bad request" ,
"schema" : {
"$ref" : "#/definitions/Error"
}
}
}
} ,
2022-04-14 08:53:13 +00:00
"delete" : {
"summary" : "Remove object from NeoFS" ,
"operationId" : "deleteObject" ,
"responses" : {
"204" : {
"description" : "Successful deletion"
} ,
"400" : {
"description" : "Bad request" ,
"schema" : {
"$ref" : "#/definitions/Error"
}
}
}
} ,
2022-04-11 11:18:26 +00:00
"parameters" : [
{
"type" : "string" ,
"description" : "Base64 encoded signature for bearer token" ,
2022-04-14 08:53:13 +00:00
"name" : "X-Bearer-Signature" ,
2022-04-11 11:18:26 +00:00
"in" : "header" ,
"required" : true
} ,
{
"type" : "string" ,
"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-04-11 11:18:26 +00:00
"in" : "header" ,
"required" : true
} ,
2022-04-15 07:03:00 +00:00
{
"type" : "boolean" ,
"default" : false ,
"description" : "Use wallect connect signature scheme or not" ,
"name" : "walletConnect" ,
"in" : "query"
} ,
2022-04-11 11:18:26 +00:00
{
"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
}
]
2022-04-11 09:35:06 +00:00
}
} ,
"definitions" : {
"Action" : {
"type" : "string" ,
"enum" : [
"ALLOW" ,
"DENY"
]
} ,
2022-04-18 08:30:34 +00:00
"Address" : {
"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" : {
"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"
}
}
} ,
"Bearer" : {
"type" : "object" ,
"properties" : {
"container" : {
"$ref" : "#/definitions/Rule"
} ,
"object" : {
"type" : "array" ,
"items" : {
"$ref" : "#/definitions/Record"
}
}
}
} ,
2022-04-13 15:23:03 +00:00
"ContainerBaseInfo" : {
"type" : "object" ,
"required" : [
"containerId"
] ,
"properties" : {
"containerId" : {
"type" : "string"
} ,
"name" : {
"type" : "string"
}
}
} ,
2022-04-11 09:35:06 +00:00
"ContainerInfo" : {
"type" : "object" ,
2022-04-11 11:18:26 +00:00
"required" : [
"containerId" ,
"version" ,
"ownerId" ,
"basicAcl" ,
"placementPolicy" ,
"attributes"
] ,
2022-04-11 09:35:06 +00:00
"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"
}
} ,
2022-04-13 15:23:03 +00:00
"ContainerList" : {
"type" : "object" ,
"required" : [
"size" ,
"containers"
] ,
"properties" : {
"containers" : {
"type" : "array" ,
"items" : {
"$ref" : "#/definitions/ContainerBaseInfo"
}
} ,
"size" : {
"type" : "integer"
}
}
} ,
2022-04-13 13:00:04 +00:00
"Eacl" : {
"type" : "object" ,
"required" : [
"records"
] ,
"properties" : {
"containerId" : {
"type" : "string" ,
"readOnly" : true
} ,
"records" : {
"type" : "array" ,
"items" : {
"$ref" : "#/definitions/Record"
}
}
}
} ,
2022-04-11 09:35:06 +00:00
"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"
]
} ,
2022-04-18 08:30:34 +00:00
"ObjectBaseInfo" : {
"type" : "object" ,
"required" : [
"address"
] ,
"properties" : {
"address" : {
"$ref" : "#/definitions/Address"
} ,
"name" : {
"type" : "string"
}
}
} ,
2022-04-11 11:18:26 +00:00
"ObjectInfo" : {
"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" : {
"type" : "object" ,
"required" : [
"size" ,
"objects"
] ,
"properties" : {
"objects" : {
"type" : "array" ,
"items" : {
"$ref" : "#/definitions/ObjectBaseInfo"
}
} ,
"size" : {
"type" : "integer"
}
}
} ,
2022-04-20 14:52:41 +00:00
"ObjectUpload" : {
"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" : {
"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"
}
}
} ,
2022-04-18 08:30:34 +00:00
"SearchFilter" : {
"type" : "object" ,
"required" : [
"key" ,
"value" ,
"match"
] ,
"properties" : {
"key" : {
"type" : "string"
} ,
"match" : {
"$ref" : "#/definitions/SearchMatch"
} ,
"value" : {
"type" : "string"
}
}
} ,
"SearchFilters" : {
"type" : "object" ,
"required" : [
"filters"
] ,
"properties" : {
"filters" : {
"type" : "array" ,
"items" : {
"$ref" : "#/definitions/SearchFilter"
}
}
}
} ,
"SearchMatch" : {
"type" : "string" ,
"enum" : [
"MatchStringEqual" ,
"MatchStringNotEqual" ,
"MatchNotPresent" ,
"MatchCommonPrefix"
]
} ,
2022-04-11 09:35:06 +00:00
"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"
]
}
} ,
2022-04-11 11:18:26 +00:00
"parameters" : {
2022-04-13 13:00:04 +00:00
"containerId" : {
"type" : "string" ,
"description" : "Base58 encoded container id" ,
"name" : "containerId" ,
"in" : "path" ,
"required" : true
} ,
2022-04-14 08:53:13 +00:00
"objectId" : {
2022-04-13 13:00:04 +00:00
"type" : "string" ,
"description" : "Base58 encoded object id" ,
"name" : "objectId" ,
"in" : "path" ,
"required" : true
} ,
2022-04-11 11:18:26 +00:00
"signatureKeyParam" : {
"type" : "string" ,
"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-04-11 11:18:26 +00:00
"in" : "header" ,
"required" : true
} ,
"signatureParam" : {
"type" : "string" ,
"description" : "Base64 encoded signature for bearer token" ,
2022-04-14 08:53:13 +00:00
"name" : "X-Bearer-Signature" ,
2022-04-11 11:18:26 +00:00
"in" : "header" ,
"required" : true
2022-04-15 07:03:00 +00:00
} ,
"signatureScheme" : {
"type" : "boolean" ,
"default" : false ,
"description" : "Use wallect connect signature scheme or not" ,
"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" : [ ]
}
]
} ` ) )
}