The ERIGrid 2.0 middleware API (0.1.0alpha)

Download OpenAPI specification:Download

ERIGrid 2.0 consortium: info@erigrid2.eu License: Apache 2.0 Terms of Service

Architecture

Components

User Interface (UI)

Provides a web interface to the user for inspecting discovered infrastructure information and managing session configurations.

API Server

The API Server provides a HTTP REST API for exchanging ECs, EDs, HTDs, sessions and user

Experiment Description Compiler (EDC)

Fetches a compiled infrastructure configuration and applies/configures it to the physical infrastructure.

RI Controller (RIC)

Fetches compiled experiment

HTD Generator

Fetches compiled experiment configurations and renders them into ERIGrid Holistic Test Descriptions (HTD) for human consumption.

Transport(s)

A pluggable transport for exchanging interface signals between infrastructure components such as digital real-time simulators or other laboratory equipment.

Concepts

Experiment Description (ED)

Experiment Configuration (EC)

Multiaddr

Signals are identified my Multiaddr's. A multiaddr describes the signal in a unique way.

Users reference signals using the presentation layer using symbolic names.

The

Examples

  • Presentation Layer: /system/ireland_south_distribution/bus/123/signal/V1
  • Session Layer: /infrastructure/dtu/simulator/op5606/signal/
  • Transport + Network Layer: /dnsaddr/syslab.elektro.dtu.dk/tcp/1883/mqtt/

Funding acknowledgement

European Flag The development of JRA3.1 API has been supported by the ERIGrid 2.0 project of the H2020 Programme under Grant Agreement No. 870620

configuration

Configuration managment

Get all configurations

Request Body schema: application/json

The session configuration which is being created.

id
required
integer (ConfigurationId)
required
Array of objects (Connection)

Responses

Request samples

Content type
application/json
{
  • "id": 342,
  • "connections": [
    ]
}

Response samples

Content type
application/json
[
  • 342
]

Open a new session

Request Body schema: application/json

The session configuration which is being created.

id
required
integer (ConfigurationId)
required
Array of objects (Connection)

Responses

Request samples

Content type
application/json
{
  • "id": 342,
  • "connections": [
    ]
}

Response samples

Content type
application/json
342

Create a new session

path Parameters
id
required
integer (ConfigurationId)
Example: 342

Responses

Delete a session

path Parameters
id
required
integer (ConfigurationId)
Example: 342

Responses

Get compiled infrastructure configuration

path Parameters
id
required
integer (ConfigurationId)
Example: 342
infrastructure
required
string (InfrastructureId) [a-z-]{3,16}
Example: rwth-rtlab

Responses

infrastructure

Infrastructure discovery

Get available infrastructures

Responses

Response samples

Content type
application/json
[
  • "dtu",
  • "rwth",
  • "uos"
]

Get infrastructure

path Parameters
infrastructure
required
string (InfrastructureId) [a-z-]{3,16}
Example: rwth-rtlab

Responses

Response samples

Content type
application/json
{
  • "id": "rwth-rtlab",
  • "name": "Real-time Laboratory",
  • "documentation": "string",
  • "operator": {
    },
  • "contact": {
    },
  • "location": {
    },
  • "components": [
    ],
  • "signals": [
    ]
}

Delete infrastructure

path Parameters
infrastructure
required
any

Responses

Provide infrastructure inventory

Request Body schema: application/json
id
required
string (InfrastructureId) [a-z-]{3,16}
name
string
documentation
string <url>
object (Contact)
object (Contact)
object (Location)
Array of objects (Component)
Array of objects (Signal)

Responses

Request samples

Content type
application/json
{
  • "id": "rwth-rtlab",
  • "name": "Real-time Laboratory",
  • "documentation": "string",
  • "operator": {
    },
  • "contact": {
    },
  • "location": {
    },
  • "components": [
    ],
  • "signals": [
    ]
}

Get infrastructure signals

path Parameters
infrastructure
required
string (InfrastructureId) [a-z-]{3,16}
Example: rwth-rtlab

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get infrastructure components

path Parameters
infrastructure
required
string (InfrastructureId) [a-z-]{3,16}
Example: rwth-rtlab

Responses

Response samples

Content type
application/json
[
  • {
    }
]