Instances

Query all instances of one or all Apps

get
Query parameters
appstringOptional

App to query instances for

versionstringOptional

App version to query instances for

Responses
200
Success
application/json
get
GET /v2/instances HTTP/1.1
Host: localhost
Accept: */*
200

Success

[]

Obtain details of an App instance

get
Path parameters
instance_idstringRequiredExample: 01ab89efPattern: ^[0-9a-f]{8}$
Responses
200
Success
application/json
get
GET /v2/instances/{instance_id} HTTP/1.1
Host: localhost
Accept: */*
{
  "instanceId": "01ab89ef",
  "instanceName": "Smart home",
  "appKey": {
    "name": "tech.flecs.app-1",
    "version": "1.2.3.4-f1"
  },
  "status": "not created",
  "desired": "not created",
  "configFiles": [
    {
      "container": "/etc/conf.d/configuration.cfg",
      "host": "/var/lib/flecs/instances/01ab89ef/conf/configuration.cfg"
    }
  ],
  "hostname": "flecs-01ab89ef",
  "ipAddress": "172.21.0.3",
  "ports": [
    {
      "container": "8080",
      "host": "18080"
    }
  ],
  "volumes": [
    {
      "name": "var",
      "path": "/var/app"
    }
  ],
  "editors": [
    {
      "name": "Example app user settings",
      "url": "/api/v2/instances/abcd1234/editor/8080"
    }
  ]
}

Update or downgrade Instance to another App version

patch
Path parameters
instance_idstringRequiredExample: 01ab89efPattern: ^[0-9a-f]{8}$
Body
tostringRequired
Responses
202
Accepted
application/json
patch
PATCH /v2/instances/{instance_id} HTTP/1.1
Host: localhost
Content-Type: application/json
Accept: */*
Content-Length: 13

{
  "to": "text"
}
{
  "jobId": 17
}

Delete a single instance

delete
Path parameters
instance_idstringRequiredExample: 01ab89efPattern: ^[0-9a-f]{8}$
Responses
202
Accepted
application/json
delete
DELETE /v2/instances/{instance_id} HTTP/1.1
Host: localhost
Accept: */*
{
  "jobId": 17
}

Create new instance of an installed App

post
Body
instanceNamestringOptional

Instance name

Example: Smart home
Responses
202
Accepted
application/json
post
POST /v2/instances/create HTTP/1.1
Host: localhost
Content-Type: application/json
Accept: */*
Content-Length: 89

{
  "appKey": {
    "name": "tech.flecs.app-1",
    "version": "1.2.3.4-f1"
  },
  "instanceName": "Smart home"
}
{
  "jobId": 17
}

Start an App instance

post
Path parameters
instance_idstringRequiredExample: 01ab89efPattern: ^[0-9a-f]{8}$
Responses
202
Accepted
application/json
post
POST /v2/instances/{instance_id}/start HTTP/1.1
Host: localhost
Accept: */*
{
  "jobId": 17
}

Stop an App instance

post
Path parameters
instance_idstringRequired

Instance id to delete

Responses
202
Accepted
application/json
post
POST /v2/instances/{instance_id}/stop HTTP/1.1
Host: localhost
Accept: */*
{
  "jobId": 17
}

Get configuration of an Instance

get
Path parameters
instance_idstringRequired
Responses
200
Success
application/json
get
GET /v2/instances/{instance_id}/config HTTP/1.1
Host: localhost
Accept: */*
{
  "networkAdapters": [
    {
      "name": "text",
      "active": true,
      "connected": true,
      "ipAddress": "0.0.0.0",
      "subnetMask": "0.0.0.0",
      "gateway": "0.0.0.0"
    }
  ],
  "devices": {
    "usb": [
      {
        "device": "text",
        "pid": 1,
        "port": "text",
        "vendor": "text",
        "vid": 1,
        "active": true,
        "connected": true
      }
    ]
  }
}

Update configuration of an Instance

post
Path parameters
instance_idstringRequired
Body
Responses
200
Success
application/json
post
POST /v2/instances/{instance_id}/config HTTP/1.1
Host: localhost
Content-Type: application/json
Accept: */*
Content-Length: 248

{
  "networkAdapters": [
    {
      "name": "text",
      "active": true,
      "connected": true,
      "ipAddress": "0.0.0.0",
      "subnetMask": "0.0.0.0",
      "gateway": "0.0.0.0"
    }
  ],
  "devices": {
    "usb": [
      {
        "device": "text",
        "pid": 1,
        "port": "text",
        "vendor": "text",
        "vid": 1,
        "active": true,
        "connected": true
      }
    ]
  }
}
{
  "networkAdapters": [
    {
      "name": "text",
      "active": true,
      "connected": true,
      "ipAddress": "0.0.0.0",
      "subnetMask": "0.0.0.0",
      "gateway": "0.0.0.0"
    }
  ],
  "devices": {
    "usb": [
      {
        "device": "text",
        "pid": 1,
        "port": "text",
        "vendor": "text",
        "vid": 1,
        "active": true,
        "connected": true
      }
    ]
  }
}

Retrieve logs of an Instance

get
Path parameters
instance_idstringRequired
Responses
200
Success
application/json
get
GET /v2/instances/{instance_id}/logs HTTP/1.1
Host: localhost
Accept: */*
{
  "stdout": "text",
  "stderr": "text"
}

Retrieve environment of an instance

get
Path parameters
instance_idstringRequired
Responses
200
Success
application/json
Responsestring[]
get
GET /v2/instances/{instance_id}/config/environment HTTP/1.1
Host: localhost
Accept: */*
[
  "text"
]

Modify or create environment of an instance

put
Path parameters
instance_idstringRequired
Body
string[]Optional
Responses
200
Environment for instance with this instance id is set
put
PUT /v2/instances/{instance_id}/config/environment HTTP/1.1
Host: localhost
Content-Type: application/json
Accept: */*
Content-Length: 8

[
  "text"
]

No content

Delete environment of an instance

delete
Path parameters
instance_idstringRequired
Responses
200
Environment of instance with this instance_id was deleted
delete
DELETE /v2/instances/{instance_id}/config/environment HTTP/1.1
Host: localhost
Accept: */*

No content

Retrieve exposed ports of an instance

get
Path parameters
instance_idstringRequired
Responses
200
Success
application/json
Responsestring[]Example: ["8001:8001","5000","5001-5008:6001-6008","6001-6008"]
get
GET /v2/instances/{instance_id}/config/ports HTTP/1.1
Host: localhost
Accept: */*
[
  "8001:8001",
  "5000",
  "5001-5008:6001-6008",
  "6001-6008"
]

Delete exposed ports of an instance

delete
Path parameters
instance_idstringRequired
Responses
200
Exposed ports of instance with this instance_id was deleted
delete
DELETE /v2/instances/{instance_id}/config/ports HTTP/1.1
Host: localhost
Accept: */*

No content

Access an editor of an app

get
Path parameters
instance_idstringRequiredExample: 01ab89efPattern: ^[0-9a-f]{8}$
portinteger · min: 1 · max: 65535Required
Responses
302
Found
get
GET /v2/instances/{instance_id}/editor/{port} HTTP/1.1
Host: localhost
Accept: */*

No content

Modify or create exposed ports of an instance

put
Path parameters
instance_idstringRequired
Body
string[]OptionalExample: ["8001:8001","5000","5001-5008:6001-6008","6001-6008"]
Responses
200
Exposed ports for instance with this instance id is set
put
PUT /v2/instances/{instance_id}/config/ports HTTP/1.1
Host: localhost
Content-Type: application/json
Accept: */*
Content-Length: 54

[
  "8001:8001",
  "5000",
  "5001-5008:6001-6008",
  "6001-6008"
]

No content

Last updated

Was this helpful?