NAV Navbar

Introduction

The JetStream API is organized around REST. Our API has predictable, resource-oriented URLs, and uses HTTP response codes to indicate API errors. We use built-in HTTP features, like HTTP authentication and HTTP verbs, which are understood by off-the-shelf HTTP clients.

We support cross-origin resource sharing, allowing you to interact securely with our API from a client-side web application. JSON is returned by all API responses, including errors, although our API libraries convert responses to appropriate language-specific objects.

Be sure to subscribe to JetStream's API announce mailing list to receive information on new additions and changes to JetStream's API and language libraries.

Security

By Token

An authorization header containing a valid access token must be included in most JetStream API that need to use like follows:

An authorization query parameter containing a valid access token must be included in most JetStream API that need to use like follows:

By API Key

An authorization header containing a valid access api key must be included in some JetStream API that need to use like follows:

An authorization query parameter containing a valid access api key must be included in some JetStream API that need to use like follows:

Errors

We use the following status codes for errors:

Code Meaning
400 Bad Request - Your request is invalid.
401 Unauthorized - Your authentication such as token and api_key incorrect.
403 Forbidden - Your authentication success but no permission to access data.
407 Proxy Authentication Required - token or api_key is empty.
409 Conflict - Action with database not success such as retrieve, create, update and delete etc.
503 Service Unavailable - Problem with our server such as database down.

Authentication

Register

This API helps you to register.

Here is the way to use this method:

curl -X POST \
  'https://api.jetstream.gmbh/v1.1/registers' \
  -H 'Content-Type: application/json' \
  -d '{
    "email":"[email protected]",
    "password":"password",
    "first_name":"Jose",
    "last_name":"Douglas"
}'

JSON response example:

{
    "status": {
        "code": 201,
        "message": "Created"
    },
    "data": [
        {
            "_id": "abcdf0123456789abcdf0001",
            "email": "[email protected]",
            "first_name": "Jose",
            "last_name": "Douglas",
            "user_role": "user",
            "enabled": false,
            "created_on": "2019-01-01T00:00:00.0000Z"
        }
    ]
}

HTTP Request

Body

Key Type Description
email* string Email that you use to register JetStream API (jetstream_email).
password* string Password that you use with jetstream_email.
first_name* string First name of user who register JetStream API.
last_name* string Last name of user who register JetStream API.

Activation

This API helps you to activate.

Here is the way to use this method:

curl -X POST \
  'https://api.jetstream.gmbh/v1.1/activate' \
  -H 'Content-Type: application/json' \
  -d '{
    "activate_code":"lTJTm3gheuUX5P4iuAZV9fE0KTu1fz0K"
}'

JSON response example:

{
    "status": {
        "code": 200,
        "message": "OK"
    }
}

HTTP Request

Body

Key Type Description
activate_code* string Activate code generated by system when user register then send to email which user use to register.

Login

This API helps you to Login.

Here is the way to use this method:

curl -X POST \
  'https://api.jetstream.gmbh/v1.1/login' \
  -H 'Content-Type: application/json' \
  -d '{
    "email":"[email protected]",
    "password":"password"
}'

JSON response example:

{
    "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoiYWJjZGYwMTIzNDU2Nzg5YWJjZGYwMDAxIiwidXNlcl9yb2xlIjoiYWRtaW5pc3RyYXRvciIsImV4cCI6MTU0NjM4NzIwMCwiaWF0IjoxNTQ2MzAwODAwfQ.zuqoFbMbRNfaVi4cK0NHMgtTMCAeH8DOEKRzeyuWUxU",
    "expires_in": 86400,
    "user_id": "abcdf0123456789abcdf0001"
}

HTTP Request

Body

Key Type Description
email* string Email that you use to register JetStream API (jetstream_email).
password* string Password that you use with jetstream_email.

Forgot Password

This API helps you to set up new password (auto generate) when user forgot password. By system will send new password to email of user.

Here is the way to use this method:

curl -X POST \
  'https://api.jetstream.gmbh/v1.1/forgot-password' \
  -H 'Content-Type: application/json' \
  -d '{
    "email":"[email protected]"
}'

JSON response example:

{
    "status": {
        "code": 200,
        "message": "OK"
    }
}

HTTP Request

Body

Key Type Description
email* string Email that you use to register JetStream API (jetstream_email).

Users

Create a user

This API helps you to create a user.

Here is the way to use this method:

curl -X POST \
  'https://api.jetstream.gmbh/v1.1/users' \
  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoiYWJjZGYwMTIzNDU2Nzg5YWJjZGYwMDAxIiwidXNlcl9yb2xlIjoiYWRtaW5pc3RyYXRvciIsImV4cCI6MTU0NjM4NzIwMCwiaWF0IjoxNTQ2MzAwODAwfQ.zuqoFbMbRNfaVi4cK0NHMgtTMCAeH8DOEKRzeyuWUxU' \
  -H 'Content-Type: application/json' \
  -d '{
    "email": "[email protected]",
    "password":"password",
    "first_name": "Jose",
    "last_name": "Douglas",
    "address": "1/1",
    "state": "New York",
    "country": "United States",
    "phone": "(420) 844 9053",
    "profile_pic":"https://uinames.com/api/photos/male/12.jpg",
    "user_role": "user"
}'

JSON response example:

{
    "status": {
        "code": 201,
        "message": "Created"
    },
    "data": [
        {
            "_id": "abcdf0123456789abcdf0001",
            "email": "[email protected]",
            "first_name": "Jose",
            "last_name": "Douglas",
            "address": "1/1",
            "state": "New York",
            "country": "United States",
            "phone": "(420) 844 9053",
            "profile_pic": "https://uinames.com/api/photos/male/12.jpg",
            "user_role": "user",
            "enabled": true,
            "created_on": "2019-01-01T00:00:00.0000Z"
        }
    ]
}

HTTP Request

Body

Key Type Description
email* string Email of user (jetstream_email).
password* string Password of user.
first_name* string First name of use.
last_name* string Last name of user.
address string Address of user.
state string State of user.
country string Country of user.
phone string Phone of user.
profile_pic string URL profile picture of user.
user_role* string Role of user such as administrator and user.

Retrieve a user

This API helps you to retrieve a user.

Here is the way to use this method:

curl -X GET \
  'https://api.jetstream.gmbh/v1.1/users/abcdf0123456789abcdf0001' \
  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoiYWJjZGYwMTIzNDU2Nzg5YWJjZGYwMDAxIiwidXNlcl9yb2xlIjoiYWRtaW5pc3RyYXRvciIsImV4cCI6MTU0NjM4NzIwMCwiaWF0IjoxNTQ2MzAwODAwfQ.zuqoFbMbRNfaVi4cK0NHMgtTMCAeH8DOEKRzeyuWUxU' \
  -H 'Content-Type: application/json'

JSON response example:

{
    "status": {
        "code": 200,
        "message": "OK"
    },
    "data": [
        {
            "_id": "abcdf0123456789abcdf0001",
            "email": "[email protected]",
            "first_name": "Jose",
            "last_name": "Douglas",
            "address": "1/1",
            "state": "New York",
            "country": "United States",
            "phone": "(420) 844 9053",
            "profile_pic": "https://uinames.com/api/photos/male/12.jpg",
            "user_role": "user",
            "enabled": true,
            "last_login": "2019-01-01T00:00:00.0000Z",
            "created_on": "2019-01-01T00:00:00.0000Z",
            "last_updated_on": "2019-01-01T00:00:00.0000Z"
        }
    ]
}

HTTP Request

List all users

This API helps you to list all a users.

Here is the way to use this method:

curl -X GET \
  'https://api.jetstream.gmbh/v1.1/users' \
  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoiYWJjZGYwMTIzNDU2Nzg5YWJjZGYwMDAxIiwidXNlcl9yb2xlIjoiYWRtaW5pc3RyYXRvciIsImV4cCI6MTU0NjM4NzIwMCwiaWF0IjoxNTQ2MzAwODAwfQ.zuqoFbMbRNfaVi4cK0NHMgtTMCAeH8DOEKRzeyuWUxU' \
  -H 'Content-Type: application/json'

JSON response example:

{
    "status": {
        "code": 200,
        "message": "OK"
    },
    "data": [
        {
            "_id": "abcdf0123456789abcdf0001",
            "email": "[email protected]",
            "first_name": "Jose",
            "last_name": "Douglas",
            "address": "1/1",
            "state": "New York",
            "country": "United States",
            "phone": "(420) 844 9053",
            "profile_pic": "https://uinames.com/api/photos/male/12.jpg",
            "user_role": "user",
            "enabled": true,
            "last_login": "2019-01-01T00:00:00.0000Z",
            "created_on": "2019-01-01T00:00:00.0000Z",
            "last_updated_on": "2019-01-01T00:00:00.0000Z"
        },
        {
            "_id": "abcdf0123456789abcdf0002",
            "email": "[email protected]",
            "first_name": "Jacob",
            "last_name": "Banks",
            "address": "2/2",
            "state": "New York",
            "country": "United States",
            "phone": "(377) 527 4036",
            "user_role": "user",
            "profile_pic": "https://uinames.com/api/photos/male/18.jpg",
            "enabled": true,
            "last_login": "2019-01-01T00:00:00.0000Z",
            "created_on": "2019-01-01T00:00:00.0000Z",
            "last_updated_on": "2019-01-01T00:00:00.0000Z"
        }       
    ]
}

HTTP Request

Update a user

This API helps you to update a user.

Here is the way to use this method:

curl -X PUT \
  'https://api.jetstream.gmbh/v1.1/users/abcdf0123456789abcdf0001' \
  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoiYWJjZGYwMTIzNDU2Nzg5YWJjZGYwMDAxIiwidXNlcl9yb2xlIjoiYWRtaW5pc3RyYXRvciIsImV4cCI6MTU0NjM4NzIwMCwiaWF0IjoxNTQ2MzAwODAwfQ.zuqoFbMbRNfaVi4cK0NHMgtTMCAeH8DOEKRzeyuWUxU' \
  -H 'Content-Type: application/json' \
  -d '{
    "first_name": "Jose",
    "last_name": "Douglas",
    "address": "1/1",
    "state": "New York",
    "country": "United States",
    "phone": "(420) 844 9053",
    "profile_pic":"https://uinames.com/api/photos/male/12.jpg",
    "user_role": "user",
    "enabled": true
}'

JSON response example:

{
    "status": {
        "code": 200,
        "message": "OK"
    },
    "data": [
        {
            "_id": "abcdf0123456789abcdf0001",
            "email": "[email protected]",
            "first_name": "Jose",
            "last_name": "Douglas",
            "address": "1/1",
            "state": "New York",
            "country": "United States",
            "phone": "(420) 844 9053",
            "profile_pic": "https://uinames.com/api/photos/male/12.jpg",
            "user_role": "user",
            "enabled": true,
            "last_login": "2019-01-01T00:00:00.0000Z",
            "created_on": "2019-01-01T00:00:00.0000Z",
            "last_updated_on": "2019-01-01T00:00:00.0000Z"
        }
    ]
}

HTTP Request

Body

Key Type Description
first_name string First name of use.
last_name string Last name of user.
address string Address of user.
state string State of user.
country string Country of user.
phone string Phone of user.
profile_pic string URL profile picture of user.
user_role string Role of user such as administrator and user (for root only).
enabled boolean User status.

Delete a user

This API helps you to delete a user.

Here is the way to use this method:

curl -X DELETE \
  'https://api.jetstream.gmbh/v1.1/users/abcdf0123456789abcdf0001' \
  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoiYWJjZGYwMTIzNDU2Nzg5YWJjZGYwMDAxIiwidXNlcl9yb2xlIjoiYWRtaW5pc3RyYXRvciIsImV4cCI6MTU0NjM4NzIwMCwiaWF0IjoxNTQ2MzAwODAwfQ.zuqoFbMbRNfaVi4cK0NHMgtTMCAeH8DOEKRzeyuWUxU' \
  -H 'Content-Type: application/json'

HTTP Request

Change Password

This API helps you to change password.

Here is the way to use this method:

curl -X POST \
  'https://api.jetstream.gmbh/v1.1/users/abcdf0123456789abcdf0001/change-password' \
  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoiYWJjZGYwMTIzNDU2Nzg5YWJjZGYwMDAxIiwidXNlcl9yb2xlIjoiYWRtaW5pc3RyYXRvciIsImV4cCI6MTU0NjM4NzIwMCwiaWF0IjoxNTQ2MzAwODAwfQ.zuqoFbMbRNfaVi4cK0NHMgtTMCAeH8DOEKRzeyuWUxU' \
  -H 'Content-Type: application/json' \
  -d '{
    "old_password":"password",
    "new_password":"new_password",
    "comfirm_password":"new_password"
}'

JSON response example:

{
    "status": {
        "code": 200,
        "message": "OK"
    }
}

HTTP Request

Body

Key Type Description
old_password* string Your old password.
new_password* string Your new password.
comfirm_password* string Comfirm your new password.

API Key

Create an API key

This API helps you to create a API key.

Here is the way to use this method:

curl -X POST \
  'https://api.jetstream.gmbh/v1.1/apikeys' \
  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoiYWJjZGYwMTIzNDU2Nzg5YWJjZGYwMDAxIiwidXNlcl9yb2xlIjoiYWRtaW5pc3RyYXRvciIsImV4cCI6MTU0NjM4NzIwMCwiaWF0IjoxNTQ2MzAwODAwfQ.zuqoFbMbRNfaVi4cK0NHMgtTMCAeH8DOEKRzeyuWUxU' \
  -H 'Content-Type: application/json'
  -d '{
    "app_name":"Jose app"
}'

JSON response example:

{
    "status": {
        "code": 201,
        "message": "Created"
    },
    "data": [
        {
            "_id": "abcdf0123456789abcdf1001",
            "api_key": "ZmM4ODRiYzItODQ2My00ZTI2LTgxYjgtNTE4ODkxOTE4ODg5",
            "app_name": "Jose app",
            "enabled": true,
            "user_id": "abcdf0123456789abcdf0001",
            "created_on": "2019-01-01T00:00:00.0000Z",
        }
    ]
}

HTTP Request

Body

Key Type Description
app_name* string Application name.

Retrieve an API key

This API helps you to retrieve an API key.

Here is the way to use this method:

curl -X GET \
  'https://api.jetstream.gmbh/v1.1/apikeys/abcdf0123456789abcdf1001' \
  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoiYWJjZGYwMTIzNDU2Nzg5YWJjZGYwMDAxIiwidXNlcl9yb2xlIjoiYWRtaW5pc3RyYXRvciIsImV4cCI6MTU0NjM4NzIwMCwiaWF0IjoxNTQ2MzAwODAwfQ.zuqoFbMbRNfaVi4cK0NHMgtTMCAeH8DOEKRzeyuWUxU' \
  -H 'Content-Type: application/json'

JSON response example:

{
    "status": {
        "code": 200,
        "message": "OK"
    },
    "data": [
        {
            "_id": "abcdf0123456789abcdf1001",
            "api_key": "ZmM4ODRiYzItODQ2My00ZTI2LTgxYjgtNTE4ODkxOTE4ODg5",
            "app_name": "Jose app",
            "enabled": true,
            "user_id": "abcdf0123456789abcdf0001",
            "created_on": "2019-01-01T00:00:00.0000Z",
            "last_updated_on": "2019-01-01T00:00:00.0000Z"
        }
    ]
}

HTTP Request

List all an API keys

This API helps you to list all an API keys.

Here is the way to use this method:

curl -X GET \
  'https://api.jetstream.gmbh/v1.1/apikeys' \
  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoiYWJjZGYwMTIzNDU2Nzg5YWJjZGYwMDAxIiwidXNlcl9yb2xlIjoiYWRtaW5pc3RyYXRvciIsImV4cCI6MTU0NjM4NzIwMCwiaWF0IjoxNTQ2MzAwODAwfQ.zuqoFbMbRNfaVi4cK0NHMgtTMCAeH8DOEKRzeyuWUxU' \
  -H 'Content-Type: application/json'

JSON response example:

{
    "status": {
        "code": 200,
        "message": "OK"
    },
    "data": [
        {
            "_id": "abcdf0123456789abcdf1001",
            "api_key": "ZmM4ODRiYzItODQ2My00ZTI2LTgxYjgtNTE4ODkxOTE4ODg5",
            "app_name": "Jose app",
            "enabled": true,
            "user_id": "abcdf0123456789abcdf0001",
            "created_on": "2019-01-01T00:00:00.0000Z",
            "last_updated_on": "2019-01-01T00:00:00.0000Z"
        },
        {
            "_id": "abcdf0123456789abcdf1002",
            "api_key": "MTJjZmVhZmYtOTJlMC00YWNlLTliODctNWE3Njg2OGU4ZGZh",
            "app_name": "Jose app2",
            "enabled": true,
            "user_id": "abcdf0123456789abcdf0001",
            "created_on": "2019-01-01T00:00:00.0000Z",
            "last_updated_on": "2019-01-01T00:00:00.0000Z"
        }
    ]
}

HTTP Request

Update an API key

This API helps you to update an API keys.

Here is the way to use this method:

curl -X PUT \
  'https://api.jetstream.gmbh/v1.1/apikeys/abcdf0123456789abcdf1001' \
  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoiYWJjZGYwMTIzNDU2Nzg5YWJjZGYwMDAxIiwidXNlcl9yb2xlIjoiYWRtaW5pc3RyYXRvciIsImV4cCI6MTU0NjM4NzIwMCwiaWF0IjoxNTQ2MzAwODAwfQ.zuqoFbMbRNfaVi4cK0NHMgtTMCAeH8DOEKRzeyuWUxU' \
  -H 'Content-Type: application/json'
  -d '{
    "app_name":"Jose app",
    "enabled": true
}'

JSON response example:

{
    "status": {
        "code": 200,
        "message": "OK"
    },
    "data": [
        {
            "_id": "abcdf0123456789abcdf1001",
            "api_key": "ZmM4ODRiYzItODQ2My00ZTI2LTgxYjgtNTE4ODkxOTE4ODg5",
            "app_name": "Jose app",
            "enabled": true,
            "user_id": "abcdf0123456789abcdf0001",
            "created_on": "2019-01-01T00:00:00.0000Z",
            "last_updated_on": "2019-01-01T00:00:00.0000Z"
        }
    ]
}

HTTP Request

Here is the way to use this method:

Body

Key Type Description
app_name string Application name.
enabled boolean API key status.

Delete an API key

This API helps you to delete an API key.

Here is the way to use this method:

curl -X DELETE \
  'https://api.jetstream.gmbh/v1.1/apikeys/5c99fafbe9a1031e75c7b35c' \
  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoiYWJjZGYwMTIzNDU2Nzg5YWJjZGYwMDAxIiwidXNlcl9yb2xlIjoiYWRtaW5pc3RyYXRvciIsImV4cCI6MTU0NjM4NzIwMCwiaWF0IjoxNTQ2MzAwODAwfQ.zuqoFbMbRNfaVi4cK0NHMgtTMCAeH8DOEKRzeyuWUxU' \
  -H 'Content-Type: application/json' 

HTTP Request

Virtual Organization (VO)

Create an Virtual Organization

This API helps you to create a VO.

Here is the way to use this method:

curl -X POST \
  'https://api.jetstream.gmbh/v1.1/vo' \
  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoiYWJjZGYwMTIzNDU2Nzg5YWJjZGYwMDAxIiwidXNlcl9yb2xlIjoiYWRtaW5pc3RyYXRvciIsImV4cCI6MTU0NjM4NzIwMCwiaWF0IjoxNTQ2MzAwODAwfQ.zuqoFbMbRNfaVi4cK0NHMgtTMCAeH8DOEKRzeyuWUxU' \
  -H 'Content-Type: application/json' \
  -d '{
    "vo":"jose"
}'

JSON response example:

{
    "status": {
        "code": 201,
        "message": "Created"
    },
    "data": [
        {
            "_id": "abcdf0123456789abcdf2001",
            "vo": "jose",
            "users": [
                {
                    "user_id": "abcdf0123456789abcdf0001",
                    "owner": true
                }
            ],
            "aggregate": {
                "cnt_job": 0,
                "cnt_storage": 0
            },
            "created_on": "2019-01-01T00:00:00.0000Z",

        }
    ]
}

HTTP Request

Body

Key Type Description
vo* string Virtual organization name.

List all an Virtual Organizations

This API helps you to list all a VOs.

Here is the way to use this method:

curl -X GET \
  'https://api.jetstream.gmbh/v1.1/vo' \
  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoiYWJjZGYwMTIzNDU2Nzg5YWJjZGYwMDAxIiwidXNlcl9yb2xlIjoiYWRtaW5pc3RyYXRvciIsImV4cCI6MTU0NjM4NzIwMCwiaWF0IjoxNTQ2MzAwODAwfQ.zuqoFbMbRNfaVi4cK0NHMgtTMCAeH8DOEKRzeyuWUxU' \
  -H 'Content-Type: application/json'

JSON response example:

{
    "status": {
        "code": 200,
        "message": "OK"
    },
    "data": [
        {
            "_id": "abcdf0123456789abcdf2001",
            "vo": "jose",
            "users": [
                {
                    "user_id": "abcdf0123456789abcdf0001",
                    "owner": true
                }
            ],
            "aggregate": {
                "cnt_job": 0,
                "cnt_storage": 0
            },
            "created_on": "2019-01-01T00:00:00.0000Z",
            "last_updated_on": "2019-01-01T00:00:00.0000Z"
        },
        {
            "_id": "abcdf0123456789abcdf2002",
            "vo": "douglas",
            "users": [
                {
                    "user_id": "abcdf0123456789abcdf0001",
                    "owner": true
                }
            ],
            "aggregate": {
                "cnt_job": 0,
                "cnt_storage": 0
            },
            "created_on": "2019-01-01T00:00:00.0000Z",
            "last_updated_on": "2019-01-01T00:00:00.0000Z"
        }
    ]
}

HTTP Request

Storages

Create a Storage

This API helps you to create a storage.

Here is the way to use this method:

curl -X POST \
  'https://api.jetstream.gmbh/v1.1/jose/storages' \
  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoiYWJjZGYwMTIzNDU2Nzg5YWJjZGYwMDAxIiwidXNlcl9yb2xlIjoiYWRtaW5pc3RyYXRvciIsImV4cCI6MTU0NjM4NzIwMCwiaWF0IjoxNTQ2MzAwODAwfQ.zuqoFbMbRNfaVi4cK0NHMgtTMCAeH8DOEKRzeyuWUxU' \
  -H 'Content-Type: application/json' \
  -d '{
    "name" : "jose.temperature"
}
'

JSON response example:

{
    "status": {
        "code": 201,
        "message": "Created"
    },
    "data": [
        {
            "_id": "abcdf0123456789abcdf3001",
            "name": "jose.temperature",
            "public": false,
            "acl_token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ2byI6Impvc2UiLCJhY2wiOlt7ImFjY2VwdCI6ZmFsc2V9LHsiYWNjZXB0Ijp0cnVlLCJyZXNvdXJjZSI6Impvc2UudGVtcGVyYXR1cmUifV0sImlhdCI6MTU1OTIwMTY4MH0.9Yn4_DhsqXrnYqFSO6zU3P4ZXU-p82O1lj1ycT8LAis",
            "vo_id": "abcdf0123456789abcdf2001",
            "created_on": "2019-01-01T00:00:00.0000Z"
        }
    ]
}

HTTP Request

Body

Key Type Description
name* string Storage name. By private format is {vo}.{storage_name} and public format is {vo}.{storage_name}.pub.

Retrieve a Storage

This API helps you to retrieve a storage.

Here is the way to use this method:

curl -X GET \
  'https://api.jetstream.gmbh/v1.1/jose/storages/jose.temperature' \
  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoiYWJjZGYwMTIzNDU2Nzg5YWJjZGYwMDAxIiwidXNlcl9yb2xlIjoiYWRtaW5pc3RyYXRvciIsImV4cCI6MTU0NjM4NzIwMCwiaWF0IjoxNTQ2MzAwODAwfQ.zuqoFbMbRNfaVi4cK0NHMgtTMCAeH8DOEKRzeyuWUxU' \
  -H 'Content-Type: application/json'

JSON response example:

{
    "status": {
        "code": 200,
        "message": "OK"
    },
    "data": [
        {
            "_id": "abcdf0123456789abcdf3001",
            "name": "jose.temperature",
            "public": false,
            "acl_token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ2byI6Impvc2UiLCJhY2wiOlt7ImFjY2VwdCI6ZmFsc2V9LHsiYWNjZXB0Ijp0cnVlLCJyZXNvdXJjZSI6Impvc2UudGVtcGVyYXR1cmUifV0sImlhdCI6MTU1OTIwMTY4MH0.9Yn4_DhsqXrnYqFSO6zU3P4ZXU-p82O1lj1ycT8LAis",
            "vo_id": "abcdf0123456789abcdf2001",
            "created_on": "2019-01-01T00:00:00.0000Z"
        }
    ]
}

HTTP Request

List all a Storages

This API helps you to list all a storages.

Here is the way to use this method:

curl -X GET \
  'https://api.jetstream.gmbh/v1.1/jose/storages' \
  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoiYWJjZGYwMTIzNDU2Nzg5YWJjZGYwMDAxIiwidXNlcl9yb2xlIjoiYWRtaW5pc3RyYXRvciIsImV4cCI6MTU0NjM4NzIwMCwiaWF0IjoxNTQ2MzAwODAwfQ.zuqoFbMbRNfaVi4cK0NHMgtTMCAeH8DOEKRzeyuWUxU' \
  -H 'Content-Type: application/json'

JSON response example:

{
    "status": {
        "code": 200,
        "message": "OK"
    },
    "data": [
        {
            "_id": "abcdf0123456789abcdf3001",
            "name": "jose.temperature",
            "public": false,
            "acl_token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ2byI6Impvc2UiLCJhY2wiOlt7ImFjY2VwdCI6ZmFsc2V9LHsiYWNjZXB0Ijp0cnVlLCJyZXNvdXJjZSI6Impvc2UudGVtcGVyYXR1cmUifV0sImlhdCI6MTU1OTIwMTY4MH0.9Yn4_DhsqXrnYqFSO6zU3P4ZXU-p82O1lj1ycT8LAis",
            "vo_id": "abcdf0123456789abcdf2001",
            "created_on": "2019-01-01T00:00:00.0000Z"
        },
        {
            "_id": "abcdf0123456789abcdf3002",
            "name": "jose.rain.pub",
            "public": true,
            "acl_token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ2byI6Impvc2UiLCJhY2wiOlt7ImFjY2VwdCI6ZmFsc2V9LHsiYWNjZXB0Ijp0cnVlLCJyZXNvdXJjZSI6Impvc2UucmFpbi5wdWIifV0sImlhdCI6MTU1OTIwMTY4MH0.eieTglpOWTXS-QBEpIYHO-8KQEs3FvhqBbfK7xguhjc",
            "vo_id": "abcdf0123456789abcdf2001",
            "created_on": "2019-01-01T00:00:00.0000Z"
        }
    ]
}

HTTP Request

Delete a Storage

This API helps you to delete a storage.

Here is the way to use this method:

curl -X DELETE \
  'https://api.jetstream.gmbh/v1.1/jose/storages/jose.rain.pub' \
  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoiYWJjZGYwMTIzNDU2Nzg5YWJjZGYwMDAxIiwidXNlcl9yb2xlIjoiYWRtaW5pc3RyYXRvciIsImV4cCI6MTU0NjM4NzIwMCwiaWF0IjoxNTQ2MzAwODAwfQ.zuqoFbMbRNfaVi4cK0NHMgtTMCAeH8DOEKRzeyuWUxU' \
  -H 'Content-Type: application/json'

HTTP Request

Retrieve a Storage Stats

This API helps you to retrieve a storage Stats.

Here is the way to use this method:

curl -X GET \
  'https://api.jetstream.gmbh/v1.1/jose/storages/jose.temperature/stats' \
  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoiYWJjZGYwMTIzNDU2Nzg5YWJjZGYwMDAxIiwidXNlcl9yb2xlIjoiYWRtaW5pc3RyYXRvciIsImV4cCI6MTU0NjM4NzIwMCwiaWF0IjoxNTQ2MzAwODAwfQ.zuqoFbMbRNfaVi4cK0NHMgtTMCAeH8DOEKRzeyuWUxU' \
  -H 'Content-Type: application/json'

JSON response example:

{
    "status": {
        "code": 200,
        "message": "OK"
    },
    "data": [
        {
            "storage_name": "jose.rain.pub",
            "count": 12,
            "file_name": "jose/rain.pub.bss",
            "file_size": 801969
        }
    ]
}

HTTP Request

Plugins

Create a Plugin

This API helps you to create a plugin.

Here is the way to use this method:

curl -X POST \
  'https://api.jetstream.gmbh/v1.1/plugins' \
  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoiYWJjZGYwMTIzNDU2Nzg5YWJjZGYwMDAxIiwidXNlcl9yb2xlIjoiYWRtaW5pc3RyYXRvciIsImV4cCI6MTU0NjM4NzIwMCwiaWF0IjoxNTQ2MzAwODAwfQ.zuqoFbMbRNfaVi4cK0NHMgtTMCAeH8DOEKRzeyuWUxU' \
  -H 'Content-Type: application/json' \
  -d '{
    "name": "http",
    "label": "HTTP",
    "description": "HTTP",
    "category": "tg",
    "params": [
        {
            "name": "appkey",
            "label": "API Key",
            "description": "",
            "data_type": "string",
            "required": true
        },
        {
            "name": "method",
            "label": "Method",
            "description": "",
            "data_type": "string",
            "values": [
                "get",
                "post"
            ],
            "required": true
        }
    ]
}'

JSON response example:

{
    "status": {
        "code": 201,
        "message": "Created"
    },
    "data": [
        {
            "_id": "abcdf0123456789abcdf4001",
            "name": "http",
            "label": "HTTP",
            "description": "HTTP",
            "category": "tg",
            "params": [
                {
                    "name": "appkey",
                    "label": "API Key",
                    "description": "",
                    "data_type": "string",
                    "required": true
                },
                {
                    "name": "method",
                    "label": "Method",
                    "description": "",
                    "data_type": "string",
                    "values": [
                        "get",
                        "post"
                    ],
                    "required": true
                }
            ],
            "created_on": "2019-01-01T00:00:00.0000Z"
        }
    ]
}

HTTP Request

Body

Key Type Description
name* string plugin name for program reference to this plugin.
label* string plugin name to display.
description string plugin description .
category* string plugin category such as tg, di, dt and do.
params* object array parameter of plugin.
params[].name* string parameter name for program reference to this param.
params[].label* string parameter label to display.
params[].description string parameter description.
params[].data_type* string parameter datatype such as string, integer etc.
params[].values array Value for select.
params[].required bool Parameter required true or fasle.

Category of plugin is job componance such as tg = trigger, di = data input, dt = data transform and do = data outpud.

Retrieve a Plugin

This API helps you to retrieve a plugin.

Here is the way to use this method:

curl -X GET \
  'https://api.jetstream.gmbh/v1.1/plugins/http' \
  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoiYWJjZGYwMTIzNDU2Nzg5YWJjZGYwMDAxIiwidXNlcl9yb2xlIjoiYWRtaW5pc3RyYXRvciIsImV4cCI6MTU0NjM4NzIwMCwiaWF0IjoxNTQ2MzAwODAwfQ.zuqoFbMbRNfaVi4cK0NHMgtTMCAeH8DOEKRzeyuWUxU' \
  -H 'Content-Type: application/json'

JSON response example:

{
    "status": {
        "code": 200,
        "message": "OK"
    },
    "data": [
        {
            "_id": "abcdf0123456789abcdf4001",
            "name": "http",
            "label": "HTTP",
            "description": "HTTP",
            "category": "tg",
            "params": [
                {
                    "name": "appkey",
                    "label": "API Key",
                    "description": "",
                    "data_type": "string",
                    "required": true
                },
                {
                    "name": "method",
                    "label": "Method",
                    "description": "",
                    "data_type": "string",
                    "values": [
                        "get",
                        "post"
                    ],
                    "required": true
                }
            ],
            "created_on": "2019-01-01T00:00:00.0000Z",
            "last_updated_on": "2019-01-01T00:00:00.0000Z"
        }
    ]
}

HTTP Request

List all a Plugins

This API helps you to list all a plugins.

Here is the way to use this method:

curl -X GET \
  'https://api.jetstream.gmbh/v1.1/plugins' \
  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoiYWJjZGYwMTIzNDU2Nzg5YWJjZGYwMDAxIiwidXNlcl9yb2xlIjoiYWRtaW5pc3RyYXRvciIsImV4cCI6MTU0NjM4NzIwMCwiaWF0IjoxNTQ2MzAwODAwfQ.zuqoFbMbRNfaVi4cK0NHMgtTMCAeH8DOEKRzeyuWUxU' \
  -H 'Content-Type: application/json'

JSON response example:

{
    "status": {
        "code": 200,
        "message": "OK"
    },
    "data": [
        {
            "_id": "abcdf0123456789abcdf4001",
            "name": "http",
            "label": "HTTP",
            "description": "HTTP",
            "category": "tg",
            "params": [
                {
                    "name": "appkey",
                    "label": "API Key",
                    "description": "",
                    "data_type": "string",
                    "required": true
                },
                {
                    "name": "method",
                    "label": "Method",
                    "description": "",
                    "data_type": "string",
                    "values": [
                        "get",
                        "post"
                    ],
                    "required": true
                }
            ],
            "created_on": "2019-01-01T00:00:00.0000Z",
            "last_updated_on": "2019-01-01T00:00:00.0000Z"
        }
    ]
}

HTTP Request

Query Parameter

Key Type Description
category string plugin category in tg, di, dt and do.

Update a Plugin

This API helps you to update a plugin.

Here is the way to use this method:

curl -X PUT \
  'https://api.jetstream.gmbh/v1.1/plugins/http' \
  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoiYWJjZGYwMTIzNDU2Nzg5YWJjZGYwMDAxIiwidXNlcl9yb2xlIjoiYWRtaW5pc3RyYXRvciIsImV4cCI6MTU0NjM4NzIwMCwiaWF0IjoxNTQ2MzAwODAwfQ.zuqoFbMbRNfaVi4cK0NHMgtTMCAeH8DOEKRzeyuWUxU' \
  -H 'Content-Type: application/json'
  -d '{
    "label": "HTTP",
    "description": "HTTP",
    "category": "tg",
    "params": [
        {
            "name": "appkey",
            "label": "API Key",
            "description": "",
            "data_type": "string",
            "required": true
        },
        {
            "name": "method",
            "label": "Method",
            "description": "",
            "data_type": "string",
            "values": [
                "get",
                "post"
            ],
            "required": true
        }
    ]
}'

JSON response example:

{
    "status": {
        "code": 200,
        "message": "OK"
    },
    "data": [
        {
            "_id": "abcdf0123456789abcdf4001",
            "name": "http",
            "label": "HTTP",
            "description": "HTTP",
            "category": "tg",
            "params": [
                {
                    "name": "appkey",
                    "label": "API Key",
                    "description": "",
                    "data_type": "string",
                    "required": true
                },
                {
                    "name": "method",
                    "label": "Method",
                    "description": "",
                    "data_type": "string",
                    "values": [
                        "get",
                        "post"
                    ],
                    "required": true
                }
            ],
            "created_on": "2019-01-01T00:00:00.0000Z",
            "last_updated_on": "2019-01-01T00:00:00.0000Z"
        }
    ]
}

HTTP Request

Body

Key Type Description
label string plugin name to display.
description string plugin description .
category string plugin category such as tg, di, dt and do.
params object array parameter of plugin.
params[].name string parameter name for program reference to this param.
params[].label string parameter label to display.
params[].description string parameter description.
params[].data_type string parameter datatype such as string, integer etc.
params[].values array Value for select.
params[].required bool Parameter required true or fasle.

Delete a Plugin

This API helps you to delete a plugin.

Here is the way to use this method:

curl -X DELETE \
  'https://api.jetstream.gmbh/v1.1/plugins/http' \
  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoiYWJjZGYwMTIzNDU2Nzg5YWJjZGYwMDAxIiwidXNlcl9yb2xlIjoiYWRtaW5pc3RyYXRvciIsImV4cCI6MTU0NjM4NzIwMCwiaWF0IjoxNTQ2MzAwODAwfQ.zuqoFbMbRNfaVi4cK0NHMgtTMCAeH8DOEKRzeyuWUxU' \
  -H 'Content-Type: application/json'

HTTP Request

Jobs

Create a Job

This API helps you to create a job.

Here is the way to use this method:

curl -X POST \
  'https://api.jetstream.gmbh/v1.1/jose/jobs' \
  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoiYWJjZGYwMTIzNDU2Nzg5YWJjZGYwMDAxIiwidXNlcl9yb2xlIjoiYWRtaW5pc3RyYXRvciIsImV4cCI6MTU0NjM4NzIwMCwiaWF0IjoxNTQ2MzAwODAwfQ.zuqoFbMbRNfaVi4cK0NHMgtTMCAeH8DOEKRzeyuWUxU' \
  -H 'Content-Type: application/json' \
  -d '{
    "label":"http post",
    "type":"normal",
    "description":"http post",
    "job":{
        "job_id": "jose.http_post",
        "active": true,
        "trigger":{
            "type":"http",
            "method":"post"
        },
        "data_in": {
            "type":"input",
            "param":{
                 "object": "httpdata"
            }
        },
        "data_transform": {
            "type": "noop"
        },
        "data_out": {
            "type": "storage",
            "param": {
                "storage_name": "jose.temperature"
            }
        }
    }
}'

JSON response example:

{
    "status": {
        "code": 201,
        "message": "Created"
    },
    "data": [
        {
            "_id": "abcdf0123456789abcdf5001",
            "label": "http post",
            "type":"normal",
            "description": "http post",
            "job": {
                "job_id": "jose.http_post",
                "active": true,
                "trigger": {
                    "type": "http",
                    "appkey": "OD9lLfznwQJbYfYD",
                    "method": "post"
                },
                "data_in": {
                    "type": "input",
                    "param": {
                        "object": "httpdata"
                    }
                },
                "data_transform": {
                    "type": "noop"
                },
                "data_out": {
                    "type": "storage",
                    "param": {
                        "storage_name": "jose.temperature"
                    }
                },
                "_vo": "jose"
            },
            "vo_id": "abcdf0123456789abcdf2001",
            "created_on": "2019-01-01T00:00:00.0000Z"
        }
    ]
}

HTTP Request

Body

Key Type Description
label* string Label is a dispaly name of job.
type* string Type of job. normal is general job or call is job for another job call to use.
description string job description.
job* object JSON config for job.
job.job_id* string Like a job name and unique name for refer to job by format is {vo}.{storage_name}.
job.active* boolean active status of job.
job.trigger* object Config of call job part. In case of job type = call no need to set trigger.
job.trigger.type string Type to call job by type is a plugin in trigger category. In each plugin have different required parammeter as an example http plugin have parameter method.
job.data_in* object Config of data input.
job.data_in.type* string Type for data input by selete from plugin in data input category. In each plugin have different required parammeter as an example input plugin have parameter object.
job.data_transform* object Config of data transform.
job.data_transform.type* string Type for data transform by selete from plugin in data transform category. noop is a no operation so no need to input parameter.
job.data_out* object Config of data output.
job.data_out.type* string Type for data output by selete from plugin in data output category. In each plugin have different required parammeter as an example storage plugin have parameter storage_name.

Retrieve a Job

This API helps you to retrieve a job.

Here is the way to use this method:

curl -X GET \
  'https://api.jetstream.gmbh/v1.1/jose/jobs/marupong.http_post' \
  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoiYWJjZGYwMTIzNDU2Nzg5YWJjZGYwMDAxIiwidXNlcl9yb2xlIjoiYWRtaW5pc3RyYXRvciIsImV4cCI6MTU0NjM4NzIwMCwiaWF0IjoxNTQ2MzAwODAwfQ.zuqoFbMbRNfaVi4cK0NHMgtTMCAeH8DOEKRzeyuWUxU' \
  -H 'Content-Type: application/json'

JSON response example:

{
    "status": {
        "code": 200,
        "message": "OK"
    },
    "data": [
        {
            "_id": "abcdf0123456789abcdf5001",
            "label": "http post",
            "type":"normal",
            "description": "http post",
            "job": {
                "job_id": "jose.http_post",
                "active": true,
                "trigger": {
                    "type": "http",
                    "appkey": "OD9lLfznwQJbYfYD",
                    "method": "post"
                },
                "data_in": {
                    "type": "input",
                    "param": {
                        "object": "httpdata"
                    }
                },
                "data_transform": {
                    "type": "noop"
                },
                "data_out": {
                    "type": "storage",
                    "param": {
                        "storage_name": "jose.temperature"
                    }
                },
                "_vo": "jose"
            },
            "vo_id": "abcdf0123456789abcdf2001",
            "created_on": "2019-01-01T00:00:00.0000Z",
            "last_updated_on": "2019-01-01T00:00:00.0000Z"
        }
    ]
}

HTTP Request

List all a Jobs

This API helps you to list all a jobs.

Here is the way to use this method:

curl -X GET \
  'https://api.jetstream.gmbh/v1.1/jose/jobs' \
  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoiYWJjZGYwMTIzNDU2Nzg5YWJjZGYwMDAxIiwidXNlcl9yb2xlIjoiYWRtaW5pc3RyYXRvciIsImV4cCI6MTU0NjM4NzIwMCwiaWF0IjoxNTQ2MzAwODAwfQ.zuqoFbMbRNfaVi4cK0NHMgtTMCAeH8DOEKRzeyuWUxU' \
  -H 'Content-Type: application/json'

JSON response example:

{
    "status": {
        "code": 200,
        "message": "OK"
    },
    "data": [
        {
            "_id": "abcdf0123456789abcdf5001",
            "label": "http post",
            "type":"normal",
            "description": "http post",
            "job": {
                "job_id": "jose.http_post",
                "active": true,
                "trigger": {
                    "type": "http",
                    "appkey": "OD9lLfznwQJbYfYD",
                    "method": "post"
                },
                "data_in": {
                    "type": "input",
                    "param": {
                        "object": "httpdata"
                    }
                },
                "data_transform": {
                    "type": "noop"
                },
                "data_out": {
                    "type": "storage",
                    "param": {
                        "storage_name": "jose.temperature"
                    }
                },
                "_vo": "jose"
            },
            "vo_id": "abcdf0123456789abcdf2001",
            "created_on": "2019-01-01T00:00:00.0000Z",
            "last_updated_on": "2019-01-01T00:00:00.0000Z"
        },
        {
            "_id": "abcdf0123456789abcdf5002",
            "label": "http post",
            "type":"normal",
            "description": "http post",
            "job": {
                "job_id": "jose.auto_read",
                "active": true,
                "trigger": {
                    "type": "cron",
                    "cmd": "*/5 * * * *"
                },
                "data_in": {
                    "type": "http-request",
                    "param": {
                        "encoding": "json",
                        "url": "https://data.com/api/temperature/v1/?key=api12345&type=json"
                    }
                },
                "data_transform": {
                    "type": "transform",
                    "param": {
                        "script": [
                            "data = src.data.Stations"
                        ]
                    }
                },
                "data_out": {
                    "type": "storage",
                    "param": {
                        "storage_name": "jose.temperature"
                    }
                },
                "_vo": "jose"
            },
            "vo_id": "abcdf0123456789abcdf2001",
            "created_on": "2019-01-01T00:00:00.0000Z",
            "last_updated_on": "2019-01-01T00:00:00.0000Z"
        }
    ]
}

HTTP Request

Update a Job

This API helps you to update a job.

Here is the way to use this method:

curl -X PUT \
  'https://api.jetstream.gmbh/v1.1/jose/jobs/marupong.http_post' \
  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoiYWJjZGYwMTIzNDU2Nzg5YWJjZGYwMDAxIiwidXNlcl9yb2xlIjoiYWRtaW5pc3RyYXRvciIsImV4cCI6MTU0NjM4NzIwMCwiaWF0IjoxNTQ2MzAwODAwfQ.zuqoFbMbRNfaVi4cK0NHMgtTMCAeH8DOEKRzeyuWUxU' \
  -H 'Content-Type: application/json' \
  -d '{
    "label":"http post",
    "type":"normal",
    "description":"http post",
    "job":{
        "active": true,
        "trigger":{
            "type":"http",
            "method" : "post"
        },
        "data_in": {
            "type":"input",
            "param":{
                 "object": "httpdata"
            }
        },
        "data_transform": {
            "type": "noop"
        },
        "data_out": {
            "type": "storage",
            "param": {
                "storage_name": "jose.temperature"
            }
        }
    }
}'

JSON response example:

{
    "status": {
        "code": 200,
        "message": "OK"
    },
    "data": [
        {
            "_id": "abcdf0123456789abcdf5001",
            "label": "http post",
            "type":"normal",
            "description": "http post",
            "job": {
                "job_id": "jose.http_post",
                "active": true,
                "trigger": {
                    "type": "http",
                    "appkey": "OD9lLfznwQJbYfYD",
                    "method": "post"
                },
                "data_in": {
                    "type": "input",
                    "param": {
                        "object": "httpdata"
                    }
                },
                "data_transform": {
                    "type": "noop"
                },
                "data_out": {
                    "type": "storage",
                    "param": {
                        "storage_name": "jose.temperature"
                    }
                },
                "_vo": "jose"
            },
            "vo_id": "abcdf0123456789abcdf2001",
            "created_on": "2019-01-01T00:00:00.0000Z",
            "last_updated_on": "2019-01-01T00:00:00.0000Z"
        }
    ]
}

HTTP Request

Body

Key Type Description
label string Label is a dispaly name of job.
type string Type of job. normal is general job or call is job for another call to use.
description string job description.
job object JSON config for job.
job.active boolean active status of job.
job.trigger object Config of call job part
job.trigger.type string Type to call job by type is a plugin in trigger category. In each plugin have different required parammeter as an example http plugin have parameter method.
job.data_in object Config of data input.
job.data_in.type string Type for data input by selete from plugin in data input category. In each plugin have different required parammeter as an example input plugin have parameter object.
job.data_transform object Config of data transform.
job.data_transform.type string Type for data transform by selete from plugin in data transform category. noop is a no operation so no need to input parameter.
job.data_out object Config of data output.
job.data_out.type string Type for data output by selete from plugin in data output category. In each plugin have different required parammeter as an example storage plugin have parameter storage_name.

Delete a Job

This API helps you to delete a job.

Here is the way to use this method:

curl -X DELETE \
  'https://api.jetstream.gmbh/v1.1/jose/jobs/marupong.http_post' \
  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoiYWJjZGYwMTIzNDU2Nzg5YWJjZGYwMDAxIiwidXNlcl9yb2xlIjoiYWRtaW5pc3RyYXRvciIsImV4cCI6MTU0NjM4NzIwMCwiaWF0IjoxNTQ2MzAwODAwfQ.zuqoFbMbRNfaVi4cK0NHMgtTMCAeH8DOEKRzeyuWUxU' \
  -H 'Content-Type: application/json' 

HTTP Request

Listener

The way to call the job (except trigger type cron) which user can send data to your output such as storage.

GET Method

This API helps you to run job and send data by method GET.

Here is the way to use this method:

curl -X GET \
  'https://api.jetstream.gmbh/v1.1/jose/listeners/OD9lLfznwQJbYfYD?temp=23.6' \
  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoiNWNjZmZmOTBlOWExMDMyYjk1NGFiZmFiIiwidXNlcl9yb2xlIjoiYWRtaW5pc3RyYXRvciIsImV4cCI6MTU1ODQ4ODk2MSwiaWF0IjoxNTU4NDAyNTYxfQ.eAJtQB7q8CUjPvdXjxq5bN6bOhYk8Y6J-EwmP3vW1l8' \
  -H 'Content-Type: application/json'

JSON response example:

{
    "status": {
        "code": 200,
        "message": "OK"
    }
}

HTTP Request

You can pass data like a query parameter like this:

By you can declare key and value that you want.

POST Method

This API helps you to run job and send data by method POST.

Here is the way to use this method:

curl -X GET \
  'https://api.jetstream.gmbh/v1.1/jose/listeners/OD9lLfznwQJbYfYD' \
  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoiNWNjZmZmOTBlOWExMDMyYjk1NGFiZmFiIiwidXNlcl9yb2xlIjoiYWRtaW5pc3RyYXRvciIsImV4cCI6MTU1ODQ4ODk2MSwiaWF0IjoxNTU4NDAyNTYxfQ.eAJtQB7q8CUjPvdXjxq5bN6bOhYk8Y6J-EwmP3vW1l8' \
  -H 'Content-Type: application/json' \
  -d '{
    "temp":"23.6"
}'

JSON response example:

{
    "status": {
        "code": 200,
        "message": "OK"
    }
}

HTTP Request

By you can declare request body that you want.

Objects

List all an Objects

This API helps you to list all an objects.

Here is the way to use this method:

curl -X GET \
  'https://api.jetstream.gmbh/v1.1/jose/storages/jose.temperature/objects' \
  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoiNWNjZmZmOTBlOWExMDMyYjk1NGFiZmFiIiwidXNlcl9yb2xlIjoiYWRtaW5pc3RyYXRvciIsImV4cCI6MTU1ODQ4ODk2MSwiaWF0IjoxNTU4NDAyNTYxfQ.eAJtQB7q8CUjPvdXjxq5bN6bOhYk8Y6J-EwmP3vW1l8' \
  -H 'Content-Type: application/json'

JSON response example:

{
    "status": {
        "code": 200,
        "message": "OK"
    },
    "data": [
        {
            "_id": "abcdf0123456789abcdf6001",
            "meta": {
                "User-Agent": "Postman",
                "_agent": "Storage API",
                "_ts": 1553762501
            },
            "data": {
                "temp": "23.6"
            }
        },
        {
            "_id": "abcdf0123456789abcdf6002",
            "meta": {
                "User-Agent": "Postman",
                "_agent": "Storage API",
                "_ts": 1553762717
            },
            "data": {
                "temp": "23.6"
            }
        },
        {
            "_id": "abcdf0123456789abcdf6003",
            "meta": {
                "User-Agent": "Postman",
                "_agent": "Storage API",
                "_ts": 1553762915
            },
            "data": {
                "temp": "23.6"
            }
        }
    ]
}

HTTP Request

Query parameter

Key Type Description
from integer set start number and retrieve data from this value.
offset integer set object id and retrieve data from this value.
last integer set number to retrieve latest data.
limit integer set limit to retrieve data.
sizelimit integer set size to retrieve data.
output string object = JSON Array, stream = JSON Text
field integer retrieve field [id, meta, data]

Retrieve an Object

This API helps you to retrieve an object.

Here is the way to use this method:

curl -X GET \
  'https://api.jetstream.gmbh/v1.1/jose/storages/jose.temperature/objects/[0]' \
  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoiNWNjZmZmOTBlOWExMDMyYjk1NGFiZmFiIiwidXNlcl9yb2xlIjoiYWRtaW5pc3RyYXRvciIsImV4cCI6MTU1ODQ4ODk2MSwiaWF0IjoxNTU4NDAyNTYxfQ.eAJtQB7q8CUjPvdXjxq5bN6bOhYk8Y6J-EwmP3vW1l8' \
  -H 'Content-Type: application/json'
curl -X GET \
  'https://api.jetstream.gmbh/v1.1/jose/storages/jose.temperature/objects/abcdf0123456789abcdf6001' \
  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoiNWNjZmZmOTBlOWExMDMyYjk1NGFiZmFiIiwidXNlcl9yb2xlIjoiYWRtaW5pc3RyYXRvciIsImV4cCI6MTU1ODQ4ODk2MSwiaWF0IjoxNTU4NDAyNTYxfQ.eAJtQB7q8CUjPvdXjxq5bN6bOhYk8Y6J-EwmP3vW1l8' \
  -H 'Content-Type: application/json'

JSON response example:

{
    "status": {
        "code": 200,
        "message": "OK"
    },
    "data": [
        {
            "_id": "abcdf0123456789abcdf6001",
            "meta": {
                "User-Agent": "Postman",
                "_agent": "Storage API",
                "_ts": 1553762501
            },
            "data": {
                "temp": "23.6"
            }
        }
    ]
}

HTTP Request

object_ref have two type like this:

Key Type Description
object_id string such as abcdf0123456789abcdf6001.
object_index integer such as [0]

Retrieve an Data Object

This API helps you to retrieve an object (retrieve only object data without meta data).

Here is the way to use this method:

curl -X GET \
  'https://api.jetstream.gmbh/v1.1/jose/storages/jose.temperature/objects/[0]/data' \
  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoiNWNjZmZmOTBlOWExMDMyYjk1NGFiZmFiIiwidXNlcl9yb2xlIjoiYWRtaW5pc3RyYXRvciIsImV4cCI6MTU1ODQ4ODk2MSwiaWF0IjoxNTU4NDAyNTYxfQ.eAJtQB7q8CUjPvdXjxq5bN6bOhYk8Y6J-EwmP3vW1l8' \
  -H 'Content-Type: application/json'
curl -X GET \
  'https://api.jetstream.gmbh/v1.1/jose/storages/jose.temperature/objects/abcdf0123456789abcdf6001/data' \
  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoiNWNjZmZmOTBlOWExMDMyYjk1NGFiZmFiIiwidXNlcl9yb2xlIjoiYWRtaW5pc3RyYXRvciIsImV4cCI6MTU1ODQ4ODk2MSwiaWF0IjoxNTU4NDAyNTYxfQ.eAJtQB7q8CUjPvdXjxq5bN6bOhYk8Y6J-EwmP3vW1l8' \
  -H 'Content-Type: application/json'

JSON response example:

{
    "status": {
        "code": 200,
        "message": "OK"
    },
    "data": [
        {
            "temp": "23.6"
        }
    ]
}

HTTP Request

object_ref have two type like this:

Key Type Description
object_id string such as abcdf0123456789abcdf6001.
object_index integer such as [0]