HTTP GET

/ redhawk / rest / domains / DOMAIN_NAME / applications

{
    "applications": [
        /* List of waveform IDs that are launched */
        {
            "name": "waveformName_020_094846958", 
            "id":   "DCE:d6ca6b70-033f-425b-a88a-a407efaba0ef:waveformName_020_094846958_1"
        }
    ], 
    "waveforms": [
        /* List of waveforms that are installed/available */
        {
            "name": "waveformName",
            "sad":  "/waveforms/waveformName/waveformName.sad.xml"
        }
    ]
}

One can index into the applications list using one of the provided id.

HTTP POST

/ redhawk / rest / domains / DOMAIN_NAME / applications

{
    "name":     "waveformName",
    "started":  true            /* OPTIONAL */
}

Posting this structure, the Waveform named name will result in an attempt to launch a Waveform. If started is provided and true, the server will attempt to start the Waveform as well.

The server will respond with:

{
    "launched":     "newApplicationId",
    "applications": [
        /* List of all running applications */
    ]
}
HTTP POST HTTP PUT

/ redhawk / rest / domains / DOMAIN_NAME / applications / APPLICATION_ID

{
    "started":  true
}

Either POST or PUT this structure; the Waveform at the URL will attempt to start or stop (if started is false).

The server will respond with:

{
    "id":       "applicationId",
    "started":  true                /* or false */
}
HTTP DELETE

/ redhawk / rest / domains / DOMAIN_NAME / applications / APPLICATION_ID

The application at this URL will be released using this method.

The server will respond with:

{
    "released":     "applicationId",
    "applications": [
        /* List of all running applications */
    ]
}
HTTP GET

/ redhawk / rest / domains / DOMAIN_NAME / applications / APPLICATION_ID

{
    "id":           "applicationId",
    "name":         "waveformName",
    "started":      true,           /* or false */
    "components": [
        {
            "name": "Component1", 
            "id": "Component1_1:waveformName_020_094846958_1"
        }, 
        {
            "name": "Component2", 
            "id": "Component2_1:waveformName_020_094846958_1"
        }
    ],
    "properties": [], /* Unused at this time */
    "ports": [
        /* List of port structures for any marked External. */
    ]
}

The components list can be indexed into using the id field (see Components).