Shell PHP Node.JS Ruby Python Java
INTRODUCTION
  • Artifakt API
  • Versioning
  • Authentication
  • CORS
  • Performance & Security
  • Schema
  • Data formats
  • Pagination
  • HTTP Status Codes
  • Errors
  • ENDPOINTS
  • Getting Started
  • Authenticated User
  • API Key
  • Manage Providers
  • Platform Library
  • Manage environments
  • Platform Store
  • Activity Feed
  • Authors
  • RESOURCES
  • Activity
  • Platform
  • PlatformVersion
  • PlatformWithVersion
  • Author
  • Provider
  • Environment
  • Job
  • Log
  • User
  • ApiKey
  • Artifakt API

    Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.

    Welcome to the Artifakt API documentation! It contains detailed information, technical advice, sample code and much more.

    Artifakt API respects OpenAPI 3.0 specifications. It allows us to describe resources and operations in a format that is easily discoverable and understandable by both machines and humans. We provide you with a way to test each endpoint using the Swagger Editor, see Schema section for more details.

    Artifakt is a B2B SaaS focusing on building, running and scaling any applications with any infrastructures in multi-cloud environment (Amazon Web Services, Microsoft Azure, Google Cloud Platform, etc.).

    Versioning

    Each time we make backwards-incompatible changes to our API, we release a new dated version. You can specify the API version you want to consume using the API_VERSION HTTP header. If not specified, you will use the latest version of the API by default. As a precaution, you may want to use API versioning to test a new API version prior to any production environment upgrade.

    Available versions:

    If you specify a version that does not exist, API will return a HTTP 400 Bad Request.

    Authentication

    Artifakt API is HTTPS-only. Requests initiated over HTTP will automatically be redirected to HTTPS.

    -H "Authorization: 3a54acdfb828eb5a:b31648bf8e5ea11e"
    

    It uses public/private key pair to authenticate users. You can find your API key in your account, on the API key page.

    When requesting the API, you must send the token (concatenation of public/private key) for each request in the Authorization header except for publicly available endpoints. If an endpoint is publicly available, the following message will be shown:

    This operation does not require authentication.

    Each API key is associated with a single user. This is a sensitive and personal information. Keep your API key secret and do not share it in publicly accessible areas (GitLab / Bitbucket / GitHub, client-side code, etc.).

    CORS

    The Artifakt API supports CORS (Cross Origin Resource Sharing) requests from any domain. This is a W3C specification that allows cross-domain communication from the browser.

    Back in the old days, Javascript AJAX requests were restricted according to the same-origin policy. Basically, you could not make requests to http://www.example.com if your website was http://www.mywonderfulwebsite.com!

    For more information on this topic, you can refer to the Wikipedia article on CORS.

    Performance & Security

    Artifakt API is full serverless in order to offer you an hyper-scalable platform with high SLA (99,99%).

    We use CloudFront edge location (CDN) to ensure fast responses no matter where you are located in the world.

    Schema

    Artifakt API is organized around REST and respects OpenAPI 3.0 specifications. Our API has predictable, resource-oriented URLs, and uses HTTP response codes to indicate API errors.

    You can download our API description file here and test it with Swagger Editor.

    Alternatively, you can also test it using Postman. Click on the button below to import a pre-made collection of examples.

    Run in Postman

    JSON is returned by all API responses including errors.

    Data formats

    Here is a description of data formats existing in Artifakt API.

    Examples

    alpha-dash: a-simple_string
    date: 1989-07-21
    date-time: 2018-01-05T09:10:32Z
    double: 199.99
    email: john@example.com
    url: https://www.artifakt.io
    uuid: b324e4fe-3daa-4a2e-867b-27eaa5b6f085
    
    Format Details
    alpha-dash [string] String containing alphanumeric characters, hyphens and underscores (only).
    date [string] Data using date format (full-date notation) notation as defined by RFC 3339, section 5.6. Used for dates of birth only.
    date-time [string] All dates returned by the Artifakt API are represented in full date-time notation as defined by RFC 3339, section 5.6 (except dates of birth).
    double [number] Floating-point numbers with double precision.
    email [string] A string type field which accepts email addresses.
    url [string] A string type field which restricts input to URLs, including the protocol of the URL.
    uuid [string] Artifakt API uses RFC4122 V4 UUIDs (generated from random numbers).

    Pagination

    {
        . . .
        "remainingCount": 10,
        "itemCount": 30
        . . .
    }
    

    Pagination allows you to list many resources using more than one request. When pagination is enabled, remainingCount and itemCount keys are returned as part of the response body. Pagination is enabled for all "list" API methods.

    Key Description
    remainingCount The number of items remaining. If the value is set to -1 then it means the API could not count all items stored in the database but there are still few of them to fetch.
    itemCount The number of items returned by the API.

    When pagination is enabled, you can use a query param named page to select the page you want to retrieve. For example, append ?page=3 to your request to fetch the third page. Similarly, you are also able to adjust the number of items returned by the API using the query param named items! For example, append ?items=50 to your request to tell the API you want 50 items per page.

    Query Param Default Value Max
    page 1 -
    items 30 1000

    By default, 30 objects are returned per page. Keep in mind that if the response contains 30 objects or fewer, remainingCount wil be set to 0 and itemCount to the number of items (<= 30).

    HTTP Status Codes

    Artifakt API returns standard HTTP status codes both for success or failure of an API request.

    HTTP status codes the API might return are listed below. In general, 20x HTTP codes correspond to success, 4xx codes are user-related failures (developers' side) and 5xx codes are API-related issues (Artifakt's side, very rare).

    Code Description
    200 OK - The GET / PUT request was successful and the response body contains the resource requested.
    201 Created - The POST request was successful, the resource was created and the response body contains that resource.
    204 No Content - The DELETE request was successful and the resource was deleted.
    400 Bad Request - The request is invalid or cannot be served.
    401 Unauthorised - You did not provide your API key or the key is not valid.
    403 Access denied - You do not have sufficient rights to access the resource.
    404 Not found - The resource item could not be fetched.
    429 Too many requests - You have exceeded established rate limits.
    500 Internal error - The server could not handle your request.

    Errors

    Default error example:

    {
        "message": "You do not have access to that resource."
    }
    

    Error example for POST & PUT requests:

    {
        "errors": {
            "code": [
                "The code field may only contain alpha-numeric characters, as well as dashes and underscores.",
                "The code must be at least 2 characters."
            ],
            "name": [
                "The name must be at least 2 characters."
            ]
        }
    }
    

    When an error occurs, our API will return an error message description. All errors are returned in the form of JSON. You may encounter 2 error types depending on the request you have sent.

    The first one is the general error schema. The body will only contain a message key to let you know what is the issue.

    The second one is related to resource creation / update. When sending data in the body (POST & PUT requests), Artifakt API will verify the fields you provided and return error message(s) for each field, when needed. In that case, the body will contain an array of errors named errors. This array will be indexed using field names where errors were found!

    Getting Started

    You should begin here.

    Hello World

    Code samples

    # You can also use wget
    curl -X GET https://api.artifakt.io/hello \
      -H 'Accept: application/json'
    
    
    
    <?php
    
    
    $headers = [
      'Accept' => 'application/json'
    ];
    
    
    $curl = curl_init();
    curl_setopt_array(
        $curl,
        [
            CURLOPT_URL => 'https://api.artifakt.io/hello',
            CURLOPT_HTTPHEADER => $headers,
            CURLOPT_RETURNTRANSFER => true
        ]
    );
    
    
    $result = curl_exec($curl);
    curl_close($curl);
    
    const fetch = require('node-fetch');
    
    
    const headers = {
      'Accept':'application/json'
    
    
    };
    
    
    fetch('https://api.artifakt.io/hello',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => 'application/json'
    }
    
    
    result = RestClient.get 'https://api.artifakt.io/hello',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': 'application/json'
    }
    
    
    r = requests.get('https://api.artifakt.io/hello', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("https://api.artifakt.io/hello");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /hello

    A simple endpoint to test whether you request the API correctly. It always returns the same "Hello World!" string.

    Example responses

    {
      "message": "Hello World!"
    }
    

    Responses

    Status Description Schema
    200 (OK) Response containing "Hello World!" string Inline

    Response Schema

    Status Code 200

    Name Type Required Description
    message string false Contains "Hello World!" string
    This operation does not require authentication.

    Authenticated User

    Operations about the authenticated user.

    Retrieve the authenticated user

    Code samples

    # You can also use wget
    curl -X GET https://api.artifakt.io/me \
      -H 'Accept: application/json'
    
    
    
    <?php
    
    
    $headers = [
      'Accept' => 'application/json'
    ];
    
    
    $curl = curl_init();
    curl_setopt_array(
        $curl,
        [
            CURLOPT_URL => 'https://api.artifakt.io/me',
            CURLOPT_HTTPHEADER => $headers,
            CURLOPT_RETURNTRANSFER => true
        ]
    );
    
    
    $result = curl_exec($curl);
    curl_close($curl);
    
    const fetch = require('node-fetch');
    
    
    const headers = {
      'Accept':'application/json'
    
    
    };
    
    
    fetch('https://api.artifakt.io/me',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => 'application/json'
    }
    
    
    result = RestClient.get 'https://api.artifakt.io/me',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': 'application/json'
    }
    
    
    r = requests.get('https://api.artifakt.io/me', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("https://api.artifakt.io/me");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /me

    Returns the current authenticated user (you).

    Example responses

    {
      "id": "b77b3f39-39fb-411b-a597-ebbf2ceeb97a",
      "resource": "user",
      "username": "Batman",
      "email": "bruce@realwaynecorp.com",
      "firstname": "Bruce",
      "lastname": "Wayne",
      "image": "https://images.artifakt.io/users/batman.png",
      "city": "Gotham City",
      "country": "US",
      "job": "Chairman",
      "company": "WayneCorp",
      "description": "Working hard everyday to make Gotham City great again!",
      "socials": {
        "twitter": "https://twitter.com/therealbrucewayne",
        "linkedin": "https://www.linkedin.com/therealbrucewayne",
        "github": "https://github.com/therealbrucewayne"
      },
      "date_of_birth": "2018-10-04",
      "created_at": "2018-10-04T16:02:40Z",
      "updated_at": "2018-10-04T16:02:40Z"
    }
    

    Responses

    Status Description Schema
    200 (OK) The authenticated User resource. User

    Update the authenticated user

    Code samples

    # You can also use wget
    curl -X PUT https://api.artifakt.io/me \
      -H 'Content-Type: application/json' \
      -H 'Accept: application/json'
    
    
    
    <?php
    
    
     $inputBody = '{
      "username": "Batman",
      "email": "bruce@realwaynecorp.com",
      "firstname": "Bruce",
      "lastname": "Wayne",
      "image": "https://images.artifakt.io/users/batman.png",
      "city": "Gotham City",
      "country": "US",
      "job": "Chairman",
      "company": "WayneCorp",
      "description": "Working hard everyday to make Gotham City great again!",
      "socials": {
        "twitter": "https://twitter.com/therealbrucewayne",
        "linkedin": "https://www.linkedin.com/therealbrucewayne",
        "github": "https://github.com/therealbrucewayne"
      },
      "date_of_birth": "2018-10-04"
    }';
    
    
    $headers = [
      'Content-Type' => 'application/json',
      'Accept' => 'application/json'
    ];
    
    
    $curl = curl_init();
    curl_setopt_array(
        $curl,
        [
            CURLOPT_URL => 'https://api.artifakt.io/me',
            CURLOPT_HTTPHEADER => $headers,
            CURLOPT_CUSTOMREQUEST => 'PUT',
            CURLOPT_POSTFIELDS => $inputBody,
            CURLOPT_RETURNTRANSFER => true
        ]
    );
    
    
    $result = curl_exec($curl);
    curl_close($curl);
    
    const fetch = require('node-fetch');
    const inputBody = '{
      "username": "Batman",
      "email": "bruce@realwaynecorp.com",
      "firstname": "Bruce",
      "lastname": "Wayne",
      "image": "https://images.artifakt.io/users/batman.png",
      "city": "Gotham City",
      "country": "US",
      "job": "Chairman",
      "company": "WayneCorp",
      "description": "Working hard everyday to make Gotham City great again!",
      "socials": {
        "twitter": "https://twitter.com/therealbrucewayne",
        "linkedin": "https://www.linkedin.com/therealbrucewayne",
        "github": "https://github.com/therealbrucewayne"
      },
      "date_of_birth": "2018-10-04"
    }';
    const headers = {
      'Content-Type':'application/json',
      'Accept':'application/json'
    
    
    };
    
    
    fetch('https://api.artifakt.io/me',
    {
      method: 'PUT',
      body: inputBody,
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Content-Type' => 'application/json',
      'Accept' => 'application/json'
    }
    
    
    result = RestClient.put 'https://api.artifakt.io/me',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Content-Type': 'application/json',
      'Accept': 'application/json'
    }
    
    
    r = requests.put('https://api.artifakt.io/me', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("https://api.artifakt.io/me");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("PUT");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    PUT /me

    Update the current authenticated user (you).

    Body parameter

    {
      "username": "Batman",
      "email": "bruce@realwaynecorp.com",
      "firstname": "Bruce",
      "lastname": "Wayne",
      "image": "https://images.artifakt.io/users/batman.png",
      "city": "Gotham City",
      "country": "US",
      "job": "Chairman",
      "company": "WayneCorp",
      "description": "Working hard everyday to make Gotham City great again!",
      "socials": {
        "twitter": "https://twitter.com/therealbrucewayne",
        "linkedin": "https://www.linkedin.com/therealbrucewayne",
        "github": "https://github.com/therealbrucewayne"
      },
      "date_of_birth": "2018-10-04"
    }
    

    Parameters

    Parameter In Type Required Description
    body body User true The User resource without read-only fields.

    Example responses

    {
      "id": "b77b3f39-39fb-411b-a597-ebbf2ceeb97a",
      "resource": "user",
      "username": "Batman",
      "email": "bruce@realwaynecorp.com",
      "firstname": "Bruce",
      "lastname": "Wayne",
      "image": "https://images.artifakt.io/users/batman.png",
      "city": "Gotham City",
      "country": "US",
      "job": "Chairman",
      "company": "WayneCorp",
      "description": "Working hard everyday to make Gotham City great again!",
      "socials": {
        "twitter": "https://twitter.com/therealbrucewayne",
        "linkedin": "https://www.linkedin.com/therealbrucewayne",
        "github": "https://github.com/therealbrucewayne"
      },
      "date_of_birth": "2018-10-04",
      "created_at": "2018-10-04T16:02:40Z",
      "updated_at": "2018-10-04T16:02:40Z"
    }
    

    Responses

    Status Description Schema
    200 (OK) The authenticated User resource updated. User

    API Key

    Retrieve user API Key

    Code samples

    # You can also use wget
    curl -X GET https://api.artifakt.io/apikeys \
      -H 'Accept: application/json'
    
    
    
    <?php
    
    
    $headers = [
      'Accept' => 'application/json'
    ];
    
    
    $curl = curl_init();
    curl_setopt_array(
        $curl,
        [
            CURLOPT_URL => 'https://api.artifakt.io/apikeys',
            CURLOPT_HTTPHEADER => $headers,
            CURLOPT_RETURNTRANSFER => true
        ]
    );
    
    
    $result = curl_exec($curl);
    curl_close($curl);
    
    const fetch = require('node-fetch');
    
    
    const headers = {
      'Accept':'application/json'
    
    
    };
    
    
    fetch('https://api.artifakt.io/apikeys',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => 'application/json'
    }
    
    
    result = RestClient.get 'https://api.artifakt.io/apikeys',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': 'application/json'
    }
    
    
    r = requests.get('https://api.artifakt.io/apikeys', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("https://api.artifakt.io/apikeys");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /apikeys

    Returns the user's API Key

    Example responses

    {
      "id": "b77b3f39-39fb-411b-a597-ebbf2ceeb97a",
      "resource": "apikey",
      "public_key": "3a54acdfb828eb5a",
      "private_key": "b31648bf8e5ea11e",
      "created_at": "2018-10-04T16:02:40Z",
      "updated_at": "2018-10-04T16:02:40Z",
      "created_by": "Superman",
      "updated_by": "Superman"
    }
    

    Responses

    Status Description Schema
    200 (OK) The API Key resource. ApiKey

    Create new API Key for the user

    Code samples

    # You can also use wget
    curl -X POST https://api.artifakt.io/apikeys \
      -H 'Accept: application/json'
    
    
    
    <?php
    
    
    $headers = [
      'Accept' => 'application/json'
    ];
    
    
    $curl = curl_init();
    curl_setopt_array(
        $curl,
        [
            CURLOPT_URL => 'https://api.artifakt.io/apikeys',
            CURLOPT_HTTPHEADER => $headers,
            CURLOPT_POST => true,
    
    
            CURLOPT_RETURNTRANSFER => true
        ]
    );
    
    
    $result = curl_exec($curl);
    curl_close($curl);
    
    const fetch = require('node-fetch');
    
    
    const headers = {
      'Accept':'application/json'
    
    
    };
    
    
    fetch('https://api.artifakt.io/apikeys',
    {
      method: 'POST',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => 'application/json'
    }
    
    
    result = RestClient.post 'https://api.artifakt.io/apikeys',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': 'application/json'
    }
    
    
    r = requests.post('https://api.artifakt.io/apikeys', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("https://api.artifakt.io/apikeys");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("POST");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    POST /apikeys

    Create new API Key for the user

    Example responses

    {
      "id": "b77b3f39-39fb-411b-a597-ebbf2ceeb97a",
      "resource": "apikey",
      "public_key": "3a54acdfb828eb5a",
      "private_key": "b31648bf8e5ea11e",
      "created_at": "2018-10-04T16:02:40Z",
      "updated_at": "2018-10-04T16:02:40Z",
      "created_by": "Superman",
      "updated_by": "Superman"
    }
    

    Responses

    Status Description Schema
    201 (Created) The newly created API Key resource ApiKey

    Delete the API Key for the user

    Code samples

    # You can also use wget
    curl -X DELETE https://api.artifakt.io/apikeys
    
    
    
    <?php
    
    
    $curl = curl_init();
    curl_setopt_array(
        $curl,
        [
            CURLOPT_URL => 'https://api.artifakt.io/apikeys',
    
    
            CURLOPT_CUSTOMREQUEST => "DELETE",
            CURLOPT_RETURNTRANSFER => true
        ]
    );
    
    
    $result = curl_exec($curl);
    curl_close($curl);
    
    const fetch = require('node-fetch');
    
    
    fetch('https://api.artifakt.io/apikeys',
    {
      method: 'DELETE'
    
    
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    result = RestClient.delete 'https://api.artifakt.io/apikeys',
      params: {
      }
    
    
    p JSON.parse(result)
    
    
    
    import requests
    
    
    r = requests.delete('https://api.artifakt.io/apikeys', params={
    
    
    )
    
    
    print r.json()
    
    
    
    URL obj = new URL("https://api.artifakt.io/apikeys");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("DELETE");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    DELETE /apikeys

    Delete the user API Key

    Responses

    Status Description Schema
    204 (No Content) The resource was deleted successfully. None

    Manage Providers

    List providers

    Code samples

    # You can also use wget
    curl -X GET https://api.artifakt.io/providers \
      -H 'Accept: application/json'
    
    
    
    <?php
    
    
    $headers = [
      'Accept' => 'application/json'
    ];
    
    
    $curl = curl_init();
    curl_setopt_array(
        $curl,
        [
            CURLOPT_URL => 'https://api.artifakt.io/providers',
            CURLOPT_HTTPHEADER => $headers,
            CURLOPT_RETURNTRANSFER => true
        ]
    );
    
    
    $result = curl_exec($curl);
    curl_close($curl);
    
    const fetch = require('node-fetch');
    
    
    const headers = {
      'Accept':'application/json'
    
    
    };
    
    
    fetch('https://api.artifakt.io/providers',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => 'application/json'
    }
    
    
    result = RestClient.get 'https://api.artifakt.io/providers',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': 'application/json'
    }
    
    
    r = requests.get('https://api.artifakt.io/providers', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("https://api.artifakt.io/providers");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /providers

    Returns a list of your providers.

    Example responses

    [
      {
        "id": "b9c9e3d9-21a4-4b91-853a-6e52a52b65fa",
        "resource": "provider",
        "title": "dev",
        "type": "aws",
        "managed_account": true,
        "linked_environments": [
          {
            "id": "e4073be7-c4c8-4b6f-8cdc-c403926082b9",
            "resource": "environment",
            "name": "dev",
            "inputs": [
              {
                "name": "db_engine",
                "value": "mysql"
              }
            ],
            "outputs": [
              {
                "name": "front_url",
                "value": "https://mysite.com"
              }
            ],
            "cloud_provider": "aws",
            "region": "eu-west-1",
            "status": "building",
            "cost_estimation": {
              "monthly_price": 234.52,
              "details": "5K GET requests per month - Less than 10 GB of storage - Deployed in Ireland."
            },
            "provider_id": "b7f923d7-e2d7-4048-9984-e004f41050f6",
            "platform": {
              "id": "ad0d77e5-c414-444b-abf9-28acd68e0872"
            },
            "created_at": "2018-10-04T16:02:40Z",
            "updated_at": "2018-10-04T16:02:40Z",
            "created_by": "Spiderman",
            "updated_by": "Spiderman"
          }
        ],
        "linked_environments_count": 1,
        "created_at": "2018-10-04T16:02:40Z",
        "updated_at": "2018-10-04T16:02:40Z",
        "credentials_updated_at": "2018-10-04T16:02:40Z",
        "created_by": "Batman",
        "updated_by": "Batman"
      }
    ]
    

    Responses

    Status Description Schema
    200 (OK) An array of Provider resources. Inline

    Response Schema

    Status Code 200

    Name Type Required Description
    anonymous [Provider] false No description
    id string(uuid) false Unique identifier for the resource.
    resource string false String representing the resource’s type. Resources of the same type share the same value.
    title string(alpha-dash) true Name of your environment. Must be between 3 and 64 characters.
    type string false Provider used for the provider.
    credentials [object] true Cloud account credentials.
    name string false The param name.
    value string false The param value.
    managed_account boolean false Whether or not the provider was created through Artifakt.
    linked_environments [Environment] false Environments belonging to the given provider.
    id string(uuid) false Unique identifier for the ressource.
    resource string false String representing the ressource’s type. Ressources of the same type share the same value.
    name string(alpha-dash) true Name of your environment. Must be between 3 and 64 characters.
    inputs [object] false Input values (params) needed for the deployment.
    name string false The name of the input.
    value string false The value of the input.
    outputs [object] false Output values (params) needed for the deployment.
    name string false The name of the output.
    value string false The value of the output.
    cloud_provider string false Cloud provider chosed for the deployment.
    region string true The region where the application will be deployed.
    status string false The current status of the environment.
    cost_estimation object false Cost estimation data for the platform version.
    monthly_price number(double) false Estimated cloud price per month in dollars.
    details string false Describes how the monthly price has been calculated.
    provider_id string true The Cloud account unique identifier used for the deployment.
    platform_version_id string true Unique identifier of the PlatformVersion (write only).
    platform object false [object Object]
    id string(uuid) false Unique identifier for the resource.
    created_at string(date-time) false Time at which the ressource was created.
    updated_at string(date-time) false Time at which the resource was updated.
    created_by string(alpha-dash) false User who has created the resource.
    updated_by string(alpha-dash) false User who last modified the resource.
    linked_environments_count integer false Number of linked environments
    created_at string(date-time) false Time at which the ressource was created.
    updated_at string(date-time) false Time at which the resource was updated.
    credentials_updated_at string(date-time) false Time at which the credentials were updated for the last time.
    created_by string(alpha-dash) false User who has created the resource.
    updated_by string(alpha-dash) false User who last modified the resource.

    Add a provider

    Code samples

    # You can also use wget
    curl -X POST https://api.artifakt.io/providers \
      -H 'Content-Type: application/json' \
      -H 'Accept: application/json'
    
    
    
    <?php
    
    
     $inputBody = '{
      "title": "dev",
      "type": "aws",
      "credentials": [
        {
          "name": "access_key",
          "value": "RP0KH4NXMZO29XNB1W5X"
        }
      ]
    }';
    
    
    $headers = [
      'Content-Type' => 'application/json',
      'Accept' => 'application/json'
    ];
    
    
    $curl = curl_init();
    curl_setopt_array(
        $curl,
        [
            CURLOPT_URL => 'https://api.artifakt.io/providers',
            CURLOPT_HTTPHEADER => $headers,
            CURLOPT_POST => true,
            CURLOPT_POSTFIELDS => $inputBody,
            CURLOPT_RETURNTRANSFER => true
        ]
    );
    
    
    $result = curl_exec($curl);
    curl_close($curl);
    
    const fetch = require('node-fetch');
    const inputBody = '{
      "title": "dev",
      "type": "aws",
      "credentials": [
        {
          "name": "access_key",
          "value": "RP0KH4NXMZO29XNB1W5X"
        }
      ]
    }';
    const headers = {
      'Content-Type':'application/json',
      'Accept':'application/json'
    
    
    };
    
    
    fetch('https://api.artifakt.io/providers',
    {
      method: 'POST',
      body: inputBody,
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Content-Type' => 'application/json',
      'Accept' => 'application/json'
    }
    
    
    result = RestClient.post 'https://api.artifakt.io/providers',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Content-Type': 'application/json',
      'Accept': 'application/json'
    }
    
    
    r = requests.post('https://api.artifakt.io/providers', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("https://api.artifakt.io/providers");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("POST");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    POST /providers

    Adds a new provider.

    Body parameter

    {
      "title": "dev",
      "type": "aws",
      "credentials": [
        {
          "name": "access_key",
          "value": "RP0KH4NXMZO29XNB1W5X"
        }
      ]
    }
    

    Parameters

    Parameter In Type Required Description
    body body Provider true No description

    Example responses

    {
      "id": "b9c9e3d9-21a4-4b91-853a-6e52a52b65fa",
      "resource": "provider",
      "title": "dev",
      "type": "aws",
      "managed_account": true,
      "linked_environments": [
        {
          "id": "e4073be7-c4c8-4b6f-8cdc-c403926082b9",
          "resource": "environment",
          "name": "dev",
          "inputs": [
            {
              "name": "db_engine",
              "value": "mysql"
            }
          ],
          "outputs": [
            {
              "name": "front_url",
              "value": "https://mysite.com"
            }
          ],
          "cloud_provider": "aws",
          "region": "eu-west-1",
          "status": "building",
          "cost_estimation": {
            "monthly_price": 234.52,
            "details": "5K GET requests per month - Less than 10 GB of storage - Deployed in Ireland."
          },
          "provider_id": "b7f923d7-e2d7-4048-9984-e004f41050f6",
          "platform": {
            "id": "ad0d77e5-c414-444b-abf9-28acd68e0872"
          },
          "created_at": "2018-10-04T16:02:40Z",
          "updated_at": "2018-10-04T16:02:40Z",
          "created_by": "Spiderman",
          "updated_by": "Spiderman"
        }
      ],
      "linked_environments_count": 1,
      "created_at": "2018-10-04T16:02:40Z",
      "updated_at": "2018-10-04T16:02:40Z",
      "credentials_updated_at": "2018-10-04T16:02:40Z",
      "created_by": "Batman",
      "updated_by": "Batman"
    }
    

    Responses

    Status Description Schema
    201 (Created) The newly added Provider resource. Provider

    Retrieve a provider

    Code samples

    # You can also use wget
    curl -X GET https://api.artifakt.io/providers/{provider_id} \
      -H 'Accept: application/json'
    
    
    
    <?php
    
    
    $headers = [
      'Accept' => 'application/json'
    ];
    
    
    $curl = curl_init();
    curl_setopt_array(
        $curl,
        [
            CURLOPT_URL => 'https://api.artifakt.io/providers/{provider_id}',
            CURLOPT_HTTPHEADER => $headers,
            CURLOPT_RETURNTRANSFER => true
        ]
    );
    
    
    $result = curl_exec($curl);
    curl_close($curl);
    
    const fetch = require('node-fetch');
    
    
    const headers = {
      'Accept':'application/json'
    
    
    };
    
    
    fetch('https://api.artifakt.io/providers/{provider_id}',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => 'application/json'
    }
    
    
    result = RestClient.get 'https://api.artifakt.io/providers/{provider_id}',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': 'application/json'
    }
    
    
    r = requests.get('https://api.artifakt.io/providers/{provider_id}', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("https://api.artifakt.io/providers/{provider_id}");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /providers/{provider_id}

    Returns the provider resource with the given id.

    Example responses

    {
      "id": "b9c9e3d9-21a4-4b91-853a-6e52a52b65fa",
      "resource": "provider",
      "title": "dev",
      "type": "aws",
      "managed_account": true,
      "linked_environments": [
        {
          "id": "e4073be7-c4c8-4b6f-8cdc-c403926082b9",
          "resource": "environment",
          "name": "dev",
          "inputs": [
            {
              "name": "db_engine",
              "value": "mysql"
            }
          ],
          "outputs": [
            {
              "name": "front_url",
              "value": "https://mysite.com"
            }
          ],
          "cloud_provider": "aws",
          "region": "eu-west-1",
          "status": "building",
          "cost_estimation": {
            "monthly_price": 234.52,
            "details": "5K GET requests per month - Less than 10 GB of storage - Deployed in Ireland."
          },
          "provider_id": "b7f923d7-e2d7-4048-9984-e004f41050f6",
          "platform": {
            "id": "ad0d77e5-c414-444b-abf9-28acd68e0872"
          },
          "created_at": "2018-10-04T16:02:40Z",
          "updated_at": "2018-10-04T16:02:40Z",
          "created_by": "Spiderman",
          "updated_by": "Spiderman"
        }
      ],
      "linked_environments_count": 1,
      "created_at": "2018-10-04T16:02:40Z",
      "updated_at": "2018-10-04T16:02:40Z",
      "credentials_updated_at": "2018-10-04T16:02:40Z",
      "created_by": "Batman",
      "updated_by": "Batman"
    }
    

    Responses

    Status Description Schema
    200 (OK) The Provider resource. Provider

    Update a provider

    Code samples

    # You can also use wget
    curl -X PUT https://api.artifakt.io/providers/{provider_id} \
      -H 'Content-Type: application/json' \
      -H 'Accept: application/json'
    
    
    
    <?php
    
    
     $inputBody = '{
      "title": "dev",
      "credentials": [
        {
          "name": "access_key",
          "value": "RP0KH4NXMZO29XNB1W5X"
        }
      ]
    }';
    
    
    $headers = [
      'Content-Type' => 'application/json',
      'Accept' => 'application/json'
    ];
    
    
    $curl = curl_init();
    curl_setopt_array(
        $curl,
        [
            CURLOPT_URL => 'https://api.artifakt.io/providers/{provider_id}',
            CURLOPT_HTTPHEADER => $headers,
            CURLOPT_CUSTOMREQUEST => 'PUT',
            CURLOPT_POSTFIELDS => $inputBody,
            CURLOPT_RETURNTRANSFER => true
        ]
    );
    
    
    $result = curl_exec($curl);
    curl_close($curl);
    
    const fetch = require('node-fetch');
    const inputBody = '{
      "title": "dev",
      "credentials": [
        {
          "name": "access_key",
          "value": "RP0KH4NXMZO29XNB1W5X"
        }
      ]
    }';
    const headers = {
      'Content-Type':'application/json',
      'Accept':'application/json'
    
    
    };
    
    
    fetch('https://api.artifakt.io/providers/{provider_id}',
    {
      method: 'PUT',
      body: inputBody,
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Content-Type' => 'application/json',
      'Accept' => 'application/json'
    }
    
    
    result = RestClient.put 'https://api.artifakt.io/providers/{provider_id}',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Content-Type': 'application/json',
      'Accept': 'application/json'
    }
    
    
    r = requests.put('https://api.artifakt.io/providers/{provider_id}', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("https://api.artifakt.io/providers/{provider_id}");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("PUT");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    PUT /providers/{provider_id}

    Updates a provider.

    Body parameter

    {
      "title": "dev",
      "credentials": [
        {
          "name": "access_key",
          "value": "RP0KH4NXMZO29XNB1W5X"
        }
      ]
    }
    

    Parameters

    Parameter In Type Required Description
    body body object true No description
    title body string(alpha-dash) false Name of your environment. Must be between 3 and 64 characters.
    credentials body [object] false Cloud account credentials.
    name body string false The param name.
    value body string false The param value.

    Example responses

    {
      "id": "b9c9e3d9-21a4-4b91-853a-6e52a52b65fa",
      "resource": "provider",
      "title": "dev",
      "type": "aws",
      "managed_account": true,
      "linked_environments": [
        {
          "id": "e4073be7-c4c8-4b6f-8cdc-c403926082b9",
          "resource": "environment",
          "name": "dev",
          "inputs": [
            {
              "name": "db_engine",
              "value": "mysql"
            }
          ],
          "outputs": [
            {
              "name": "front_url",
              "value": "https://mysite.com"
            }
          ],
          "cloud_provider": "aws",
          "region": "eu-west-1",
          "status": "building",
          "cost_estimation": {
            "monthly_price": 234.52,
            "details": "5K GET requests per month - Less than 10 GB of storage - Deployed in Ireland."
          },
          "provider_id": "b7f923d7-e2d7-4048-9984-e004f41050f6",
          "platform": {
            "id": "ad0d77e5-c414-444b-abf9-28acd68e0872"
          },
          "created_at": "2018-10-04T16:02:40Z",
          "updated_at": "2018-10-04T16:02:40Z",
          "created_by": "Spiderman",
          "updated_by": "Spiderman"
        }
      ],
      "linked_environments_count": 1,
      "created_at": "2018-10-04T16:02:40Z",
      "updated_at": "2018-10-04T16:02:40Z",
      "credentials_updated_at": "2018-10-04T16:02:40Z",
      "created_by": "Batman",
      "updated_by": "Batman"
    }
    

    Responses

    Status Description Schema
    200 (OK) The Provider resource updated. Provider

    Delete a provider

    Code samples

    # You can also use wget
    curl -X DELETE https://api.artifakt.io/providers/{provider_id}
    
    
    
    <?php
    
    
    $curl = curl_init();
    curl_setopt_array(
        $curl,
        [
            CURLOPT_URL => 'https://api.artifakt.io/providers/{provider_id}',
    
    
            CURLOPT_CUSTOMREQUEST => "DELETE",
            CURLOPT_RETURNTRANSFER => true
        ]
    );
    
    
    $result = curl_exec($curl);
    curl_close($curl);
    
    const fetch = require('node-fetch');
    
    
    fetch('https://api.artifakt.io/providers/{provider_id}',
    {
      method: 'DELETE'
    
    
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    result = RestClient.delete 'https://api.artifakt.io/providers/{provider_id}',
      params: {
      }
    
    
    p JSON.parse(result)
    
    
    
    import requests
    
    
    r = requests.delete('https://api.artifakt.io/providers/{provider_id}', params={
    
    
    )
    
    
    print r.json()
    
    
    
    URL obj = new URL("https://api.artifakt.io/providers/{provider_id}");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("DELETE");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    DELETE /providers/{provider_id}

    Permanently deletes a provider.

    Responses

    Status Description Schema
    204 (No Content) The resource was deleted successfully. None

    List linked environments

    Code samples

    # You can also use wget
    curl -X GET https://api.artifakt.io/providers/{provider_id}/environments \
      -H 'Accept: application/json'
    
    
    
    <?php
    
    
    $headers = [
      'Accept' => 'application/json'
    ];
    
    
    $curl = curl_init();
    curl_setopt_array(
        $curl,
        [
            CURLOPT_URL => 'https://api.artifakt.io/providers/{provider_id}/environments',
            CURLOPT_HTTPHEADER => $headers,
            CURLOPT_RETURNTRANSFER => true
        ]
    );
    
    
    $result = curl_exec($curl);
    curl_close($curl);
    
    const fetch = require('node-fetch');
    
    
    const headers = {
      'Accept':'application/json'
    
    
    };
    
    
    fetch('https://api.artifakt.io/providers/{provider_id}/environments',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => 'application/json'
    }
    
    
    result = RestClient.get 'https://api.artifakt.io/providers/{provider_id}/environments',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': 'application/json'
    }
    
    
    r = requests.get('https://api.artifakt.io/providers/{provider_id}/environments', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("https://api.artifakt.io/providers/{provider_id}/environments");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /providers/{provider_id}/environments

    Returns a list of environments deployed using a given provider.

    Example responses

    [
      {
        "id": "b9c9e3d9-21a4-4b91-853a-6e52a52b65fa",
        "resource": "provider",
        "title": "dev",
        "type": "aws",
        "managed_account": true,
        "linked_environments": [
          {
            "id": "e4073be7-c4c8-4b6f-8cdc-c403926082b9",
            "resource": "environment",
            "name": "dev",
            "inputs": [
              {
                "name": "db_engine",
                "value": "mysql"
              }
            ],
            "outputs": [
              {
                "name": "front_url",
                "value": "https://mysite.com"
              }
            ],
            "cloud_provider": "aws",
            "region": "eu-west-1",
            "status": "building",
            "cost_estimation": {
              "monthly_price": 234.52,
              "details": "5K GET requests per month - Less than 10 GB of storage - Deployed in Ireland."
            },
            "provider_id": "b7f923d7-e2d7-4048-9984-e004f41050f6",
            "platform": {
              "id": "ad0d77e5-c414-444b-abf9-28acd68e0872"
            },
            "created_at": "2018-10-04T16:02:40Z",
            "updated_at": "2018-10-04T16:02:40Z",
            "created_by": "Spiderman",
            "updated_by": "Spiderman"
          }
        ],
        "linked_environments_count": 1,
        "created_at": "2018-10-04T16:02:40Z",
        "updated_at": "2018-10-04T16:02:40Z",
        "credentials_updated_at": "2018-10-04T16:02:40Z",
        "created_by": "Batman",
        "updated_by": "Batman"
      }
    ]
    

    Responses

    Status Description Schema
    200 (OK) An array of Environment resources. Inline

    Response Schema

    Status Code 200

    Name Type Required Description
    anonymous [Provider] false No description
    id string(uuid) false Unique identifier for the resource.
    resource string false String representing the resource’s type. Resources of the same type share the same value.
    title string(alpha-dash) true Name of your environment. Must be between 3 and 64 characters.
    type string false Provider used for the provider.
    credentials [object] true Cloud account credentials.
    name string false The param name.
    value string false The param value.
    managed_account boolean false Whether or not the provider was created through Artifakt.
    linked_environments [Environment] false Environments belonging to the given provider.
    id string(uuid) false Unique identifier for the ressource.
    resource string false String representing the ressource’s type. Ressources of the same type share the same value.
    name string(alpha-dash) true Name of your environment. Must be between 3 and 64 characters.
    inputs [object] false Input values (params) needed for the deployment.
    name string false The name of the input.
    value string false The value of the input.
    outputs [object] false Output values (params) needed for the deployment.
    name string false The name of the output.
    value string false The value of the output.
    cloud_provider string false Cloud provider chosed for the deployment.
    region string true The region where the application will be deployed.
    status string false The current status of the environment.
    cost_estimation object false Cost estimation data for the platform version.
    monthly_price number(double) false Estimated cloud price per month in dollars.
    details string false Describes how the monthly price has been calculated.
    provider_id string true The Cloud account unique identifier used for the deployment.
    platform_version_id string true Unique identifier of the PlatformVersion (write only).
    platform object false [object Object]
    id string(uuid) false Unique identifier for the resource.
    created_at string(date-time) false Time at which the ressource was created.
    updated_at string(date-time) false Time at which the resource was updated.
    created_by string(alpha-dash) false User who has created the resource.
    updated_by string(alpha-dash) false User who last modified the resource.
    linked_environments_count integer false Number of linked environments
    created_at string(date-time) false Time at which the ressource was created.
    updated_at string(date-time) false Time at which the resource was updated.
    credentials_updated_at string(date-time) false Time at which the credentials were updated for the last time.
    created_by string(alpha-dash) false User who has created the resource.
    updated_by string(alpha-dash) false User who last modified the resource.

    Platform Library

    Operations regarding your personal library of platforms.

    List platforms

    Code samples

    # You can also use wget
    curl -X GET https://api.artifakt.io/platforms \
      -H 'Accept: application/json'
    
    
    
    <?php
    
    
    $headers = [
      'Accept' => 'application/json'
    ];
    
    
    $curl = curl_init();
    curl_setopt_array(
        $curl,
        [
            CURLOPT_URL => 'https://api.artifakt.io/platforms',
            CURLOPT_HTTPHEADER => $headers,
            CURLOPT_RETURNTRANSFER => true
        ]
    );
    
    
    $result = curl_exec($curl);
    curl_close($curl);
    
    const fetch = require('node-fetch');
    
    
    const headers = {
      'Accept':'application/json'
    
    
    };
    
    
    fetch('https://api.artifakt.io/platforms',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => 'application/json'
    }
    
    
    result = RestClient.get 'https://api.artifakt.io/platforms',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': 'application/json'
    }
    
    
    r = requests.get('https://api.artifakt.io/platforms', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("https://api.artifakt.io/platforms");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /platforms

    Returns a list of all platforms from your personal library.

    Example responses

    [
      {
        "id": "ad0d77e5-c414-444b-abf9-28acd68e0872",
        "resource": "platform",
        "name": "Magento on steroids",
        "slug": "magento_steroids",
        "workspace": "Superman",
        "path": "jack_bauer/magento_steroids",
        "description": "Magento fully optimized and ready for heavy load",
        "cloud_provider": "aws",
        "price": 0,
        "image": "https://images.artifakt.io/platforms/jack_bauer_magento_steroids.png",
        "category": "e_commerce",
        "tags": [
          "Optimized",
          "Secure"
        ],
        "deployment_count": 3987,
        "running_count": 421,
        "on_store": true,
        "created_at": "2018-10-04T16:02:40Z",
        "updated_at": "2018-10-04T16:02:40Z",
        "created_by": "Superman",
        "updated_by": "Superman"
      }
    ]
    

    Responses

    Status Description Schema
    200 (OK) An array of Platform resources. Inline

    Response Schema

    Status Code 200

    Name Type Required Description
    anonymous [Platform] false No description
    id string(uuid) false Unique identifier for the resource.
    resource string false String representing the resource’s type. Resources of the same type share the same value.
    name string true Name of your platform. Must be between 3 and 50 characters.
    slug string(alpha-dash) true Slug of your platform. Must be between 3 and 50 characters.
    workspace string(alpha-dash) true Workspace of your platform.
    path string false Combination of the workspace and the platform's name. This value is unique across the workspace.
    description string true Short description of your platform. Displayed in the platform list. 2000 characters maximum.
    cloud_provider string true Cloud provider for your platform.
    price number(double) false The platform's price.
    image string(url) true Image URL of your platform. Usually, the application's logo.
    category string true The category the platform belongs to.
    tags [string] false Tags added to your platform. Used for search and filters.
    deployment_count integer false The number of times this platform has been deployed.
    running_count integer false The number of running instances of this platform.
    on_store boolean false Set to "true" to publish the platform to the Artifakt Store.
    created_at string(date-time) false Time at which the resource has been created.
    updated_at string(date-time) false Time at which the resource has been updated.
    created_by string(alpha-dash) false User who has created the resource.
    updated_by string(alpha-dash) false User who last modified the resource.

    Create a platform

    Code samples

    # You can also use wget
    curl -X POST https://api.artifakt.io/platforms \
      -H 'Content-Type: application/json' \
      -H 'Accept: application/json'
    
    
    
    <?php
    
    
     $inputBody = '{
      "name": "Magento on steroids",
      "slug": "magento_steroids",
      "workspace": "Superman",
      "description": "Magento fully optimized and ready for heavy load",
      "cloud_provider": "aws",
      "price": 0,
      "image": "https://images.artifakt.io/platforms/jack_bauer_magento_steroids.png",
      "category": "e_commerce",
      "on_store": true
    }';
    
    
    $headers = [
      'Content-Type' => 'application/json',
      'Accept' => 'application/json'
    ];
    
    
    $curl = curl_init();
    curl_setopt_array(
        $curl,
        [
            CURLOPT_URL => 'https://api.artifakt.io/platforms',
            CURLOPT_HTTPHEADER => $headers,
            CURLOPT_POST => true,
            CURLOPT_POSTFIELDS => $inputBody,
            CURLOPT_RETURNTRANSFER => true
        ]
    );
    
    
    $result = curl_exec($curl);
    curl_close($curl);
    
    const fetch = require('node-fetch');
    const inputBody = '{
      "name": "Magento on steroids",
      "slug": "magento_steroids",
      "workspace": "Superman",
      "description": "Magento fully optimized and ready for heavy load",
      "cloud_provider": "aws",
      "price": 0,
      "image": "https://images.artifakt.io/platforms/jack_bauer_magento_steroids.png",
      "category": "e_commerce",
      "on_store": true
    }';
    const headers = {
      'Content-Type':'application/json',
      'Accept':'application/json'
    
    
    };
    
    
    fetch('https://api.artifakt.io/platforms',
    {
      method: 'POST',
      body: inputBody,
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Content-Type' => 'application/json',
      'Accept' => 'application/json'
    }
    
    
    result = RestClient.post 'https://api.artifakt.io/platforms',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Content-Type': 'application/json',
      'Accept': 'application/json'
    }
    
    
    r = requests.post('https://api.artifakt.io/platforms', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("https://api.artifakt.io/platforms");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("POST");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    POST /platforms

    Creates a new platform and adds it to your personal library.

    Body parameter

    {
      "name": "Magento on steroids",
      "slug": "magento_steroids",
      "workspace": "Superman",
      "description": "Magento fully optimized and ready for heavy load",
      "cloud_provider": "aws",
      "price": 0,
      "image": "https://images.artifakt.io/platforms/jack_bauer_magento_steroids.png",
      "category": "e_commerce",
      "on_store": true
    }
    

    Parameters

    Parameter In Type Required Description
    body body Platform true No description

    Example responses

    {
      "id": "ad0d77e5-c414-444b-abf9-28acd68e0872",
      "resource": "platform",
      "name": "Magento on steroids",
      "slug": "magento_steroids",
      "workspace": "Superman",
      "path": "jack_bauer/magento_steroids",
      "description": "Magento fully optimized and ready for heavy load",
      "cloud_provider": "aws",
      "price": 0,
      "image": "https://images.artifakt.io/platforms/jack_bauer_magento_steroids.png",
      "category": "e_commerce",
      "tags": [
        "Optimized",
        "Secure"
      ],
      "deployment_count": 3987,
      "running_count": 421,
      "on_store": true,
      "created_at": "2018-10-04T16:02:40Z",
      "updated_at": "2018-10-04T16:02:40Z",
      "created_by": "Superman",
      "updated_by": "Superman"
    }
    

    Responses

    Status Description Schema
    201 (Created) The newly created Platform resource. Platform

    Retrieve a platform

    Code samples

    # You can also use wget
    curl -X GET https://api.artifakt.io/platforms/{platform_id} \
      -H 'Accept: application/json'
    
    
    
    <?php
    
    
    $headers = [
      'Accept' => 'application/json'
    ];
    
    
    $curl = curl_init();
    curl_setopt_array(
        $curl,
        [
            CURLOPT_URL => 'https://api.artifakt.io/platforms/{platform_id}',
            CURLOPT_HTTPHEADER => $headers,
            CURLOPT_RETURNTRANSFER => true
        ]
    );
    
    
    $result = curl_exec($curl);
    curl_close($curl);
    
    const fetch = require('node-fetch');
    
    
    const headers = {
      'Accept':'application/json'
    
    
    };
    
    
    fetch('https://api.artifakt.io/platforms/{platform_id}',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => 'application/json'
    }
    
    
    result = RestClient.get 'https://api.artifakt.io/platforms/{platform_id}',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': 'application/json'
    }
    
    
    r = requests.get('https://api.artifakt.io/platforms/{platform_id}', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("https://api.artifakt.io/platforms/{platform_id}");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /platforms/{platform_id}

    Returns the platform resource with the given id, from your personal library.

    Example responses

    {
      "id": "ad0d77e5-c414-444b-abf9-28acd68e0872",
      "resource": "platform",
      "name": "Magento on steroids",
      "slug": "magento_steroids",
      "workspace": "Superman",
      "path": "jack_bauer/magento_steroids",
      "description": "Magento fully optimized and ready for heavy load",
      "cloud_provider": "aws",
      "price": 0,
      "image": "https://images.artifakt.io/platforms/jack_bauer_magento_steroids.png",
      "category": "e_commerce",
      "tags": [
        "Optimized",
        "Secure"
      ],
      "deployment_count": 3987,
      "running_count": 421,
      "on_store": true,
      "created_at": "2018-10-04T16:02:40Z",
      "updated_at": "2018-10-04T16:02:40Z",
      "created_by": "Superman",
      "updated_by": "Superman"
    }
    

    Responses

    Status Description Schema
    200 (OK) The Platform resource. Platform

    Update a platform

    Code samples

    # You can also use wget
    curl -X PUT https://api.artifakt.io/platforms/{platform_id} \
      -H 'Content-Type: application/json' \
      -H 'Accept: application/json'
    
    
    
    <?php
    
    
     $inputBody = '{
      "on_store": true
    }';
    
    
    $headers = [
      'Content-Type' => 'application/json',
      'Accept' => 'application/json'
    ];
    
    
    $curl = curl_init();
    curl_setopt_array(
        $curl,
        [
            CURLOPT_URL => 'https://api.artifakt.io/platforms/{platform_id}',
            CURLOPT_HTTPHEADER => $headers,
            CURLOPT_CUSTOMREQUEST => 'PUT',
            CURLOPT_POSTFIELDS => $inputBody,
            CURLOPT_RETURNTRANSFER => true
        ]
    );
    
    
    $result = curl_exec($curl);
    curl_close($curl);
    
    const fetch = require('node-fetch');
    const inputBody = '{
      "on_store": true
    }';
    const headers = {
      'Content-Type':'application/json',
      'Accept':'application/json'
    
    
    };
    
    
    fetch('https://api.artifakt.io/platforms/{platform_id}',
    {
      method: 'PUT',
      body: inputBody,
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Content-Type' => 'application/json',
      'Accept' => 'application/json'
    }
    
    
    result = RestClient.put 'https://api.artifakt.io/platforms/{platform_id}',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Content-Type': 'application/json',
      'Accept': 'application/json'
    }
    
    
    r = requests.put('https://api.artifakt.io/platforms/{platform_id}', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("https://api.artifakt.io/platforms/{platform_id}");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("PUT");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    PUT /platforms/{platform_id}

    Updates a platform from your personal library.

    Body parameter

    {
      "on_store": true
    }
    

    Parameters

    Parameter In Type Required Description
    body body object true No description
    on_store body boolean false Set to "true" to publish the platform to the Artifakt Store.

    Example responses

    {
      "id": "ad0d77e5-c414-444b-abf9-28acd68e0872",
      "resource": "platform",
      "name": "Magento on steroids",
      "slug": "magento_steroids",
      "workspace": "Superman",
      "path": "jack_bauer/magento_steroids",
      "description": "Magento fully optimized and ready for heavy load",
      "cloud_provider": "aws",
      "price": 0,
      "image": "https://images.artifakt.io/platforms/jack_bauer_magento_steroids.png",
      "category": "e_commerce",
      "tags": [
        "Optimized",
        "Secure"
      ],
      "deployment_count": 3987,
      "running_count": 421,
      "on_store": true,
      "created_at": "2018-10-04T16:02:40Z",
      "updated_at": "2018-10-04T16:02:40Z",
      "created_by": "Superman",
      "updated_by": "Superman"
    }
    

    Responses

    Status Description Schema
    200 (OK) The Platform resource updated. Platform

    Delete a platform

    Code samples

    # You can also use wget
    curl -X DELETE https://api.artifakt.io/platforms/{platform_id}
    
    
    
    <?php
    
    
    $curl = curl_init();
    curl_setopt_array(
        $curl,
        [
            CURLOPT_URL => 'https://api.artifakt.io/platforms/{platform_id}',
    
    
            CURLOPT_CUSTOMREQUEST => "DELETE",
            CURLOPT_RETURNTRANSFER => true
        ]
    );
    
    
    $result = curl_exec($curl);
    curl_close($curl);
    
    const fetch = require('node-fetch');
    
    
    fetch('https://api.artifakt.io/platforms/{platform_id}',
    {
      method: 'DELETE'
    
    
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    result = RestClient.delete 'https://api.artifakt.io/platforms/{platform_id}',
      params: {
      }
    
    
    p JSON.parse(result)
    
    
    
    import requests
    
    
    r = requests.delete('https://api.artifakt.io/platforms/{platform_id}', params={
    
    
    )
    
    
    print r.json()
    
    
    
    URL obj = new URL("https://api.artifakt.io/platforms/{platform_id}");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("DELETE");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    DELETE /platforms/{platform_id}

    Permanently deletes a platform from your personal library.

    Responses

    Status Description Schema
    204 (No Content) The resource was deleted successfully. None

    List versions of a platform

    Code samples

    # You can also use wget
    curl -X GET https://api.artifakt.io/platforms/{platform_id}/versions \
      -H 'Accept: application/json'
    
    
    
    <?php
    
    
    $headers = [
      'Accept' => 'application/json'
    ];
    
    
    $curl = curl_init();
    curl_setopt_array(
        $curl,
        [
            CURLOPT_URL => 'https://api.artifakt.io/platforms/{platform_id}/versions',
            CURLOPT_HTTPHEADER => $headers,
            CURLOPT_RETURNTRANSFER => true
        ]
    );
    
    
    $result = curl_exec($curl);
    curl_close($curl);
    
    const fetch = require('node-fetch');
    
    
    const headers = {
      'Accept':'application/json'
    
    
    };
    
    
    fetch('https://api.artifakt.io/platforms/{platform_id}/versions',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => 'application/json'
    }
    
    
    result = RestClient.get 'https://api.artifakt.io/platforms/{platform_id}/versions',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': 'application/json'
    }
    
    
    r = requests.get('https://api.artifakt.io/platforms/{platform_id}/versions', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("https://api.artifakt.io/platforms/{platform_id}/versions");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /platforms/{platform_id}/versions

    Returns a list of all versions of the platform with the given id.

    Example responses

    [
      {
        "id": "6c15beaf-c581-4984-b48e-04b5e3e650a8",
        "resource": "platform_version",
        "tag": "1.3.0",
        "build_number": 1,
        "status": "waiting_for_processing",
        "build_engine": "terraform",
        "infrastructure": {
          "diagram": "https://images.artifakt.io/platforms/jack_bauer_magento_steroids/130.png",
          "build_time": 5,
          "cost_estimation": {
            "monthly_price": 234.52,
            "details": "5K GET requests per month - Less than 10 GB of storage - Deployed in Ireland."
          }
        },
        "readme": "This is an awesome readme explaining how your platform works.",
        "available_regions": [
          "us-west-1"
        ],
        "inputs": [
          {
            "code": "db_engine",
            "name": "Database Engine",
            "description": "Choose your database engine",
            "category": "Data",
            "type": "select",
            "default": "mysql",
            "required": false,
            "options": [
              "mysql",
              "postgresql"
            ],
            "secret": false
          }
        ],
        "outputs": [
          {
            "category": "URL",
            "code": "bo_url",
            "name": "Backoffice URL",
            "description": "The generated app_secret of the platform",
            "secret": false
          }
        ],
        "actions": [
          {
            "category": "Application",
            "code": "deploy",
            "name": "Deploy",
            "description": "Deploy application code.",
            "engine": "shell",
            "script": "deploy.sh"
          }
        ],
        "deployment_count": 795,
        "running_count": 539,
        "platform_id": "44f636bb-e325-4e75-911d-e86003036176",
        "created_at": "2018-10-04T16:02:40Z",
        "updated_at": "2018-10-04T16:02:40Z",
        "created_by": "Batman",
        "updated_by": "Batman"
      }
    ]
    

    Responses

    Status Description Schema
    200 (OK) An array of PlatformVersion resources belonging to the Platform with the given id. Inline

    Response Schema

    Status Code 200

    Name Type Required Description
    anonymous [PlatformVersion] false No description
    id string(uuid) false Unique identifier for the resource.
    resource string false String representing the resource’s type. Resources of the same type share the same value.
    tag string(version) false The platform's tag version.
    build_number integer false The version build number. Auto incremented.
    status string false The version status.
    build_engine string false The version build engine.
    infrastructure object false Infrastructure data for the platform version.
    diagram string(url) false The platform version's diagram URL.
    build_time integer false Estimated building time in seconds.
    cost_estimation object false Cost estimation data for the platform version.
    monthly_price number(double) false Estimated cloud price per month in dollars.
    details string false Describes how the monthly price has been calculated.
    readme string false The platform version's Readme.
    available_regions [string] false Regions where the app can be deployed (values provided by cloud providers).
    inputs [object] false The platform version's inputs.
    code string(alpha-dash) false The code of the input.
    name string false The name of the input.
    description string false The description of the input.
    category string false Category section where the input will be displayed.
    type string false The type of the input.
    default string false The default value of the input.
    required boolean false Is it required?
    options [string] false The options of the input. Used only if the input type is "select"
    secret boolean false Weither the value should be shown or hide.
    outputs [object] false The platform version's outputs.
    category string false Category section where the output will be displayed.
    code string(alpha-dash) false The code of the output.
    name string false The name of the output.
    description string false The description of the output.
    secret boolean false Weither the value should be shown or hide.
    actions [object] false The platform version's actions.
    category string false The category of the action.
    code string(alpha-dash) false The code of the action.
    name string false The name of the action.
    description string false The description of the action.
    engine string false The engine to use to excecute the action.
    script string false The script to execute.
    deployment_count integer false The number of times this platform version has been deployed.
    running_count integer false The number of running instances of this particular version of the platform.
    platform_id string(uuid) false Unique identifier of the corresponding platform.
    created_at string(date-time) false Time at which the resource was created.
    updated_at string(date-time) false Time at which the resource was updated.
    created_by string(alpha-dash) false User who has created the resource.
    updated_by string(alpha-dash) false User who last modified the resource.

    Create a platform version

    Code samples

    # You can also use wget
    curl -X POST https://api.artifakt.io/platforms/{platform_id}/versions \
      -H 'Content-Type: application/json' \
      -H 'Accept: application/json'
    
    
    
    <?php
    
    
     $inputBody = '{
      "source": "https://github.com/artifakt-io/platform-aws-terraform-quickstart.git"
    }';
    
    
    $headers = [
      'Content-Type' => 'application/json',
      'Accept' => 'application/json'
    ];
    
    
    $curl = curl_init();
    curl_setopt_array(
        $curl,
        [
            CURLOPT_URL => 'https://api.artifakt.io/platforms/{platform_id}/versions',
            CURLOPT_HTTPHEADER => $headers,
            CURLOPT_POST => true,
            CURLOPT_POSTFIELDS => $inputBody,
            CURLOPT_RETURNTRANSFER => true
        ]
    );
    
    
    $result = curl_exec($curl);
    curl_close($curl);
    
    const fetch = require('node-fetch');
    const inputBody = '{
      "source": "https://github.com/artifakt-io/platform-aws-terraform-quickstart.git"
    }';
    const headers = {
      'Content-Type':'application/json',
      'Accept':'application/json'
    
    
    };
    
    
    fetch('https://api.artifakt.io/platforms/{platform_id}/versions',
    {
      method: 'POST',
      body: inputBody,
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Content-Type' => 'application/json',
      'Accept' => 'application/json'
    }
    
    
    result = RestClient.post 'https://api.artifakt.io/platforms/{platform_id}/versions',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Content-Type': 'application/json',
      'Accept': 'application/json'
    }
    
    
    r = requests.post('https://api.artifakt.io/platforms/{platform_id}/versions', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("https://api.artifakt.io/platforms/{platform_id}/versions");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("POST");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    POST /platforms/{platform_id}/versions

    Creates a new platform version for the platform with the given id.

    Body parameter

    {
      "source": "https://github.com/artifakt-io/platform-aws-terraform-quickstart.git"
    }
    

    Parameters

    Parameter In Type Required Description
    body body object true No description
    source body string false Source url for the platform. It must be a valid git url or zip url.

    Example responses

    {
      "id": "6c15beaf-c581-4984-b48e-04b5e3e650a8",
      "resource": "platform_version",
      "tag": "1.3.0",
      "build_number": 1,
      "status": "waiting_for_processing",
      "build_engine": "terraform",
      "infrastructure": {
        "diagram": "https://images.artifakt.io/platforms/jack_bauer_magento_steroids/130.png",
        "build_time": 5,
        "cost_estimation": {
          "monthly_price": 234.52,
          "details": "5K GET requests per month - Less than 10 GB of storage - Deployed in Ireland."
        }
      },
      "readme": "This is an awesome readme explaining how your platform works.",
      "available_regions": [
        "us-west-1"
      ],
      "inputs": [
        {
          "code": "db_engine",
          "name": "Database Engine",
          "description": "Choose your database engine",
          "category": "Data",
          "type": "select",
          "default": "mysql",
          "required": false,
          "options": [
            "mysql",
            "postgresql"
          ],
          "secret": false
        }
      ],
      "outputs": [
        {
          "category": "URL",
          "code": "bo_url",
          "name": "Backoffice URL",
          "description": "The generated app_secret of the platform",
          "secret": false
        }
      ],
      "actions": [
        {
          "category": "Application",
          "code": "deploy",
          "name": "Deploy",
          "description": "Deploy application code.",
          "engine": "shell",
          "script": "deploy.sh"
        }
      ],
      "deployment_count": 795,
      "running_count": 539,
      "platform_id": "44f636bb-e325-4e75-911d-e86003036176",
      "created_at": "2018-10-04T16:02:40Z",
      "updated_at": "2018-10-04T16:02:40Z",
      "created_by": "Batman",
      "updated_by": "Batman"
    }
    

    Responses

    Status Description Schema
    201 (Created) The newly created PlatformVersion resource. PlatformVersion

    Retrieve a version of a platform

    Code samples

    # You can also use wget
    curl -X GET https://api.artifakt.io/platforms/{platform_id}/versions/{platform_version_id} \
      -H 'Accept: application/json'
    
    
    
    <?php
    
    
    $headers = [
      'Accept' => 'application/json'
    ];
    
    
    $curl = curl_init();
    curl_setopt_array(
        $curl,
        [
            CURLOPT_URL => 'https://api.artifakt.io/platforms/{platform_id}/versions/{platform_version_id}',
            CURLOPT_HTTPHEADER => $headers,
            CURLOPT_RETURNTRANSFER => true
        ]
    );
    
    
    $result = curl_exec($curl);
    curl_close($curl);
    
    const fetch = require('node-fetch');
    
    
    const headers = {
      'Accept':'application/json'
    
    
    };
    
    
    fetch('https://api.artifakt.io/platforms/{platform_id}/versions/{platform_version_id}',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => 'application/json'
    }
    
    
    result = RestClient.get 'https://api.artifakt.io/platforms/{platform_id}/versions/{platform_version_id}',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': 'application/json'
    }
    
    
    r = requests.get('https://api.artifakt.io/platforms/{platform_id}/versions/{platform_version_id}', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("https://api.artifakt.io/platforms/{platform_id}/versions/{platform_version_id}");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /platforms/{platform_id}/versions/{platform_version_id}

    Returns a specific version of the platform with the given id.

    Example responses

    {
      "id": "6c15beaf-c581-4984-b48e-04b5e3e650a8",
      "resource": "platform_version",
      "tag": "1.3.0",
      "build_number": 1,
      "status": "waiting_for_processing",
      "build_engine": "terraform",
      "infrastructure": {
        "diagram": "https://images.artifakt.io/platforms/jack_bauer_magento_steroids/130.png",
        "build_time": 5,
        "cost_estimation": {
          "monthly_price": 234.52,
          "details": "5K GET requests per month - Less than 10 GB of storage - Deployed in Ireland."
        }
      },
      "readme": "This is an awesome readme explaining how your platform works.",
      "available_regions": [
        "us-west-1"
      ],
      "inputs": [
        {
          "code": "db_engine",
          "name": "Database Engine",
          "description": "Choose your database engine",
          "category": "Data",
          "type": "select",
          "default": "mysql",
          "required": false,
          "options": [
            "mysql",
            "postgresql"
          ],
          "secret": false
        }
      ],
      "outputs": [
        {
          "category": "URL",
          "code": "bo_url",
          "name": "Backoffice URL",
          "description": "The generated app_secret of the platform",
          "secret": false
        }
      ],
      "actions": [
        {
          "category": "Application",
          "code": "deploy",
          "name": "Deploy",
          "description": "Deploy application code.",
          "engine": "shell",
          "script": "deploy.sh"
        }
      ],
      "deployment_count": 795,
      "running_count": 539,
      "platform_id": "44f636bb-e325-4e75-911d-e86003036176",
      "created_at": "2018-10-04T16:02:40Z",
      "updated_at": "2018-10-04T16:02:40Z",
      "created_by": "Batman",
      "updated_by": "Batman"
    }
    

    Responses

    Status Description Schema
    200 (OK) The PlatformVersion resource. PlatformVersion

    Manage environments

    List environments

    Code samples

    # You can also use wget
    curl -X GET https://api.artifakt.io/environments \
      -H 'Accept: application/json'
    
    
    
    <?php
    
    
    $headers = [
      'Accept' => 'application/json'
    ];
    
    
    $curl = curl_init();
    curl_setopt_array(
        $curl,
        [
            CURLOPT_URL => 'https://api.artifakt.io/environments',
            CURLOPT_HTTPHEADER => $headers,
            CURLOPT_RETURNTRANSFER => true
        ]
    );
    
    
    $result = curl_exec($curl);
    curl_close($curl);
    
    const fetch = require('node-fetch');
    
    
    const headers = {
      'Accept':'application/json'
    
    
    };
    
    
    fetch('https://api.artifakt.io/environments',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => 'application/json'
    }
    
    
    result = RestClient.get 'https://api.artifakt.io/environments',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': 'application/json'
    }
    
    
    r = requests.get('https://api.artifakt.io/environments', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("https://api.artifakt.io/environments");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /environments

    Returns a list of all environments you own.

    Example responses

    [
      {
        "id": "e4073be7-c4c8-4b6f-8cdc-c403926082b9",
        "resource": "environment",
        "name": "dev",
        "inputs": [
          {
            "name": "db_engine",
            "value": "mysql"
          }
        ],
        "outputs": [
          {
            "name": "front_url",
            "value": "https://mysite.com"
          }
        ],
        "cloud_provider": "aws",
        "region": "eu-west-1",
        "status": "building",
        "cost_estimation": {
          "monthly_price": 234.52,
          "details": "5K GET requests per month - Less than 10 GB of storage - Deployed in Ireland."
        },
        "provider_id": "b7f923d7-e2d7-4048-9984-e004f41050f6",
        "platform": {
          "id": "ad0d77e5-c414-444b-abf9-28acd68e0872"
        },
        "created_at": "2018-10-04T16:02:40Z",
        "updated_at": "2018-10-04T16:02:40Z",
        "created_by": "Spiderman",
        "updated_by": "Spiderman"
      }
    ]
    

    Responses

    Status Description Schema
    200 (OK) An array of Environment resources. Inline

    Response Schema

    Status Code 200

    Name Type Required Description
    anonymous [Environment] false No description
    id string(uuid) false Unique identifier for the ressource.
    resource string false String representing the ressource’s type. Ressources of the same type share the same value.
    name string(alpha-dash) true Name of your environment. Must be between 3 and 64 characters.
    inputs [object] false Input values (params) needed for the deployment.
    name string false The name of the input.
    value string false The value of the input.
    outputs [object] false Output values (params) needed for the deployment.
    name string false The name of the output.
    value string false The value of the output.
    cloud_provider string false Cloud provider chosed for the deployment.
    region string true The region where the application will be deployed.
    status string false The current status of the environment.
    cost_estimation object false Cost estimation data for the platform version.
    monthly_price number(double) false Estimated cloud price per month in dollars.
    details string false Describes how the monthly price has been calculated.
    provider_id string true The Cloud account unique identifier used for the deployment.
    platform_version_id string true Unique identifier of the PlatformVersion (write only).
    platform object false [object Object]
    id string(uuid) false Unique identifier for the resource.
    created_at string(date-time) false Time at which the ressource was created.
    updated_at string(date-time) false Time at which the resource was updated.
    created_by string(alpha-dash) false User who has created the resource.
    updated_by string(alpha-dash) false User who last modified the resource.

    Create an environment

    Code samples

    # You can also use wget
    curl -X POST https://api.artifakt.io/environments \
      -H 'Content-Type: application/json' \
      -H 'Accept: application/json'
    
    
    
    <?php
    
    
     $inputBody = '{
      "name": "dev",
      "inputs": [
        {
          "name": "db_engine",
          "value": "mysql"
        }
      ],
      "outputs": [
        {
          "name": "front_url",
          "value": "https://mysite.com"
        }
      ],
      "region": "eu-west-1",
      "provider_id": "b7f923d7-e2d7-4048-9984-e004f41050f6",
      "platform_version_id": "7dbcc73e-7a59-4671-9329-479b03029fa7",
      "platform": {}
    }';
    
    
    $headers = [
      'Content-Type' => 'application/json',
      'Accept' => 'application/json'
    ];
    
    
    $curl = curl_init();
    curl_setopt_array(
        $curl,
        [
            CURLOPT_URL => 'https://api.artifakt.io/environments',
            CURLOPT_HTTPHEADER => $headers,
            CURLOPT_POST => true,
            CURLOPT_POSTFIELDS => $inputBody,
            CURLOPT_RETURNTRANSFER => true
        ]
    );
    
    
    $result = curl_exec($curl);
    curl_close($curl);
    
    const fetch = require('node-fetch');
    const inputBody = '{
      "name": "dev",
      "inputs": [
        {
          "name": "db_engine",
          "value": "mysql"
        }
      ],
      "outputs": [
        {
          "name": "front_url",
          "value": "https://mysite.com"
        }
      ],
      "region": "eu-west-1",
      "provider_id": "b7f923d7-e2d7-4048-9984-e004f41050f6",
      "platform_version_id": "7dbcc73e-7a59-4671-9329-479b03029fa7",
      "platform": {}
    }';
    const headers = {
      'Content-Type':'application/json',
      'Accept':'application/json'
    
    
    };
    
    
    fetch('https://api.artifakt.io/environments',
    {
      method: 'POST',
      body: inputBody,
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Content-Type' => 'application/json',
      'Accept' => 'application/json'
    }
    
    
    result = RestClient.post 'https://api.artifakt.io/environments',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Content-Type': 'application/json',
      'Accept': 'application/json'
    }
    
    
    r = requests.post('https://api.artifakt.io/environments', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("https://api.artifakt.io/environments");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("POST");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    POST /environments

    Creates a new environment.

    Body parameter

    {
      "name": "dev",
      "inputs": [
        {
          "name": "db_engine",
          "value": "mysql"
        }
      ],
      "outputs": [
        {
          "name": "front_url",
          "value": "https://mysite.com"
        }
      ],
      "region": "eu-west-1",
      "provider_id": "b7f923d7-e2d7-4048-9984-e004f41050f6",
      "platform_version_id": "7dbcc73e-7a59-4671-9329-479b03029fa7",
      "platform": {}
    }
    

    Parameters

    Parameter In Type Required Description
    body body Environment true No description

    Example responses

    {
      "id": "e4073be7-c4c8-4b6f-8cdc-c403926082b9",
      "resource": "environment",
      "name": "dev",
      "inputs": [
        {
          "name": "db_engine",
          "value": "mysql"
        }
      ],
      "outputs": [
        {
          "name": "front_url",
          "value": "https://mysite.com"
        }
      ],
      "cloud_provider": "aws",
      "region": "eu-west-1",
      "status": "building",
      "cost_estimation": {
        "monthly_price": 234.52,
        "details": "5K GET requests per month - Less than 10 GB of storage - Deployed in Ireland."
      },
      "provider_id": "b7f923d7-e2d7-4048-9984-e004f41050f6",
      "platform": {
        "id": "ad0d77e5-c414-444b-abf9-28acd68e0872"
      },
      "created_at": "2018-10-04T16:02:40Z",
      "updated_at": "2018-10-04T16:02:40Z",
      "created_by": "Spiderman",
      "updated_by": "Spiderman"
    }
    

    Responses

    Status Description Schema
    201 (Created) The newly created Environment resource. Environment

    Retrieve an environment

    Code samples

    # You can also use wget
    curl -X GET https://api.artifakt.io/environments/{environment_id} \
      -H 'Accept: application/json'
    
    
    
    <?php
    
    
    $headers = [
      'Accept' => 'application/json'
    ];
    
    
    $curl = curl_init();
    curl_setopt_array(
        $curl,
        [
            CURLOPT_URL => 'https://api.artifakt.io/environments/{environment_id}',
            CURLOPT_HTTPHEADER => $headers,
            CURLOPT_RETURNTRANSFER => true
        ]
    );
    
    
    $result = curl_exec($curl);
    curl_close($curl);
    
    const fetch = require('node-fetch');
    
    
    const headers = {
      'Accept':'application/json'
    
    
    };
    
    
    fetch('https://api.artifakt.io/environments/{environment_id}',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => 'application/json'
    }
    
    
    result = RestClient.get 'https://api.artifakt.io/environments/{environment_id}',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': 'application/json'
    }
    
    
    r = requests.get('https://api.artifakt.io/environments/{environment_id}', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("https://api.artifakt.io/environments/{environment_id}");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /environments/{environment_id}

    Returns the environment resource with the given id.

    Example responses

    {
      "id": "e4073be7-c4c8-4b6f-8cdc-c403926082b9",
      "resource": "environment",
      "name": "dev",
      "inputs": [
        {
          "name": "db_engine",
          "value": "mysql"
        }
      ],
      "outputs": [
        {
          "name": "front_url",
          "value": "https://mysite.com"
        }
      ],
      "cloud_provider": "aws",
      "region": "eu-west-1",
      "status": "building",
      "cost_estimation": {
        "monthly_price": 234.52,
        "details": "5K GET requests per month - Less than 10 GB of storage - Deployed in Ireland."
      },
      "provider_id": "b7f923d7-e2d7-4048-9984-e004f41050f6",
      "platform": {
        "id": "ad0d77e5-c414-444b-abf9-28acd68e0872"
      },
      "created_at": "2018-10-04T16:02:40Z",
      "updated_at": "2018-10-04T16:02:40Z",
      "created_by": "Spiderman",
      "updated_by": "Spiderman"
    }
    

    Responses

    Status Description Schema
    200 (OK) The Environment resource. Environment

    Update an environment

    Code samples

    # You can also use wget
    curl -X PUT https://api.artifakt.io/environments/{environment_id} \
      -H 'Content-Type: application/json' \
      -H 'Accept: application/json'
    
    
    
    <?php
    
    
     $inputBody = '{
      "inputs": [
        {
          "name": "db_engine",
          "value": "mysql"
        }
      ],
      "platform_version_id": "7dbcc73e-7a59-4671-9329-479b03029fa7"
    }';
    
    
    $headers = [
      'Content-Type' => 'application/json',
      'Accept' => 'application/json'
    ];
    
    
    $curl = curl_init();
    curl_setopt_array(
        $curl,
        [
            CURLOPT_URL => 'https://api.artifakt.io/environments/{environment_id}',
            CURLOPT_HTTPHEADER => $headers,
            CURLOPT_CUSTOMREQUEST => 'PUT',
            CURLOPT_POSTFIELDS => $inputBody,
            CURLOPT_RETURNTRANSFER => true
        ]
    );
    
    
    $result = curl_exec($curl);
    curl_close($curl);
    
    const fetch = require('node-fetch');
    const inputBody = '{
      "inputs": [
        {
          "name": "db_engine",
          "value": "mysql"
        }
      ],
      "platform_version_id": "7dbcc73e-7a59-4671-9329-479b03029fa7"
    }';
    const headers = {
      'Content-Type':'application/json',
      'Accept':'application/json'
    
    
    };
    
    
    fetch('https://api.artifakt.io/environments/{environment_id}',
    {
      method: 'PUT',
      body: inputBody,
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Content-Type' => 'application/json',
      'Accept' => 'application/json'
    }
    
    
    result = RestClient.put 'https://api.artifakt.io/environments/{environment_id}',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Content-Type': 'application/json',
      'Accept': 'application/json'
    }
    
    
    r = requests.put('https://api.artifakt.io/environments/{environment_id}', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("https://api.artifakt.io/environments/{environment_id}");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("PUT");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    PUT /environments/{environment_id}

    Updates an environment.

    Body parameter

    {
      "inputs": [
        {
          "name": "db_engine",
          "value": "mysql"
        }
      ],
      "platform_version_id": "7dbcc73e-7a59-4671-9329-479b03029fa7"
    }
    

    Parameters

    Parameter In Type Required Description
    body body object true No description
    inputs body [object] false Input values (params) needed for the deployment.
    name body string false The name of the input.
    value body string false The value of the input.
    platform_version_id body string false The PlatformVersion to be deployment.

    Example responses

    {
      "id": "e4073be7-c4c8-4b6f-8cdc-c403926082b9",
      "resource": "environment",
      "name": "dev",
      "inputs": [
        {
          "name": "db_engine",
          "value": "mysql"
        }
      ],
      "outputs": [
        {
          "name": "front_url",
          "value": "https://mysite.com"
        }
      ],
      "cloud_provider": "aws",
      "region": "eu-west-1",
      "status": "building",
      "cost_estimation": {
        "monthly_price": 234.52,
        "details": "5K GET requests per month - Less than 10 GB of storage - Deployed in Ireland."
      },
      "provider_id": "b7f923d7-e2d7-4048-9984-e004f41050f6",
      "platform": {
        "id": "ad0d77e5-c414-444b-abf9-28acd68e0872"
      },
      "created_at": "2018-10-04T16:02:40Z",
      "updated_at": "2018-10-04T16:02:40Z",
      "created_by": "Spiderman",
      "updated_by": "Spiderman"
    }
    

    Responses

    Status Description Schema
    200 (OK) The Environment resource updated. Environment

    Delete an environment

    Code samples

    # You can also use wget
    curl -X DELETE https://api.artifakt.io/environments/{environment_id}
    
    
    
    <?php
    
    
    $curl = curl_init();
    curl_setopt_array(
        $curl,
        [
            CURLOPT_URL => 'https://api.artifakt.io/environments/{environment_id}',
    
    
            CURLOPT_CUSTOMREQUEST => "DELETE",
            CURLOPT_RETURNTRANSFER => true
        ]
    );
    
    
    $result = curl_exec($curl);
    curl_close($curl);
    
    const fetch = require('node-fetch');
    
    
    fetch('https://api.artifakt.io/environments/{environment_id}',
    {
      method: 'DELETE'
    
    
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    result = RestClient.delete 'https://api.artifakt.io/environments/{environment_id}',
      params: {
      }
    
    
    p JSON.parse(result)
    
    
    
    import requests
    
    
    r = requests.delete('https://api.artifakt.io/environments/{environment_id}', params={
    
    
    )
    
    
    print r.json()
    
    
    
    URL obj = new URL("https://api.artifakt.io/environments/{environment_id}");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("DELETE");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    DELETE /environments/{environment_id}

    Permanently deletes an environment.

    Responses

    Status Description Schema
    204 (No Content) The resource was deleted successfully. None

    Duplicate an environment

    Code samples

    # You can also use wget
    curl -X POST https://api.artifakt.io/environments/{environment_id}/duplicate \
      -H 'Accept: application/json'
    
    
    
    <?php
    
    
    $headers = [
      'Accept' => 'application/json'
    ];
    
    
    $curl = curl_init();
    curl_setopt_array(
        $curl,
        [
            CURLOPT_URL => 'https://api.artifakt.io/environments/{environment_id}/duplicate',
            CURLOPT_HTTPHEADER => $headers,
            CURLOPT_POST => true,
    
    
            CURLOPT_RETURNTRANSFER => true
        ]
    );
    
    
    $result = curl_exec($curl);
    curl_close($curl);
    
    const fetch = require('node-fetch');
    
    
    const headers = {
      'Accept':'application/json'
    
    
    };
    
    
    fetch('https://api.artifakt.io/environments/{environment_id}/duplicate',
    {
      method: 'POST',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => 'application/json'
    }
    
    
    result = RestClient.post 'https://api.artifakt.io/environments/{environment_id}/duplicate',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': 'application/json'
    }
    
    
    r = requests.post('https://api.artifakt.io/environments/{environment_id}/duplicate', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("https://api.artifakt.io/environments/{environment_id}/duplicate");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("POST");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    POST /environments/{environment_id}/duplicate

    Returns the duplicated environment resource with the given id.

    Example responses

    {
      "id": "e4073be7-c4c8-4b6f-8cdc-c403926082b9",
      "resource": "environment",
      "name": "dev",
      "inputs": [
        {
          "name": "db_engine",
          "value": "mysql"
        }
      ],
      "outputs": [
        {
          "name": "front_url",
          "value": "https://mysite.com"
        }
      ],
      "cloud_provider": "aws",
      "region": "eu-west-1",
      "status": "building",
      "cost_estimation": {
        "monthly_price": 234.52,
        "details": "5K GET requests per month - Less than 10 GB of storage - Deployed in Ireland."
      },
      "provider_id": "b7f923d7-e2d7-4048-9984-e004f41050f6",
      "platform": {
        "id": "ad0d77e5-c414-444b-abf9-28acd68e0872"
      },
      "created_at": "2018-10-04T16:02:40Z",
      "updated_at": "2018-10-04T16:02:40Z",
      "created_by": "Spiderman",
      "updated_by": "Spiderman"
    }
    

    Responses

    Status Description Schema
    201 (Created) The Environment resource. Environment

    List jobs of an environment

    Code samples

    # You can also use wget
    curl -X GET https://api.artifakt.io/environments/{environment_id}/jobs \
      -H 'Accept: application/json'
    
    
    
    <?php
    
    
    $headers = [
      'Accept' => 'application/json'
    ];
    
    
    $curl = curl_init();
    curl_setopt_array(
        $curl,
        [
            CURLOPT_URL => 'https://api.artifakt.io/environments/{environment_id}/jobs',
            CURLOPT_HTTPHEADER => $headers,
            CURLOPT_RETURNTRANSFER => true
        ]
    );
    
    
    $result = curl_exec($curl);
    curl_close($curl);
    
    const fetch = require('node-fetch');
    
    
    const headers = {
      'Accept':'application/json'
    
    
    };
    
    
    fetch('https://api.artifakt.io/environments/{environment_id}/jobs',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => 'application/json'
    }
    
    
    result = RestClient.get 'https://api.artifakt.io/environments/{environment_id}/jobs',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': 'application/json'
    }
    
    
    r = requests.get('https://api.artifakt.io/environments/{environment_id}/jobs', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("https://api.artifakt.io/environments/{environment_id}/jobs");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /environments/{environment_id}/jobs

    Returns a list of all jobs started for the environment with the given id.

    Example responses

    [
      {
        "id": "edc91f22-5e49-48fa-8ef1-81087297c416",
        "resource": "job",
        "action": "deploy",
        "job_id": "ee56f7f5-e138-4373-87dd-935520ae35dc",
        "type": "build",
        "status": "running",
        "description": "build",
        "environment_id": "2ba4d015-f358-4312-aa40-ab47658cbf83",
        "environment_name": "dev",
        "raw_inputs": "[{\"name\":\"AWS_ACCESS_KEY_ID\", \"value\":\"xxxx\"},{\"name\":\"AWS_SECRET_ACCESS_KEY\",\"value\":\"xxxx\"},{\"name\":\"GIT_URL\",\"value\":\"https://github.com/organiztion/repo.git\"}]",
        "raw_outputs": "[{\"name\":\"s3_url\", \"value\":\"xxxx\"}]",
        "created_at": "2018-10-04T16:02:40Z",
        "updated_at": "2018-10-04T16:02:40Z",
        "started_at": "2018-10-04T16:02:40Z",
        "finished_at": "2018-10-04T16:02:40Z",
        "created_by": "Superman",
        "updated_by": "Superman"
      }
    ]
    

    Responses

    Status Description Schema
    200 (OK) An array of Job resources. Inline

    Response Schema

    Status Code 200

    Name Type Required Description
    anonymous [Job] false No description
    id string(uuid) false Unique identifier for the ressource.
    resource string false String representing the ressource’s type. Ressources of the same type share the same value.
    action string false The job action to perform. Only required for job type "run".
    job_id string false Job id to retry. Only required for job type "retry".
    type string true The job type to be performed.
    status string false The current status of the job.
    description string false The job description.
    environment_id string false Unique identifier of the environment modified by the job.
    environment_name string(alpha-dash) false Name of your environment. Must be between 3 and 64 characters.
    raw_inputs string false Inputs provided by the user, JSON encoded.
    raw_outputs string false Outputs displayed after Job completion, JSON encoded.
    created_at string(date-time) false Time at which the ressource was created.
    updated_at string(date-time) false Time at which the resource was updated.
    started_at string(date-time) false Time at which the resource was started by the engine.
    finished_at string(date-time) false Time at which the resource was finished by the engine.
    created_by string(alpha-dash) false User who has created the resource.
    updated_by string(alpha-dash) false User who last modified the resource.

    Create a Job for an environment

    Code samples

    # You can also use wget
    curl -X POST https://api.artifakt.io/environments/{environment_id}/jobs \
      -H 'Content-Type: application/json' \
      -H 'Accept: application/json'
    
    
    
    <?php
    
    
     $inputBody = '{
      "action": "deploy",
      "job_id": "ee56f7f5-e138-4373-87dd-935520ae35dc",
      "type": "build"
    }';
    
    
    $headers = [
      'Content-Type' => 'application/json',
      'Accept' => 'application/json'
    ];
    
    
    $curl = curl_init();
    curl_setopt_array(
        $curl,
        [
            CURLOPT_URL => 'https://api.artifakt.io/environments/{environment_id}/jobs',
            CURLOPT_HTTPHEADER => $headers,
            CURLOPT_POST => true,
            CURLOPT_POSTFIELDS => $inputBody,
            CURLOPT_RETURNTRANSFER => true
        ]
    );
    
    
    $result = curl_exec($curl);
    curl_close($curl);
    
    const fetch = require('node-fetch');
    const inputBody = '{
      "action": "deploy",
      "job_id": "ee56f7f5-e138-4373-87dd-935520ae35dc",
      "type": "build"
    }';
    const headers = {
      'Content-Type':'application/json',
      'Accept':'application/json'
    
    
    };
    
    
    fetch('https://api.artifakt.io/environments/{environment_id}/jobs',
    {
      method: 'POST',
      body: inputBody,
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Content-Type' => 'application/json',
      'Accept' => 'application/json'
    }
    
    
    result = RestClient.post 'https://api.artifakt.io/environments/{environment_id}/jobs',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Content-Type': 'application/json',
      'Accept': 'application/json'
    }
    
    
    r = requests.post('https://api.artifakt.io/environments/{environment_id}/jobs', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("https://api.artifakt.io/environments/{environment_id}/jobs");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("POST");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    POST /environments/{environment_id}/jobs

    Creates a new Job for an Environment.

    Body parameter

    {
      "action": "deploy",
      "job_id": "ee56f7f5-e138-4373-87dd-935520ae35dc",
      "type": "build"
    }
    

    Parameters

    Parameter In Type Required Description
    body body Job true No description

    Example responses

    {
      "id": "edc91f22-5e49-48fa-8ef1-81087297c416",
      "resource": "job",
      "action": "deploy",
      "job_id": "ee56f7f5-e138-4373-87dd-935520ae35dc",
      "type": "build",
      "status": "running",
      "description": "build",
      "environment_id": "2ba4d015-f358-4312-aa40-ab47658cbf83",
      "environment_name": "dev",
      "raw_inputs": "[{\"name\":\"AWS_ACCESS_KEY_ID\", \"value\":\"xxxx\"},{\"name\":\"AWS_SECRET_ACCESS_KEY\",\"value\":\"xxxx\"},{\"name\":\"GIT_URL\",\"value\":\"https://github.com/organiztion/repo.git\"}]",
      "raw_outputs": "[{\"name\":\"s3_url\", \"value\":\"xxxx\"}]",
      "created_at": "2018-10-04T16:02:40Z",
      "updated_at": "2018-10-04T16:02:40Z",
      "started_at": "2018-10-04T16:02:40Z",
      "finished_at": "2018-10-04T16:02:40Z",
      "created_by": "Superman",
      "updated_by": "Superman"
    }
    

    Responses

    Status Description Schema
    201 (Created) The newly created Job resource. Job

    Retrieve a job for an environment.

    Code samples

    # You can also use wget
    curl -X GET https://api.artifakt.io/environments/{environment_id}/jobs/{job_id} \
      -H 'Accept: application/json'
    
    
    
    <?php
    
    
    $headers = [
      'Accept' => 'application/json'
    ];
    
    
    $curl = curl_init();
    curl_setopt_array(
        $curl,
        [
            CURLOPT_URL => 'https://api.artifakt.io/environments/{environment_id}/jobs/{job_id}',
            CURLOPT_HTTPHEADER => $headers,
            CURLOPT_RETURNTRANSFER => true
        ]
    );
    
    
    $result = curl_exec($curl);
    curl_close($curl);
    
    const fetch = require('node-fetch');
    
    
    const headers = {
      'Accept':'application/json'
    
    
    };
    
    
    fetch('https://api.artifakt.io/environments/{environment_id}/jobs/{job_id}',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => 'application/json'
    }
    
    
    result = RestClient.get 'https://api.artifakt.io/environments/{environment_id}/jobs/{job_id}',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': 'application/json'
    }
    
    
    r = requests.get('https://api.artifakt.io/environments/{environment_id}/jobs/{job_id}', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("https://api.artifakt.io/environments/{environment_id}/jobs/{job_id}");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /environments/{environment_id}/jobs/{job_id}

    Returns the environment resource with the given id.

    Example responses

    {
      "id": "edc91f22-5e49-48fa-8ef1-81087297c416",
      "resource": "job",
      "action": "deploy",
      "job_id": "ee56f7f5-e138-4373-87dd-935520ae35dc",
      "type": "build",
      "status": "running",
      "description": "build",
      "environment_id": "2ba4d015-f358-4312-aa40-ab47658cbf83",
      "environment_name": "dev",
      "raw_inputs": "[{\"name\":\"AWS_ACCESS_KEY_ID\", \"value\":\"xxxx\"},{\"name\":\"AWS_SECRET_ACCESS_KEY\",\"value\":\"xxxx\"},{\"name\":\"GIT_URL\",\"value\":\"https://github.com/organiztion/repo.git\"}]",
      "raw_outputs": "[{\"name\":\"s3_url\", \"value\":\"xxxx\"}]",
      "created_at": "2018-10-04T16:02:40Z",
      "updated_at": "2018-10-04T16:02:40Z",
      "started_at": "2018-10-04T16:02:40Z",
      "finished_at": "2018-10-04T16:02:40Z",
      "created_by": "Superman",
      "updated_by": "Superman"
    }
    

    Responses

    Status Description Schema
    200 (OK) The job resource Job

    List logs for a job

    Code samples

    # You can also use wget
    curl -X GET https://api.artifakt.io/environments/{environment_id}/jobs/{job_id}/logs \
      -H 'Accept: application/json'
    
    
    
    <?php
    
    
    $headers = [
      'Accept' => 'application/json'
    ];
    
    
    $curl = curl_init();
    curl_setopt_array(
        $curl,
        [
            CURLOPT_URL => 'https://api.artifakt.io/environments/{environment_id}/jobs/{job_id}/logs',
            CURLOPT_HTTPHEADER => $headers,
            CURLOPT_RETURNTRANSFER => true
        ]
    );
    
    
    $result = curl_exec($curl);
    curl_close($curl);
    
    const fetch = require('node-fetch');
    
    
    const headers = {
      'Accept':'application/json'
    
    
    };
    
    
    fetch('https://api.artifakt.io/environments/{environment_id}/jobs/{job_id}/logs',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => 'application/json'
    }
    
    
    result = RestClient.get 'https://api.artifakt.io/environments/{environment_id}/jobs/{job_id}/logs',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': 'application/json'
    }
    
    
    r = requests.get('https://api.artifakt.io/environments/{environment_id}/jobs/{job_id}/logs', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("https://api.artifakt.io/environments/{environment_id}/jobs/{job_id}/logs");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /environments/{environment_id}/jobs/{job_id}/logs

    Returns a list of all logs for given environment and job ids.

    Example responses

    [
      {
        "timestamp": 1526659019016,
        "message": "ERROR: GIT_URL must be defined",
        "ingestionTime": 1526659019064
      }
    ]
    

    Responses

    Status Description Schema
    200 (OK) An array of Log resources. Inline

    Response Schema

    Status Code 200

    Name Type Required Description
    anonymous [Log] false No description
    timestamp integer false The time the event occurred, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC.
    message string false The data contained in the log event.
    ingestionTime integer false The time the event was ingested, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC.

    Platform Store

    List platforms

    Code samples

    # You can also use wget
    curl -X GET https://api.artifakt.io/store/platforms \
      -H 'Accept: application/json'
    
    
    
    <?php
    
    
    $headers = [
      'Accept' => 'application/json'
    ];
    
    
    $curl = curl_init();
    curl_setopt_array(
        $curl,
        [
            CURLOPT_URL => 'https://api.artifakt.io/store/platforms',
            CURLOPT_HTTPHEADER => $headers,
            CURLOPT_RETURNTRANSFER => true
        ]
    );
    
    
    $result = curl_exec($curl);
    curl_close($curl);
    
    const fetch = require('node-fetch');
    
    
    const headers = {
      'Accept':'application/json'
    
    
    };
    
    
    fetch('https://api.artifakt.io/store/platforms',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => 'application/json'
    }
    
    
    result = RestClient.get 'https://api.artifakt.io/store/platforms',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': 'application/json'
    }
    
    
    r = requests.get('https://api.artifakt.io/store/platforms', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("https://api.artifakt.io/store/platforms");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /store/platforms

    Returns a list of all platforms available on the store.

    Example responses

    [
      {
        "id": "ad0d77e5-c414-444b-abf9-28acd68e0872",
        "resource": "platform",
        "name": "Magento on steroids",
        "slug": "magento_steroids",
        "workspace": "Superman",
        "path": "jack_bauer/magento_steroids",
        "description": "Magento fully optimized and ready for heavy load",
        "cloud_provider": "aws",
        "price": 0,
        "image": "https://images.artifakt.io/platforms/jack_bauer_magento_steroids.png",
        "category": "e_commerce",
        "tags": [
          "Optimized",
          "Secure"
        ],
        "deployment_count": 3987,
        "running_count": 421,
        "on_store": true,
        "created_at": "2018-10-04T16:02:40Z",
        "updated_at": "2018-10-04T16:02:40Z",
        "created_by": "Superman",
        "updated_by": "Superman"
      }
    ]
    

    Responses

    Status Description Schema
    200 (OK) An array of Platform resources. Inline

    Response Schema

    Status Code 200

    Name Type Required Description
    anonymous [Platform] false No description
    id string(uuid) false Unique identifier for the resource.
    resource string false String representing the resource’s type. Resources of the same type share the same value.
    name string true Name of your platform. Must be between 3 and 50 characters.
    slug string(alpha-dash) true Slug of your platform. Must be between 3 and 50 characters.
    workspace string(alpha-dash) true Workspace of your platform.
    path string false Combination of the workspace and the platform's name. This value is unique across the workspace.
    description string true Short description of your platform. Displayed in the platform list. 2000 characters maximum.
    cloud_provider string true Cloud provider for your platform.
    price number(double) false The platform's price.
    image string(url) true Image URL of your platform. Usually, the application's logo.
    category string true The category the platform belongs to.
    tags [string] false Tags added to your platform. Used for search and filters.
    deployment_count integer false The number of times this platform has been deployed.
    running_count integer false The number of running instances of this platform.
    on_store boolean false Set to "true" to publish the platform to the Artifakt Store.
    created_at string(date-time) false Time at which the resource has been created.
    updated_at string(date-time) false Time at which the resource has been updated.
    created_by string(alpha-dash) false User who has created the resource.
    updated_by string(alpha-dash) false User who last modified the resource.

    Retrieve a platform

    Code samples

    # You can also use wget
    curl -X GET https://api.artifakt.io/store/platforms/{platform_id} \
      -H 'Accept: application/json'
    
    
    
    <?php
    
    
    $headers = [
      'Accept' => 'application/json'
    ];
    
    
    $curl = curl_init();
    curl_setopt_array(
        $curl,
        [
            CURLOPT_URL => 'https://api.artifakt.io/store/platforms/{platform_id}',
            CURLOPT_HTTPHEADER => $headers,
            CURLOPT_RETURNTRANSFER => true
        ]
    );
    
    
    $result = curl_exec($curl);
    curl_close($curl);
    
    const fetch = require('node-fetch');
    
    
    const headers = {
      'Accept':'application/json'
    
    
    };
    
    
    fetch('https://api.artifakt.io/store/platforms/{platform_id}',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => 'application/json'
    }
    
    
    result = RestClient.get 'https://api.artifakt.io/store/platforms/{platform_id}',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': 'application/json'
    }
    
    
    r = requests.get('https://api.artifakt.io/store/platforms/{platform_id}', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("https://api.artifakt.io/store/platforms/{platform_id}");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /store/platforms/{platform_id}

    Returns the platform resource with the given id, from the Artifakt's app store.

    Example responses

    {
      "id": "ad0d77e5-c414-444b-abf9-28acd68e0872",
      "resource": "platform",
      "name": "Magento on steroids",
      "slug": "magento_steroids",
      "workspace": "Superman",
      "path": "jack_bauer/magento_steroids",
      "description": "Magento fully optimized and ready for heavy load",
      "cloud_provider": "aws",
      "price": 0,
      "image": "https://images.artifakt.io/platforms/jack_bauer_magento_steroids.png",
      "category": "e_commerce",
      "tags": [
        "Optimized",
        "Secure"
      ],
      "deployment_count": 3987,
      "running_count": 421,
      "on_store": true,
      "created_at": "2018-10-04T16:02:40Z",
      "updated_at": "2018-10-04T16:02:40Z",
      "created_by": "Superman",
      "updated_by": "Superman"
    }
    

    Responses

    Status Description Schema
    200 (OK) The Platform resource. Platform

    List versions of a platform

    Code samples

    # You can also use wget
    curl -X GET https://api.artifakt.io/store/platforms/{platform_id}/versions \
      -H 'Accept: application/json'
    
    
    
    <?php
    
    
    $headers = [
      'Accept' => 'application/json'
    ];
    
    
    $curl = curl_init();
    curl_setopt_array(
        $curl,
        [
            CURLOPT_URL => 'https://api.artifakt.io/store/platforms/{platform_id}/versions',
            CURLOPT_HTTPHEADER => $headers,
            CURLOPT_RETURNTRANSFER => true
        ]
    );
    
    
    $result = curl_exec($curl);
    curl_close($curl);
    
    const fetch = require('node-fetch');
    
    
    const headers = {
      'Accept':'application/json'
    
    
    };
    
    
    fetch('https://api.artifakt.io/store/platforms/{platform_id}/versions',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => 'application/json'
    }
    
    
    result = RestClient.get 'https://api.artifakt.io/store/platforms/{platform_id}/versions',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': 'application/json'
    }
    
    
    r = requests.get('https://api.artifakt.io/store/platforms/{platform_id}/versions', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("https://api.artifakt.io/store/platforms/{platform_id}/versions");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /store/platforms/{platform_id}/versions

    Returns a list of all versions of the platform with the given id.

    Example responses

    [
      {
        "id": "6c15beaf-c581-4984-b48e-04b5e3e650a8",
        "resource": "platform_version",
        "tag": "1.3.0",
        "build_number": 1,
        "status": "waiting_for_processing",
        "build_engine": "terraform",
        "infrastructure": {
          "diagram": "https://images.artifakt.io/platforms/jack_bauer_magento_steroids/130.png",
          "build_time": 5,
          "cost_estimation": {
            "monthly_price": 234.52,
            "details": "5K GET requests per month - Less than 10 GB of storage - Deployed in Ireland."
          }
        },
        "readme": "This is an awesome readme explaining how your platform works.",
        "available_regions": [
          "us-west-1"
        ],
        "inputs": [
          {
            "code": "db_engine",
            "name": "Database Engine",
            "description": "Choose your database engine",
            "category": "Data",
            "type": "select",
            "default": "mysql",
            "required": false,
            "options": [
              "mysql",
              "postgresql"
            ],
            "secret": false
          }
        ],
        "outputs": [
          {
            "category": "URL",
            "code": "bo_url",
            "name": "Backoffice URL",
            "description": "The generated app_secret of the platform",
            "secret": false
          }
        ],
        "actions": [
          {
            "category": "Application",
            "code": "deploy",
            "name": "Deploy",
            "description": "Deploy application code.",
            "engine": "shell",
            "script": "deploy.sh"
          }
        ],
        "deployment_count": 795,
        "running_count": 539,
        "platform_id": "44f636bb-e325-4e75-911d-e86003036176",
        "created_at": "2018-10-04T16:02:40Z",
        "updated_at": "2018-10-04T16:02:40Z",
        "created_by": "Batman",
        "updated_by": "Batman"
      }
    ]
    

    Responses

    Status Description Schema
    200 (OK) An array of PlatformVersion resources belonging to the Platform with the given id. Inline

    Response Schema

    Status Code 200

    Name Type Required Description
    anonymous [PlatformVersion] false No description
    id string(uuid) false Unique identifier for the resource.
    resource string false String representing the resource’s type. Resources of the same type share the same value.
    tag string(version) false The platform's tag version.
    build_number integer false The version build number. Auto incremented.
    status string false The version status.
    build_engine string false The version build engine.
    infrastructure object false Infrastructure data for the platform version.
    diagram string(url) false The platform version's diagram URL.
    build_time integer false Estimated building time in seconds.
    cost_estimation object false Cost estimation data for the platform version.
    monthly_price number(double) false Estimated cloud price per month in dollars.
    details string false Describes how the monthly price has been calculated.
    readme string false The platform version's Readme.
    available_regions [string] false Regions where the app can be deployed (values provided by cloud providers).
    inputs [object] false The platform version's inputs.
    code string(alpha-dash) false The code of the input.
    name string false The name of the input.
    description string false The description of the input.
    category string false Category section where the input will be displayed.
    type string false The type of the input.
    default string false The default value of the input.
    required boolean false Is it required?
    options [string] false The options of the input. Used only if the input type is "select"
    secret boolean false Weither the value should be shown or hide.
    outputs [object] false The platform version's outputs.
    category string false Category section where the output will be displayed.
    code string(alpha-dash) false The code of the output.
    name string false The name of the output.
    description string false The description of the output.
    secret boolean false Weither the value should be shown or hide.
    actions [object] false The platform version's actions.
    category string false The category of the action.
    code string(alpha-dash) false The code of the action.
    name string false The name of the action.
    description string false The description of the action.
    engine string false The engine to use to excecute the action.
    script string false The script to execute.
    deployment_count integer false The number of times this platform version has been deployed.
    running_count integer false The number of running instances of this particular version of the platform.
    platform_id string(uuid) false Unique identifier of the corresponding platform.
    created_at string(date-time) false Time at which the resource was created.
    updated_at string(date-time) false Time at which the resource was updated.
    created_by string(alpha-dash) false User who has created the resource.
    updated_by string(alpha-dash) false User who last modified the resource.

    Retrieve a version of a platform

    Code samples

    # You can also use wget
    curl -X GET https://api.artifakt.io/store/platforms/{platform_id}/versions/{platform_version_id} \
      -H 'Accept: application/json'
    
    
    
    <?php
    
    
    $headers = [
      'Accept' => 'application/json'
    ];
    
    
    $curl = curl_init();
    curl_setopt_array(
        $curl,
        [
            CURLOPT_URL => 'https://api.artifakt.io/store/platforms/{platform_id}/versions/{platform_version_id}',
            CURLOPT_HTTPHEADER => $headers,
            CURLOPT_RETURNTRANSFER => true
        ]
    );
    
    
    $result = curl_exec($curl);
    curl_close($curl);
    
    const fetch = require('node-fetch');
    
    
    const headers = {
      'Accept':'application/json'
    
    
    };
    
    
    fetch('https://api.artifakt.io/store/platforms/{platform_id}/versions/{platform_version_id}',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => 'application/json'
    }
    
    
    result = RestClient.get 'https://api.artifakt.io/store/platforms/{platform_id}/versions/{platform_version_id}',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': 'application/json'
    }
    
    
    r = requests.get('https://api.artifakt.io/store/platforms/{platform_id}/versions/{platform_version_id}', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("https://api.artifakt.io/store/platforms/{platform_id}/versions/{platform_version_id}");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /store/platforms/{platform_id}/versions/{platform_version_id}

    Returns a specific version of the platform with the given id.

    Example responses

    {
      "id": "6c15beaf-c581-4984-b48e-04b5e3e650a8",
      "resource": "platform_version",
      "tag": "1.3.0",
      "build_number": 1,
      "status": "waiting_for_processing",
      "build_engine": "terraform",
      "infrastructure": {
        "diagram": "https://images.artifakt.io/platforms/jack_bauer_magento_steroids/130.png",
        "build_time": 5,
        "cost_estimation": {
          "monthly_price": 234.52,
          "details": "5K GET requests per month - Less than 10 GB of storage - Deployed in Ireland."
        }
      },
      "readme": "This is an awesome readme explaining how your platform works.",
      "available_regions": [
        "us-west-1"
      ],
      "inputs": [
        {
          "code": "db_engine",
          "name": "Database Engine",
          "description": "Choose your database engine",
          "category": "Data",
          "type": "select",
          "default": "mysql",
          "required": false,
          "options": [
            "mysql",
            "postgresql"
          ],
          "secret": false
        }
      ],
      "outputs": [
        {
          "category": "URL",
          "code": "bo_url",
          "name": "Backoffice URL",
          "description": "The generated app_secret of the platform",
          "secret": false
        }
      ],
      "actions": [
        {
          "category": "Application",
          "code": "deploy",
          "name": "Deploy",
          "description": "Deploy application code.",
          "engine": "shell",
          "script": "deploy.sh"
        }
      ],
      "deployment_count": 795,
      "running_count": 539,
      "platform_id": "44f636bb-e325-4e75-911d-e86003036176",
      "created_at": "2018-10-04T16:02:40Z",
      "updated_at": "2018-10-04T16:02:40Z",
      "created_by": "Batman",
      "updated_by": "Batman"
    }
    

    Responses

    Status Description Schema
    200 (OK) The PlatformVersion resource. PlatformVersion

    Activity Feed

    The Activity Feed displays a list of recent activities you performed.

    List activities

    Code samples

    # You can also use wget
    curl -X GET https://api.artifakt.io/activities \
      -H 'Accept: application/json'
    
    
    
    <?php
    
    
    $headers = [
      'Accept' => 'application/json'
    ];
    
    
    $curl = curl_init();
    curl_setopt_array(
        $curl,
        [
            CURLOPT_URL => 'https://api.artifakt.io/activities',
            CURLOPT_HTTPHEADER => $headers,
            CURLOPT_RETURNTRANSFER => true
        ]
    );
    
    
    $result = curl_exec($curl);
    curl_close($curl);
    
    const fetch = require('node-fetch');
    
    
    const headers = {
      'Accept':'application/json'
    
    
    };
    
    
    fetch('https://api.artifakt.io/activities',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => 'application/json'
    }
    
    
    result = RestClient.get 'https://api.artifakt.io/activities',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': 'application/json'
    }
    
    
    r = requests.get('https://api.artifakt.io/activities', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("https://api.artifakt.io/activities");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /activities

    Returns a list of all activities you performed on Artifakt.

    Example responses

    [
      {
        "id": "2a11efb2-f060-4b4d-8517-76ac1823eaab",
        "resource": "activity",
        "who": "Superman",
        "what": "edit",
        "on_what": {
          "id": "971abc9f-ebb7-4a03-b098-da6577ebcdf7",
          "resource": "platform"
        },
        "diff": {
          "path": [
            "title"
          ],
          "old_value": "Former title",
          "new_value": "New title"
        },
        "created_at": "2018-10-04T16:02:40Z",
        "updated_at": "2018-10-04T16:02:40Z"
      }
    ]
    

    Responses

    Status Description Schema
    200 (OK) An array of Activity resources. Inline

    Response Schema

    Status Code 200

    Name Type Required Description
    anonymous [Activity] false No description
    id string(uuid) false Unique identifier for the resource.
    resource string false String representing the resource’s type. Resources of the same type share the same value.
    who string false The username of the user who performed an action on the resource.
    what string false Action performed on the resource.
    on_what object false Which resource has been modified.
    id string(uuid) false Unique identifier of the modified resource.
    resource string false String representing the modified resource’s type.
    diff object false Modifications performed on the resource.
    path [string] false Which field of the resource has been modified. If you modify the key of an object, "path" array will contain each element. For example, if you modify the "license" -> "name" value of a Platform, "path" will contain ["license", "name"].
    old_value string false The former value.
    new_value string false The new value.
    created_at string(date-time) false Time at which the resource has been created.
    updated_at string(date-time) false Time at which the resource has been updated.

    Authors

    An Author is a registered user that has already published one or several platform(s) on Artifakt's app store.

    Retrieve an author

    Code samples

    # You can also use wget
    curl -X GET https://api.artifakt.io/store/authors/{username} \
      -H 'Accept: application/json'
    
    
    
    <?php
    
    
    $headers = [
      'Accept' => 'application/json'
    ];
    
    
    $curl = curl_init();
    curl_setopt_array(
        $curl,
        [
            CURLOPT_URL => 'https://api.artifakt.io/store/authors/{username}',
            CURLOPT_HTTPHEADER => $headers,
            CURLOPT_RETURNTRANSFER => true
        ]
    );
    
    
    $result = curl_exec($curl);
    curl_close($curl);
    
    const fetch = require('node-fetch');
    
    
    const headers = {
      'Accept':'application/json'
    
    
    };
    
    
    fetch('https://api.artifakt.io/store/authors/{username}',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => 'application/json'
    }
    
    
    result = RestClient.get 'https://api.artifakt.io/store/authors/{username}',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': 'application/json'
    }
    
    
    r = requests.get('https://api.artifakt.io/store/authors/{username}', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("https://api.artifakt.io/store/authors/{username}");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /store/authors/{username}

    Returns the author with the given username.

    Example responses

    {
      "resource": "author",
      "username": "Superman",
      "firstname": "Clark",
      "lastname": "Kent",
      "image": "https://images.artifakt.io/authors/superman.png",
      "city": "Smallville",
      "country": "US",
      "job": "Reporter / Superhero",
      "company": "Daily Planet",
      "description": "Many years of experience fighting crime.",
      "socials": {
        "twitter": "https://twitter.com/therealclarkkent",
        "linkedin": "https://www.linkedin.com/therealclarkkent",
        "github": "https://github.com/therealclarkkent"
      }
    }
    

    Responses

    Status Description Schema
    200 (OK) The Author resource. Author

    List author's platforms

    Code samples

    # You can also use wget
    curl -X GET https://api.artifakt.io/store/authors/{username}/platforms \
      -H 'Accept: application/json'
    
    
    
    <?php
    
    
    $headers = [
      'Accept' => 'application/json'
    ];
    
    
    $curl = curl_init();
    curl_setopt_array(
        $curl,
        [
            CURLOPT_URL => 'https://api.artifakt.io/store/authors/{username}/platforms',
            CURLOPT_HTTPHEADER => $headers,
            CURLOPT_RETURNTRANSFER => true
        ]
    );
    
    
    $result = curl_exec($curl);
    curl_close($curl);
    
    const fetch = require('node-fetch');
    
    
    const headers = {
      'Accept':'application/json'
    
    
    };
    
    
    fetch('https://api.artifakt.io/store/authors/{username}/platforms',
    {
      method: 'GET',
    
    
      headers: headers
    })
    .then(function(res) {
        return res.json();
    }).then(function(body) {
        console.log(body);
    });
    
    
    
    require 'rest-client'
    require 'json'
    
    
    headers = {
      'Accept' => 'application/json'
    }
    
    
    result = RestClient.get 'https://api.artifakt.io/store/authors/{username}/platforms',
      params: {
      }, headers: headers
    
    
    p JSON.parse(result)
    
    
    
    import requests
    headers = {
      'Accept': 'application/json'
    }
    
    
    r = requests.get('https://api.artifakt.io/store/authors/{username}/platforms', params={
    
    
    }, headers = headers)
    
    
    print r.json()
    
    
    
    URL obj = new URL("https://api.artifakt.io/store/authors/{username}/platforms");
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();
    con.setRequestMethod("GET");
    int responseCode = con.getResponseCode();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(con.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = in.readLine()) != null) {
        response.append(inputLine);
    }
    in.close();
    System.out.println(response.toString());
    
    
    

    GET /store/authors/{username}/platforms

    Returns a list of all platforms belonging to an author.

    Example responses

    [
      {
        "id": "ad0d77e5-c414-444b-abf9-28acd68e0872",
        "resource": "platform",
        "name": "Magento on steroids",
        "slug": "magento_steroids",
        "workspace": "Superman",
        "path": "jack_bauer/magento_steroids",
        "description": "Magento fully optimized and ready for heavy load",
        "cloud_provider": "aws",
        "price": 0,
        "image": "https://images.artifakt.io/platforms/jack_bauer_magento_steroids.png",
        "category": "e_commerce",
        "tags": [
          "Optimized",
          "Secure"
        ],
        "deployment_count": 3987,
        "running_count": 421,
        "on_store": true,
        "created_at": "2018-10-04T16:02:40Z",
        "updated_at": "2018-10-04T16:02:40Z",
        "created_by": "Superman",
        "updated_by": "Superman"
      }
    ]
    

    Responses

    Status Description Schema
    200 (OK) An array of Platform resources. Inline

    Response Schema

    Status Code 200

    Name Type Required Description
    anonymous [Platform] false No description
    id string(uuid) false Unique identifier for the resource.
    resource string false String representing the resource’s type. Resources of the same type share the same value.
    name string true Name of your platform. Must be between 3 and 50 characters.
    slug string(alpha-dash) true Slug of your platform. Must be between 3 and 50 characters.
    workspace string(alpha-dash) true Workspace of your platform.
    path string false Combination of the workspace and the platform's name. This value is unique across the workspace.
    description string true Short description of your platform. Displayed in the platform list. 2000 characters maximum.
    cloud_provider string true Cloud provider for your platform.
    price number(double) false The platform's price.
    image string(url) true Image URL of your platform. Usually, the application's logo.
    category string true The category the platform belongs to.
    tags [string] false Tags added to your platform. Used for search and filters.
    deployment_count integer false The number of times this platform has been deployed.
    running_count integer false The number of running instances of this platform.
    on_store boolean false Set to "true" to publish the platform to the Artifakt Store.
    created_at string(date-time) false Time at which the resource has been created.
    updated_at string(date-time) false Time at which the resource has been updated.
    created_by string(alpha-dash) false User who has created the resource.
    updated_by string(alpha-dash) false User who last modified the resource.

    Activity

    {
      "id": "2a11efb2-f060-4b4d-8517-76ac1823eaab",
      "resource": "activity",
      "who": "Superman",
      "what": "edit",
      "on_what": {
        "id": "971abc9f-ebb7-4a03-b098-da6577ebcdf7",
        "resource": "platform"
      },
      "diff": {
        "path": [
          "title"
        ],
        "old_value": "Former title",
        "new_value": "New title"
      },
      "created_at": "2018-10-04T16:02:40Z",
      "updated_at": "2018-10-04T16:02:40Z"
    }
    
    PROPERTIES
    id string(uuid) Unique identifier for the resource.
    resource string String representing the resource’s type. Resources of the same type share the same value.
    who string The username of the user who performed an action on the resource.
    what string Action performed on the resource. [create, edit, delete]
    on_what object Which resource has been modified.
    id string(uuid) Unique identifier of the modified resource.
    resource string String representing the modified resource’s type.
    diff object Modifications performed on the resource.
    path [string] Which field of the resource has been modified. If you modify the key of an object, "path" array will contain each element. For example, if you modify the "license" -> "name" value of a Platform, "path" will contain ["license", "name"].
    old_value string The former value.
    new_value string The new value.
    created_at string(date-time) Time at which the resource has been created.
    updated_at string(date-time) Time at which the resource has been updated.

    Platform

    {
      "id": "ad0d77e5-c414-444b-abf9-28acd68e0872",
      "resource": "platform",
      "name": "Magento on steroids",
      "slug": "magento_steroids",
      "workspace": "Superman",
      "path": "jack_bauer/magento_steroids",
      "description": "Magento fully optimized and ready for heavy load",
      "cloud_provider": "aws",
      "price": 0,
      "image": "https://images.artifakt.io/platforms/jack_bauer_magento_steroids.png",
      "category": "e_commerce",
      "tags": [
        "Optimized",
        "Secure"
      ],
      "deployment_count": 3987,
      "running_count": 421,
      "on_store": true,
      "created_at": "2018-10-04T16:02:40Z",
      "updated_at": "2018-10-04T16:02:40Z",
      "created_by": "Superman",
      "updated_by": "Superman"
    }
    
    PROPERTIES
    id string(uuid) Unique identifier for the resource.
    resource string String representing the resource’s type. Resources of the same type share the same value.
    name Required string Name of your platform. Must be between 3 and 50 characters.
    slug Required string(alpha-dash) Slug of your platform. Must be between 3 and 50 characters.
    workspace Required string(alpha-dash) Workspace of your platform.
    path string Combination of the workspace and the platform's name. This value is unique across the workspace.
    description Required string Short description of your platform. Displayed in the platform list. 2000 characters maximum.
    cloud_provider Required string Cloud provider for your platform. [alicloud, aws, azure, custom, digital_ocean, gcp, ovh, scaleway]
    price number(double) The platform's price.
    image Required string(url) Image URL of your platform. Usually, the application's logo.
    category Required string The category the platform belongs to. [accounting, analytics, blog, bpm, bug_tracking, business_intelligence, cache, chat, cms, code_review, collaboration, continuous_integration, crm, database, developer_tools, document_management, e_commerce, ecm, e_learning, email, erp, forum, framework, games, human_resource_management, machine_learning, marketing_automation, media_sharing, middleware, mobile_development, online_classifieds, photo_sharing, poll_management, portal_server, project_management, quickstart, search, social_networking, testing, version_control, wiki, other]
    tags [string] Tags added to your platform. Used for search and filters.
    deployment_count integer The number of times this platform has been deployed.
    running_count integer The number of running instances of this platform.
    on_store boolean Set to "true" to publish the platform to the Artifakt Store.
    created_at string(date-time) Time at which the resource has been created.
    updated_at string(date-time) Time at which the resource has been updated.
    created_by string(alpha-dash) User who has created the resource.
    updated_by string(alpha-dash) User who last modified the resource.

    PlatformVersion

    {
      "id": "6c15beaf-c581-4984-b48e-04b5e3e650a8",
      "resource": "platform_version",
      "tag": "1.3.0",
      "build_number": 1,
      "status": "waiting_for_processing",
      "build_engine": "terraform",
      "infrastructure": {
        "diagram": "https://images.artifakt.io/platforms/jack_bauer_magento_steroids/130.png",
        "build_time": 5,
        "cost_estimation": {
          "monthly_price": 234.52,
          "details": "5K GET requests per month - Less than 10 GB of storage - Deployed in Ireland."
        }
      },
      "readme": "This is an awesome readme explaining how your platform works.",
      "available_regions": [
        "us-west-1"
      ],
      "inputs": [
        {
          "code": "db_engine",
          "name": "Database Engine",
          "description": "Choose your database engine",
          "category": "Data",
          "type": "select",
          "default": "mysql",
          "required": false,
          "options": [
            "mysql",
            "postgresql"
          ],
          "secret": false
        }
      ],
      "outputs": [
        {
          "category": "URL",
          "code": "bo_url",
          "name": "Backoffice URL",
          "description": "The generated app_secret of the platform",
          "secret": false
        }
      ],
      "actions": [
        {
          "category": "Application",
          "code": "deploy",
          "name": "Deploy",
          "description": "Deploy application code.",
          "engine": "shell",
          "script": "deploy.sh"
        }
      ],
      "deployment_count": 795,
      "running_count": 539,
      "platform_id": "44f636bb-e325-4e75-911d-e86003036176",
      "created_at": "2018-10-04T16:02:40Z",
      "updated_at": "2018-10-04T16:02:40Z",
      "created_by": "Batman",
      "updated_by": "Batman"
    }
    
    PROPERTIES
    id string(uuid) Unique identifier for the resource.
    resource string String representing the resource’s type. Resources of the same type share the same value.
    tag string(version) The platform's tag version.
    build_number integer The version build number. Auto incremented.
    status string The version status. [waiting_for_processing, processing, invalid_version, waiting_for_build, building, build_failed, pending_submission, waiting_for_review, under_review, rejected_by_developer, rejected, removed, approved]
    build_engine string The version build engine. [terraform]
    infrastructure object Infrastructure data for the platform version.
    diagram string(url) The platform version's diagram URL.
    build_time integer Estimated building time in seconds.
    cost_estimation object Cost estimation data for the platform version.
    monthly_price number(double) Estimated cloud price per month in dollars.
    details string Describes how the monthly price has been calculated.
    readme string The platform version's Readme.
    available_regions [string] Regions where the app can be deployed (values provided by cloud providers).
    inputs [object] The platform version's inputs.
    code string(alpha-dash) The code of the input.
    name string The name of the input.
    description string The description of the input.
    category string Category section where the input will be displayed.
    type string The type of the input. [text, textarea, select]
    default string The default value of the input.
    required boolean Is it required?
    options [string] The options of the input. Used only if the input type is "select"
    secret boolean Weither the value should be shown or hide.
    outputs [object] The platform version's outputs.
    category string Category section where the output will be displayed.
    code string(alpha-dash) The code of the output.
    name string The name of the output.
    description string The description of the output.
    secret boolean Weither the value should be shown or hide.
    actions [object] The platform version's actions.
    category string The category of the action.
    code string(alpha-dash) The code of the action.
    name string The name of the action.
    description string The description of the action.
    engine string The engine to use to excecute the action. [shell]
    script string The script to execute.
    deployment_count integer The number of times this platform version has been deployed.
    running_count integer The number of running instances of this particular version of the platform.
    platform_id string(uuid) Unique identifier of the corresponding platform.
    created_at string(date-time) Time at which the resource was created.
    updated_at string(date-time) Time at which the resource was updated.
    created_by string(alpha-dash) User who has created the resource.
    updated_by string(alpha-dash) User who last modified the resource.

    PlatformWithVersion

    {
      "id": "ad0d77e5-c414-444b-abf9-28acd68e0872"
    }
    
    PROPERTIES
    id string(uuid) Unique identifier for the resource.

    Author

    {
      "resource": "author",
      "username": "Superman",
      "firstname": "Clark",
      "lastname": "Kent",
      "image": "https://images.artifakt.io/authors/superman.png",
      "city": "Smallville",
      "country": "US",
      "job": "Reporter / Superhero",
      "company": "Daily Planet",
      "description": "Many years of experience fighting crime.",
      "socials": {
        "twitter": "https://twitter.com/therealclarkkent",
        "linkedin": "https://www.linkedin.com/therealclarkkent",
        "github": "https://github.com/therealclarkkent"
      }
    }
    
    PROPERTIES
    resource string String representing the resource’s type. Resources of the same type share the same value.
    username string(alpha-dash) The author's username. It's unique and only accepts alphanumeric characters, as well as hyphens and underscores. Must be between 3 and 64 characters.
    firstname string The author's firstname.
    lastname string The author's lastname.
    image string(url) The author's profile picture.
    city string The author's city.
    country string The author's two-letter country code. See ISO 3166-1 alpha-2.
    job string The author's current job.
    company string The author's company.
    description string The author's bio.
    socials object The author's social accounts.
    twitter string(url) The author's Twitter account URL.
    linkedin string(url) The author's LinkedIn account URL.
    github string(url) The author's GitHub account URL.

    Provider

    {
      "id": "b9c9e3d9-21a4-4b91-853a-6e52a52b65fa",
      "resource": "provider",
      "title": "dev",
      "type": "aws",
      "credentials": [
        {
          "name": "access_key",
          "value": "RP0KH4NXMZO29XNB1W5X"
        }
      ],
      "managed_account": true,
      "linked_environments": [
        {
          "id": "e4073be7-c4c8-4b6f-8cdc-c403926082b9",
          "resource": "environment",
          "name": "dev",
          "inputs": [
            {
              "name": "db_engine",
              "value": "mysql"
            }
          ],
          "outputs": [
            {
              "name": "front_url",
              "value": "https://mysite.com"
            }
          ],
          "cloud_provider": "aws",
          "region": "eu-west-1",
          "status": "building",
          "cost_estimation": {
            "monthly_price": 234.52,
            "details": "5K GET requests per month - Less than 10 GB of storage - Deployed in Ireland."
          },
          "provider_id": "b7f923d7-e2d7-4048-9984-e004f41050f6",
          "platform_version_id": "7dbcc73e-7a59-4671-9329-479b03029fa7",
          "platform": {
            "id": "ad0d77e5-c414-444b-abf9-28acd68e0872"
          },
          "created_at": "2018-10-04T16:02:40Z",
          "updated_at": "2018-10-04T16:02:40Z",
          "created_by": "Spiderman",
          "updated_by": "Spiderman"
        }
      ],
      "linked_environments_count": 1,
      "created_at": "2018-10-04T16:02:40Z",
      "updated_at": "2018-10-04T16:02:40Z",
      "credentials_updated_at": "2018-10-04T16:02:40Z",
      "created_by": "Batman",
      "updated_by": "Batman"
    }
    
    PROPERTIES
    id string(uuid) Unique identifier for the resource.
    resource string String representing the resource’s type. Resources of the same type share the same value.
    title Required string(alpha-dash) Name of your environment. Must be between 3 and 64 characters.
    type string Provider used for the provider. [alicloud, aws, azure, digital_ocean, gcp, ovh, vultr]
    credentials Required [object] Cloud account credentials.
    name string The param name.
    value string The param value.
    managed_account boolean Whether or not the provider was created through Artifakt.
    linked_environments [Environment] Environments belonging to the given provider.
    linked_environments_count integer Number of linked environments
    created_at string(date-time) Time at which the ressource was created.
    updated_at string(date-time) Time at which the resource was updated.
    credentials_updated_at string(date-time) Time at which the credentials were updated for the last time.
    created_by string(alpha-dash) User who has created the resource.
    updated_by string(alpha-dash) User who last modified the resource.

    Environment

    {
      "id": "e4073be7-c4c8-4b6f-8cdc-c403926082b9",
      "resource": "environment",
      "name": "dev",
      "inputs": [
        {
          "name": "db_engine",
          "value": "mysql"
        }
      ],
      "outputs": [
        {
          "name": "front_url",
          "value": "https://mysite.com"
        }
      ],
      "cloud_provider": "aws",
      "region": "eu-west-1",
      "status": "building",
      "cost_estimation": {
        "monthly_price": 234.52,
        "details": "5K GET requests per month - Less than 10 GB of storage - Deployed in Ireland."
      },
      "provider_id": "b7f923d7-e2d7-4048-9984-e004f41050f6",
      "platform_version_id": "7dbcc73e-7a59-4671-9329-479b03029fa7",
      "platform": {
        "id": "ad0d77e5-c414-444b-abf9-28acd68e0872"
      },
      "created_at": "2018-10-04T16:02:40Z",
      "updated_at": "2018-10-04T16:02:40Z",
      "created_by": "Spiderman",
      "updated_by": "Spiderman"
    }
    
    PROPERTIES
    id string(uuid) Unique identifier for the ressource.
    resource string String representing the ressource’s type. Ressources of the same type share the same value.
    name Required string(alpha-dash) Name of your environment. Must be between 3 and 64 characters.
    inputs [object] Input values (params) needed for the deployment.
    name string The name of the input.
    value string The value of the input.
    outputs [object] Output values (params) needed for the deployment.
    name string The name of the output.
    value string The value of the output.
    cloud_provider string Cloud provider chosed for the deployment.
    region Required string The region where the application will be deployed.
    status string The current status of the environment. [stopped, building, destroying, updating, built, outdated, build_failed, destroy_failed, update_failed]
    cost_estimation object Cost estimation data for the platform version.
    monthly_price number(double) Estimated cloud price per month in dollars.
    details string Describes how the monthly price has been calculated.
    provider_id Required string The Cloud account unique identifier used for the deployment.
    platform_version_id Required string Unique identifier of the PlatformVersion (write only).
    platform PlatformWithVersion No description
    created_at string(date-time) Time at which the ressource was created.
    updated_at string(date-time) Time at which the resource was updated.
    created_by string(alpha-dash) User who has created the resource.
    updated_by string(alpha-dash) User who last modified the resource.

    Job

    {
      "id": "edc91f22-5e49-48fa-8ef1-81087297c416",
      "resource": "job",
      "action": "deploy",
      "job_id": "ee56f7f5-e138-4373-87dd-935520ae35dc",
      "type": "build",
      "status": "running",
      "description": "build",
      "environment_id": "2ba4d015-f358-4312-aa40-ab47658cbf83",
      "environment_name": "dev",
      "raw_inputs": "[{\"name\":\"AWS_ACCESS_KEY_ID\", \"value\":\"xxxx\"},{\"name\":\"AWS_SECRET_ACCESS_KEY\",\"value\":\"xxxx\"},{\"name\":\"GIT_URL\",\"value\":\"https://github.com/organiztion/repo.git\"}]",
      "raw_outputs": "[{\"name\":\"s3_url\", \"value\":\"xxxx\"}]",
      "created_at": "2018-10-04T16:02:40Z",
      "updated_at": "2018-10-04T16:02:40Z",
      "started_at": "2018-10-04T16:02:40Z",
      "finished_at": "2018-10-04T16:02:40Z",
      "created_by": "Superman",
      "updated_by": "Superman"
    }
    
    PROPERTIES
    id string(uuid) Unique identifier for the ressource.
    resource string String representing the ressource’s type. Ressources of the same type share the same value.
    action string The job action to perform. Only required for job type "run".
    job_id string Job id to retry. Only required for job type "retry".
    type Required string The job type to be performed. [build, destroy, update, run, retry]
    status string The current status of the job. [pending, running, success, error]
    description string The job description.
    environment_id string Unique identifier of the environment modified by the job.
    environment_name string(alpha-dash) Name of your environment. Must be between 3 and 64 characters.
    raw_inputs string Inputs provided by the user, JSON encoded.
    raw_outputs string Outputs displayed after Job completion, JSON encoded.
    created_at string(date-time) Time at which the ressource was created.
    updated_at string(date-time) Time at which the resource was updated.
    started_at string(date-time) Time at which the resource was started by the engine.
    finished_at string(date-time) Time at which the resource was finished by the engine.
    created_by string(alpha-dash) User who has created the resource.
    updated_by string(alpha-dash) User who last modified the resource.

    Log

    {
      "timestamp": 1526659019016,
      "message": "ERROR: GIT_URL must be defined",
      "ingestionTime": 1526659019064
    }
    
    PROPERTIES
    timestamp integer The time the event occurred, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC.
    message string The data contained in the log event.
    ingestionTime integer The time the event was ingested, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC.

    User

    {
      "id": "b77b3f39-39fb-411b-a597-ebbf2ceeb97a",
      "resource": "user",
      "username": "Batman",
      "email": "bruce@realwaynecorp.com",
      "firstname": "Bruce",
      "lastname": "Wayne",
      "image": "https://images.artifakt.io/users/batman.png",
      "city": "Gotham City",
      "country": "US",
      "job": "Chairman",
      "company": "WayneCorp",
      "description": "Working hard everyday to make Gotham City great again!",
      "socials": {
        "twitter": "https://twitter.com/therealbrucewayne",
        "linkedin": "https://www.linkedin.com/therealbrucewayne",
        "github": "https://github.com/therealbrucewayne"
      },
      "date_of_birth": "2018-10-04",
      "created_at": "2018-10-04T16:02:40Z",
      "updated_at": "2018-10-04T16:02:40Z"
    }
    
    PROPERTIES
    id string(uuid) Unique identifier for the resource.
    resource string String representing the resource’s type. Resources of the same type share the same value.
    username Required string(alpha-dash) The user’s username. It's unique and only accepts alphanumeric characters, as well as hyphens and underscores. Must be between 3 and 64 characters.
    email Required string(email) The user’s email address. It's unique and must respect standard email format.
    firstname string The user’s firstname.
    lastname string The user’s lastname.
    image string(url) The user's profile picture.
    city string The user's city.
    country string The user's two-letter country code. See ISO 3166-1 alpha-2.
    job string The user’s current job.
    company string The user’s company.
    description string The user’s bio.
    socials object The user's social accounts.
    twitter string(url) The user’s Twitter account URL.
    linkedin string(url) The user’s LinkedIn account URL.
    github string(url) The user’s GitHub account URL.
    date_of_birth string(date) The user's date of birth.
    created_at string(date-time) Time at which the resource was created.
    updated_at string(date-time) Time at which the resource was updated.

    ApiKey

    {
      "id": "b77b3f39-39fb-411b-a597-ebbf2ceeb97a",
      "resource": "apikey",
      "public_key": "3a54acdfb828eb5a",
      "private_key": "b31648bf8e5ea11e",
      "created_at": "2018-10-04T16:02:40Z",
      "updated_at": "2018-10-04T16:02:40Z",
      "created_by": "Superman",
      "updated_by": "Superman"
    }
    
    PROPERTIES
    id string(uuid) Unique identifier for the resource.
    resource string String representing the resource’s type. Resources of the same type share the same value.
    public_key string Public key
    private_key string Private key
    created_at string(date-time) Time at which the resource was created.
    updated_at string(date-time) Time at which the resource was updated.
    created_by string(alpha-dash) User who has created the resource.
    updated_by string(alpha-dash) User who last modified the resource.
    API version: v0.0.3