Eliatra Managed EOD API (MEOD) (1.0)

Download OpenAPI specification:Download

The MEOD API to administrate your managed OpenSearch clusters

Clusters

Endpoints interacting with OpenSearch clusters

Get all clusters the caller owns.

Get all clusters the caller owns.

Authorizations:
bearerAuth
query Parameters
deleted
boolean

If true, the endpoint returns also deleted clusters. Default is false.

Responses

Response samples

Content type
application/json
{
  • "clusters": [
    ]
}

Create a new OpenSearch cluster asynchronously.

Create a new OpenSearch cluster asynchronously.

Authorizations:
bearerAuth
Request Body schema: application/json
required

Object containing cluster creation parameters.

name
required
string [ 1 .. 35 ] characters ^[a-z]+(?:[a-z0-9-]*[a-z0-9])?$

Cluster name (only lowercase, numbers and dash, max 35 length)

flavor
required
string
Default: "eod"
Enum: "eod" "opensearch"

Flavor: Either eod or opensearch

openSearchVersion
required
string^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-...
Default: "2.11.1-ee2"

OpenSearch or EOD version (examples: 2.13.0 or 2.11.1-ee2)

supportLevel
required
string
Default: "basic"
Enum: "basic" "plus" "pro" "enterprise" "time_material"
expertMode
required
string
Default: "enabled"
Enum: "enabled" "disabled"

Expert mode.

automaticUpdates
required
string
Default: "critical_security_fixes_bugfixes"
Enum: "off" "critical_security_fixes_only" "critical_security_fixes_bugfixes" "critical_security_fixes_bugfixes_newfeatures"

Automatic updates, see https://docs.meod.eliatra.cloud

automaticBackups
required
string
Default: "24h-1d"
Enum: "off" "24h-1d" "24h-7d" "24h-14d" "24h-30d"

Automatic backups, see https://docs.meod.eliatra.cloud

required
object
Default: {}

Add custom settings for all opensearch nodes to opensearch.yml

required
Array of objects (NodePoolSpec) [ 1 .. 50 ] items

Describes an OpenSearch Operator Nodepool

required
object
Default: {}

Describes the specification of OpenSearch Dashboards

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "flavor": "eod",
  • "openSearchVersion": "2.11.1-ee2",
  • "supportLevel": "basic",
  • "expertMode": "enabled",
  • "automaticUpdates": "critical_security_fixes_bugfixes",
  • "automaticBackups": "24h-1d",
  • "customSettings": { },
  • "nodepools": [
    ],
  • "dashboard": { }
}

Response samples

Content type
application/json
{
  • "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f"
}

Get an OpenSearch cluster (must be owned by the caller, if not 404 is returned).

Get an OpenSearch cluster.

Authorizations:
bearerAuth
path Parameters
clusterIUUID
required
string <uuid>

Internal UUID (IUUID) identifier of the cluster

query Parameters
deleted
boolean

If true, the endpoint returns also deleted clusters. Default is false.

Responses

Response samples

Content type
application/json
{
  • "IUUID": "1b7af28e-afb2-4174-b622-490a0017edf8",
  • "status": "string",
  • "clusterSpec": {
    },
  • "clusterInfo": {
    }
}

Update a cluster

Update a cluster

Authorizations:
bearerAuth
path Parameters
clusterIUUID
required
string <uuid>

Internal UUID (IUUID) identifier of the cluster to get (must be owned by the caller, if not 404 is returned).

Request Body schema: application/json
required

Object containing cluster update parameters.

name
required
string [ 1 .. 35 ] characters ^[a-z]+(?:[a-z0-9-]*[a-z0-9])?$

Cluster name (only lowercase, numbers and dash, max 35 length)

flavor
required
string
Default: "eod"
Enum: "eod" "opensearch"

Flavor: Either eod or opensearch

openSearchVersion
required
string^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-...
Default: "2.11.1-ee2"

OpenSearch or EOD version (examples: 2.13.0 or 2.11.1-ee2)

supportLevel
required
string
Default: "basic"
Enum: "basic" "plus" "pro" "enterprise" "time_material"
expertMode
required
string
Default: "enabled"
Enum: "enabled" "disabled"

Expert mode.

automaticUpdates
required
string
Default: "critical_security_fixes_bugfixes"
Enum: "off" "critical_security_fixes_only" "critical_security_fixes_bugfixes" "critical_security_fixes_bugfixes_newfeatures"

Automatic updates, see https://docs.meod.eliatra.cloud

automaticBackups
required
string
Default: "24h-1d"
Enum: "off" "24h-1d" "24h-7d" "24h-14d" "24h-30d"

Automatic backups, see https://docs.meod.eliatra.cloud

required
object
Default: {}

Add custom settings for all opensearch nodes to opensearch.yml

required
Array of objects (NodePoolSpec) [ 1 .. 50 ] items

Describes an OpenSearch Operator Nodepool

required
object
Default: {}

Describes the specification of OpenSearch Dashboards

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "flavor": "eod",
  • "openSearchVersion": "2.11.1-ee2",
  • "supportLevel": "basic",
  • "expertMode": "enabled",
  • "automaticUpdates": "critical_security_fixes_bugfixes",
  • "automaticBackups": "24h-1d",
  • "customSettings": { },
  • "nodepools": [
    ],
  • "dashboard": { }
}

Response samples

Content type
application/json
{
  • "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f"
}

Delete a cluster

Delete a cluster

Authorizations:
bearerAuth
path Parameters
clusterIUUID
required
string <uuid>

Internal UUID (IUUID) identifier of the cluster to delete (must be owned by the caller, if not 404 is returned).

Responses

Response samples

Content type
application/json
{
  • "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f"
}

List all supported EOD and OpenSearch versions

Returns a list of supported EOD and OpenSearch versions

Authorizations:
bearerAuth

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Accounts

Endpoints interacting with MEOD accounts

Get own account.

Get own account (the callers own account) or return 404 if the caller does not have one yet."

Authorizations:
bearerAuth

Responses

Response samples

Content type
application/json
{
  • "IUUID": "1b7af28e-afb2-4174-b622-490a0017edf8",
  • "status": "string",
  • "companyName": "string",
  • "vatId": "string",
  • "country": "string",
  • "billingAddress": "string",
  • "currentUser": {
    },
  • "quotas": {
    }
}

Update own account.

Update own account (the callers own account) or return 404 if the caller does not have one yet."

Authorizations:
bearerAuth
Request Body schema: application/json
required

Object containing account update information.

companyName
required
string >= 2 characters
vatId
string or null
country
string or null
billingAddress
string or null

Responses

Request samples

Content type
application/json
{
  • "companyName": "string",
  • "vatId": "string",
  • "country": "string",
  • "billingAddress": "string"
}

Response samples

Content type
application/json
{
  • "status": "VALIDATION_ERROR",
  • "code": 400,
  • "timestamp": "2024-02-20T15:33:14.988531Z",
  • "payload": { },
  • "errors": [
    ]
}

Create a new account asynchronously.

Create a new account asynchronously and return the resource id also in the location header. Check the status field - if it is ready the account is usable.

Authorizations:
bearerAuth
Request Body schema: application/json
required

Object containing account creation parameters.

companyName
required
string >= 2 characters
vatId
string or null
country
string or null
billingAddress
string or null
required
object (User)

A user.

Responses

Request samples

Content type
application/json
{
  • "companyName": "string",
  • "vatId": "string",
  • "country": "string",
  • "billingAddress": "string",
  • "adminUser": {
    }
}

Response samples

Content type
application/json
{
  • "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f"
}

Limits/Costs

Endpoints interacting with limits/costs

Retrieve limits/usage/costs and validate new cluster requests.

Retrieve limits/usage/costs and validate new cluster requests.

Authorizations:
bearerAuth
Request Body schema: application/json
required

Object containing requested resources.

required
object

Options that influence pricing/cost of a cluster.

required
object

Requested resource calculation and pricing for Dashboards.

required
Array of objects

Request resource calculation and pricing for OpenSearch nodepools.

Responses

Request samples

Content type
application/json
{
  • "pricing": {
    },
  • "dashboard": {
    },
  • "nodepools": [
    ]
}

Response samples

Content type
application/json
{
  • "requestedCost": {
    },
  • "usedCost": {
    },
  • "requested": {
    },
  • "used": {
    },
  • "available": {
    },
  • "remaining": {
    },
  • "result": "rejected"
}

Logs

We expose an endpoint under /v1/clusterlogs to retrieve cluster logs (logfiles of all nodes and dashboard instances).

  • /v1/clusterlogs
  • Requests need to have a mandatory X-Scope-OrgID HTTP header which denotes the cluster ID for which the logs should be retrieved. Requester needs also to be authenticated as explained here.

    Metrics

    We expose a Prometheus compatible API under /v1/clustermetrics.

  • /v1/clustermetrics/label/{label_name}/values
  • /v1/clustermetrics/query_range
  • /v1/clustermetrics/query
  • /v1/clustermetrics/series
  • /v1/clustermetrics/labels
  • Requests need to have a mandatory X-Scope-OrgID HTTP header which denotes the cluster ID for which metrics should be retrieved. Requester needs also to be authenticated as explained here.

    Alle OpenSearch metrics starts with opensearch_ and maps to the node info and node stats requests.