Onedata API Reference

REST API references for Onezone, Oneprovider, and Onepanel.

Create new index in harvester

POST /harvesters/{id}/indices

Creates new index in given harvester.

This operation requires oz_harvesters_update admin privilege.

Example cURL requests

Create new index in harvester

curl -u username:password -H "Content-type: application/json" \
-X POST -d '{ "name" : "My study index", "guiPluginName" : "study"}\
https://$HOST/api/v3/onezone/harvesters/$HARVESTER_ID/indices

Path parameters

Parameter Type & Description
id required
string

Harvester Id.

Request body

application/json

Index properties.

PropertyType & Description
name
string

The name of the index.

guiPluginName
string

Mapping of index name to one recognized by gui plugin. Allows to specify this index to be used by GUI plugin to produce search results. Recognized gui index names are listed in gui plugin manifest.

schema
string

Schema of the index provided as string (e.g. encoded JSON).

includeMetadata
array of strings

Specifies what types of file metadata should be harvested in this index. At least one type must be given.

includeFileDetails
array of strings

Specifies what file details should be harvested alongside the metadata. Enabling metadataExistenceFlags will add boolean flags saying whether the file has any metadata of certain type. The fileName field may be utilized by the GUI plugin to improve the browsing experience.

includeRejectionReason
boolean

If enabled, all harvesting errors (e.g. when the index rejects a payload due to non-matching schema) are stored as text in the index, which may be useful for later analysis.

retryOnRejection
boolean

If enabled, all payloads rejected by the harvesting backend will be automatically analysed for offending data (e.g. fields that do not match the schema), pruned and submitted again. This might slow down the harvesting process and cause nonconformant metadata to be lost.

Request Examples

application/json
{
  "name": "My study index",
  "guiPluginName": "study",
  "schema": "{ \"mappings\": { \"properties\": { \"foo\": { \"type\": \"keyword\" } } } }",
  "includeMetadata": [
    "json",
    "xattrs"
  ],
  "includeFileDetails": [
    "fileName",
    "metadataExistenceFlags"
  ],
  "includeRejectionReason": false,
  "retryOnRejection": true
}

Responses

application/json
201

URI of the created index in the form https://$HOST/api/onezone/v3/harvesters/{id}/indices/{iid} is returned in the response Location header.

400

Invalid request.

PropertyType & Description
error
object

Object describing an error.

id required
string

String identifying the error type. Does not change between error instances.

description required
string

Human readable error description. May contain information specific to given error instance.

details
object

Details about the error instance. The object schema is specific to each error type.

Example

application/json
{
  "error": {
    "id": "badValueString",
    "details": {
      "key": "name"
    },
    "description": "Bad value: provided \"name\" must be a string."
  }
}
401

Authentication error.

PropertyType & Description
error
object

Object describing an error.

id required
string

String identifying the error type. Does not change between error instances.

description required
string

Human readable error description. May contain information specific to given error instance.

details
object

Details about the error instance. The object schema is specific to each error type.

Example

application/json
{
  "error": {
    "id": "badValueString",
    "details": {
      "key": "name"
    },
    "description": "Bad value: provided \"name\" must be a string."
  }
}
403

Authorization error.

PropertyType & Description
error
object

Object describing an error.

id required
string

String identifying the error type. Does not change between error instances.

description required
string

Human readable error description. May contain information specific to given error instance.

details
object

Details about the error instance. The object schema is specific to each error type.

Example

application/json
{
  "error": {
    "id": "badValueString",
    "details": {
      "key": "name"
    },
    "description": "Bad value: provided \"name\" must be a string."
  }
}
404

Resource not found.

PropertyType & Description
error
object

Object describing an error.

id required
string

String identifying the error type. Does not change between error instances.

description required
string

Human readable error description. May contain information specific to given error instance.

details
object

Details about the error instance. The object schema is specific to each error type.

Example

application/json
{
  "error": {
    "id": "badValueString",
    "details": {
      "key": "name"
    },
    "description": "Bad value: provided \"name\" must be a string."
  }
}
500

Internal server Error.

PropertyType & Description
error
object

Object describing an error.

id required
string

String identifying the error type. Does not change between error instances.

description required
string

Human readable error description. May contain information specific to given error instance.

details
object

Details about the error instance. The object schema is specific to each error type.

Example

application/json
{
  "error": {
    "id": "badValueString",
    "details": {
      "key": "name"
    },
    "description": "Bad value: provided \"name\" must be a string."
  }
}