F5 Application Services Templates API (1.24.0)

Download OpenAPI specification:Download

License: Apache 2.0

F5 Application Services Templates (FAST)

This is the documentation for the FAST templating extension. This document catalogs the API endpoints exposed by the extension. Note that the path for all endpoints must be preceded by /mgmt/shared/fast.

Application Management

These are endpoints related to managing the lifecycle of your Applications. These endpoints help you create, edit, and query the Applications managed by FAST.

Task Tracking

When an Application is created, it may not happen instantly. A Task is run to deploy the AS3 declaration. These endpoints are for retrieving information about currently running and previously run Tasks. These endpoints will report the success or failure of a particular deployment action, such as creating or editing an Application.

Package Management

This is the API for loading and unloading new Template Sets into the system.

Template Management

This is the API for Querying Templates that are loaded into the system.

FAST Extension

These endpoints are related to management of the FAST Extension itself, for getting debug information or software version information.

Application Management

Fetch List of FAST Applications

Responds with a list of Applications that are currently deployed in the system.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create one or more Applications from Templates

This is the main method to deploy a templated Application. The parameters posted will be used to render a Template, and that Template will get posted to AS3. The call to AS3 may be async, so this endpoint must also be async. A Task will be returned upon successful parameter submission that can track the progress of the deployment.

Request Body schema: application/json

An application definition, including the name of the template to run and the parameters needed to render and post the output.

Array
One of
name
required
string

Must be valid Template in the system.

parameters
required
object (ParametersDefinition)

Object must conform to specified template's schema.

allowOverwrite
boolean
Default: true

Do not error if an Application with the same name already exists in the tenant.

Responses

Request samples

Content type
application/json
[
  • {
    }
]

Response samples

Content type
application/json
{
  • "_links": {
    },
  • "code": 202,
  • "requestId": 3,
  • "message": [
    ]
}

Create or update Applications from Templates.

This is method to deploy a templated Application. This will be used to render a Template, and that Template will get posted to AS3. The call to AS3 may be async, so this endpoint must also be async. A Task will be returned upon successful parameter submission that can track the progress of the deployment.

Request Body schema: application/json

An application definition, including the name of the template to run and the parameters needed to render and post the output.

Array
One of
name
required
string

Must be valid Template in the system.

parameters
required
object (ParametersDefinition)

Object must conform to specified template's schema.

allowOverwrite
boolean
Default: true

Do not error if an Application with the same name already exists in the tenant.

Responses

Request samples

Content type
application/json
[
  • {
    }
]

Response samples

Content type
application/json
{
  • "_links": {
    },
  • "code": 202,
  • "requestId": 3,
  • "message": [
    ]
}

Delete FAST Applications

Delete multiple FAST managed Applications (all if no body is provided).

Request Body schema: application/json
Array
string

Application paths (e.g., 'tenant/app')

Responses

Request samples

Content type
application/json
[
  • "tenant/app"
]

Response samples

Content type
application/json
{
  • "_links": {
    },
  • "requestId": 3,
  • "code": 202,
  • "message": [
    ]
}

Fetch an individual Application

Fetches the AS3 Application class for the given FAST Application.

path Parameters
appName
required
string.*

The name of the app to retrieve.

tenantName
required
string.*

The tenant the app belongs to.

Responses

Response samples

Content type
application/json
{
  • "class": "string"
}

Update Application parameters

Update an existing, deployed FAST Application with the supplied parameters. Existing parameter values from the deployed Application will be used as defaults for any missing parameter values.

path Parameters
appName
required
string.*

The name of the app to retrieve.

tenantName
required
string.*

The tenant the app belongs to.

Request Body schema: application/json
parameters
required
object (ParametersDefinition)

Object must conform to specified template's schema.

Responses

Request samples

Content type
application/json
{
  • "virtualAddresses": [
    ]
}

Response samples

Content type
application/json
{
  • "_links": {
    },
  • "code": 202,
  • "requestId": 3,
  • "message": [
    ]
}

Delete Application

Delete an individual Application.

path Parameters
appName
required
string.*

The name of the app to retrieve.

tenantName
required
string.*

The tenant the app belongs to.

Responses

Response samples

Content type
application/json
{
  • "_links": {
    },
  • "requestId": 3,
  • "code": 202,
  • "message": [
    ]
}

Render one or more Applications from Templates

Render Application Templates without posting them to AS3 NOTE - The rendered Template results are not stitched with other AS3 Applications on the box. In other words, posting these results to AS3 directly can result in data loss.

Request Body schema: application/json

An Application definition, including the name of the Template to render and the Template parameters.

Array
One of
name
required
string

Must be valid Template in the system.

parameters
required
object (ParametersDefinition)

Object must conform to specified template's schema.

allowOverwrite
boolean
Default: true

Do not error if an Application with the same name already exists in the tenant.

Responses

Request samples

Content type
application/json
[
  • {
    }
]

Response samples

Content type
application/json
{
  • "_links": {
    },
  • "code": 200,
  • "message": [
    ]
}

Task Tracking

Get Tasks

List all running and completed Tasks.

Responses

Response samples

Content type
application/json
[
  • {
    },
  • {
    },
  • {
    },
  • {
    }
]

Get information about a specific Task

Get detailed information about a specific Task. Tasks are tracked on a best effort basis, an interruption in service to the iControl LX platform may result in lost results.

path Parameters
taskId
required
string (uuid) = 36 characters ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]...
Example: 86657e15-439d-4cef-97bc-58a6c119976b

The ID of the Task to retrieve.

Responses

Response samples

Content type
application/json
{
  • "id": "ff70c2c0-af21-44c8-8fec-18e2d82eabf0",
  • "name": "examples/simple_udp_defaults",
  • "parameters": { },
  • "code": 200,
  • "message": "success",
  • "tenant": "tenant",
  • "application": "app",
  • "timestamp": "2019-08-24T14:15:22Z",
  • "_links": {
    }
}

Template Management

List all Templates

List all installed Templates.

Responses

Response samples

Content type
application/json
[
  • "example/httpTemplate",
  • "example/httpsTemplate"
]

Get specified Template

Get the Template by Template name and Template Set name.

path Parameters
templateName
required
string.*

The name of the Template to retrieve.

setName
required
string.*

The name of Template Set the Template belongs to.

Responses

Response samples

Content type
application/json
{
  • "title": "Simple UDP Application",
  • "description": "** FOR DEMONSTRATION PURPOSES--NOT INTENDED FOR USE IN PRODUCTION ** This Template is an example of how one might build a simple UDP Application with load balancing. It allows the user to provide a virtual IP address and port along with a list of UDP server addresses. The user-supplied values are inserted when the Template is rendered, yielding an AS3 declaration suitable for submission to BIG-IP.",
  • "definitions": {
    },
  • "target": "as3",
  • "templateText": "{\n \"class\": \"ADC\",\n \"schemaVersion\": \"3.0.0\",\n \"{{tenant_name}}\": {\n \"class\": \"Tenant\",\n \"{{application_name}}\": {\n \"class\": \"Application\",\n \"template\": \"udp\",\n \"serviceMain\": {\n \"class\": \"Service_UDP\",\n \"virtualAddresses\": [\n \"{{virtual_address}}\"\n ],\n \"virtualPort\": {{virtual_port:types:port}},\n \"pool\": \"{{application_name}}_Pool1\"\n },\n \"{{application_name}}_Pool1\": {\n \"class\": \"Pool\",\n \"monitors\": [\n \"icmp\"\n ],\n \"members\": [\n {\n \"serverAddresses\": {{server_addresses::array}},\n \"servicePort\": {{service_port:types:port}}\n }\n ]\n }\n }\n }\n}\n",
  • "defaultParameters": {
    },
  • "sourceType": "YAML",
  • "sourceText": "# Simple UDP Template with parameters defined outside of the Template\ntitle: Simple UDP Application\ndescription: \"** FOR DEMONSTRATION PURPOSES--NOT INTENDED FOR USE IN PRODUCTION ** This Template is an example of how one might build a simple UDP Application with load balancing. It allows the user to provide a virtual IP address and port along with a list of UDP server addresses. The user-supplied values are inserted when the Template is rendered, yielding an AS3 declaration suitable for submission to BIG-IP.\"\nparameters:\n tenant_name: foo\n application_name: bar\n virtual_address: 192.0.2.11\n virtual_port: 5555\n server_addresses:\n - 192.0.2.22\n service_port: 5555\ntemplate: |\n {\n \"class\": \"ADC\",\n \"schemaVersion\": \"3.0.0\",\n \"{{tenant_name}}\": {\n \"class\": \"Tenant\",\n \"{{application_name}}\": {\n \"class\": \"Application\",\n \"template\": \"udp\",\n \"serviceMain\": {\n \"class\": \"Service_UDP\",\n \"virtualAddresses\": [\n \"{{virtual_address}}\"\n ],\n \"virtualPort\": {{virtual_port:types:port}},\n \"pool\": \"{{application_name}}_Pool1\"\n },\n \"{{application_name}}_Pool1\": {\n \"class\": \"Pool\",\n \"monitors\": [\n \"icmp\"\n ],\n \"members\": [\n {\n \"serverAddresses\": {{server_addresses::array}},\n \"servicePort\": {{service_port:types:port}}\n }\n ]\n }\n }\n }\n }\n",
  • "sourceHash": "a52a2f6cd3d03f7cdec09248fd59fc75b30fa14fa067a137628e7e6ee0b43b4f",
  • "contentType": "text/plain",
  • "httpForward": null
}

Get Template Sets

List all installed Template Sets.

query Parameters
showDisabled
boolean

Whether to show only disabled Template Sets.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Install Template Set

Installs a new template set from a variety of sources

Request Body schema: application/json
One of
name
required
string (Template Set name)

The name of the Template Set to install (excluding the .zip extension).

Responses

Request samples

Content type
application/json
Example
{
  • "name": "new_template_set"
}

Response samples

Content type
application/json
{
  • "code": 200,
  • "message": "success",
  • "requestId": 3,
  • "_links": {
    }
}

Install Template Set

Installs a new template set or updates existent templateset from a variety of sources

Request Body schema: application/json
One of
name
required
string (Template Set name)

The name of the Template Set to install (excluding the .zip extension).

Responses

Request samples

Content type
application/json
Example
{
  • "name": "new_template_set"
}

Response samples

Content type
application/json
{
  • "code": 200,
  • "message": "success",
  • "requestId": 3,
  • "_links": {
    }
}

Delete Template Sets

Delete all installed Template Sets.

Responses

Response samples

Content type
application/json
{
  • "code": 200,
  • "message": "success",
  • "requestId": 3,
  • "_links": {
    }
}

Get Template information

Get information of Template Set with {setName}.

path Parameters
setName
required
string.*

The name of the Template Set.

Responses

Response samples

Content type
application/json
{
  • "name": "examples",
  • "hash": "b4e574f5692532a03deb40b78599a7913ff63b2a31897a7b0168d99246d64715",
  • "supported": false,
  • "templates": [
    ],
  • "schemas": [
    ],
  • "dataFiles": [
    ],
  • "gitHubRepo": "org/templateset",
  • "gitLabRepo": "org/templateset",
  • "gitSubDir": "org-templates",
  • "gitRef": "master",
  • "unprotected": true,
  • "enabled": true
}

Delete specified Template Set

Deletes an installed Template Set specified by its name.

path Parameters
setName
required
string.*

The name of the Template Set.

Responses

Response samples

Content type
application/json
{
  • "code": 200,
  • "message": "success",
  • "requestId": 3,
  • "_links": {
    }
}

FAST Extension

Get FAST Settings

Get an object that represents the current FAST configuration.

Responses

Response samples

Content type
application/json
{
  • "deletedTemplateSets": [ ],
  • "enableIpam": false,
  • "ipamProviders": [ ],
  • "disableDeclarationCache": false,
  • "enable_telemetry": false,
  • "tsIpAddress": "255.255.255.254",
  • "log_asm": false,
  • "log_afm": false
}

Delete/Reset FAST Settings

Reset FAST configuration to defaults.

Responses

Response samples

Content type
application/json
{
  • "code": 200,
  • "message": "success",
  • "requestId": 3,
  • "_links": {
    }
}

Replace FAST settings (Full overwrite)

Replace the full FAST configuration with supplied body.

Responses

Response samples

Content type
application/json
{
  • "code": 200,
  • "message": "success",
  • "requestId": 3,
  • "_links": {
    }
}

Replace FAST settings (Full overwrite)

Replace the full FAST configuration with supplied body.

Responses

Response samples

Content type
application/json
{
  • "code": 200,
  • "message": "success",
  • "requestId": 3,
  • "_links": {
    }
}

Update existing FAST Settings

Update existing FAST configuration with the supplied body. Allows updates of individual properties.

Responses

Response samples

Content type
application/json
{
  • "code": 200,
  • "message": "success",
  • "requestId": 3,
  • "_links": {
    }
}

Get settings schema

Get JSON schema for the /settings endpoint.

Responses

Response samples

Content type
application/json
{
  • "type": "object",
  • "properties": {
    },
  • "required": [
    ],
  • "dependencies": {
    },
  • "title": "FAST Settings",
  • "description": "",
  • "definitions": { },
}

Information about the FAST Extension

This endpoint returns data pertaining to the version of FAST currently in use, as well as loaded Template Sets and other information useful for debug. This endpoint is recommended for use when verifying that FAST is installed and ready to use.

Responses

Response samples

Content type
application/json
{
  • "version": "1.0.0",
  • "as3Info": { },
  • "installedTemplates": [
    ],
  • "config": {
    }
}

Offbox Templatesets Management

Provides a set of methods intended for managing Offbox Templatesets

Intended for managing Offbox Templatesets.

Request Body schema: application/json

An object which defines methods to execute for Offbox Templates management

required
Array of objects

a list of methods for Offbox Templates management

Responses

Request samples

Content type
application/json
{
  • "methods": [
    ]
}

Response samples

Content type
application/json
{
  • "_links": {
    },
  • "code": 200,
  • "methods": [
    ]
}