Applications

Overview

An application is a collection of config objects in BIG-IP which can be created and managed by BIG-IQ. The static application state in the BIG-IQ describes on which template the application is based and the device or SSG where the application is created and deployed. The application state also contains the template resources users provided when executing the apply-template task to create the application.

Note that this document describes the API to retrieve an application state that was created on BIG-IQ. To retrieve the actual config objects in the application, users can query the working-config using the application’s name. For example, by doing a GET to https://{ipaddress}/mgmt/cm/global/config-sets?$filter=configSetName eq 'name of the your app' .

REST Endpoint: /mgmt/cm/global/config-sets

Requests

GET /mgmt/cm/global/config-sets/<id>

Request Parameters

None

Query Parameters

None

Response

HTTP/1.1 200 OK

Name Type Description
configSetName string The name of the application
description string A description of the application
securityTroubleshootingMode boolean True if security troubleshooting is enabled for this configSet, false otherwise
subPath string The BIG-IP folder in which the configuration in the application is placed
partition string The BIG-IP partition in which the configuration in this application is placed
deviceReference reference BIG-IQ device on which this application is deployed
     link string URI link of the reference.
templateReference reference Template used to create or edit this application
     link string URI link of the reference.
createDateTime string The date and time that the application was created
lastDeploymentTime string The date and time that the application configuration was deployed to a device or SSG
lastConfigTime string The date and time that the application configuration was last changed
domains array_of_objects List of the application domain names
     domainName string Application domain name
protectionMode string Application protection mode
protectionModeTime number The time protectionMode needs to be recalculated
ssgReference reference SSG that was used to create and deploy this application
     link string URI link of the reference.
alertRuleName string Name of the health alert that was created for this application
appDeployConfigTaskReference reference The app deploy task. This is set when the deployment task fails and the application is in FAILED_DEPLOY status
     link string URI link of the reference.
status string Current status of the application
analyticsMode string Application analytics mode, values are ‘NORMAL’ or ‘ENHANCED’ to collect more extensive metrics for troubleshooting
resources map_between_string_and_array_of_objects Map between resource name and a list of objects that detail how to create/update the resource. If the resource has a subcollection, the object can also define a subcollectionResources field to detail the subcollection resources to create with the parent resource
     name string A string literal provided by user to represent the resource name, this resource name must be defined in the template.
          parameters map_between_string_and_string Map between parameter name and parameter value that defines the parameters users want to modify from the prototype of the resource during application creation/update. Users are only allowed to modify parameters that already defined in the template’s parameters field.
          parametersToRemove array_of_strings A list of parameter names that defines parameters need to be removed from the prototype of the resource during application creation/update. Users are only allowed to remove parameters that already defined in the template’s parameters field.
          subcollectionResources map_of_string_and_array_of_objects A map between subcollection resource name and a list of objects that detail how to create/update the subcollection resource. This field only applies when the resource has a subcollection.
               name string A string literal provided by user to represent the subcollection resource name. This subcollection resource name must be defined in the template.
                    parameters map_between_string_and_string Map between parameter name and parameter value that define the parameters users want to modify from the prototype of the subcollection resource during application creation/update. Users are only allowed to modify parameters that already defined in the template’s subcollection’s parameters field.
                    parametersToRemove array_of_strings A list of parameter names that defines parameters need to be removed from the prototype of the subcollection resource during application creation/update. Users are only allowed to remove parameters that already defined in the template’s subcollection’s parameters field.
awsLoadBalancer object AWS load balancer used as tier1 for the application deployment.
     name string Name of the AWS load balancer
     description string Description of the AWS load balancer
     listeners array_of_objects Listeners of the AWS load balancer
          loadBalancerPort number Port of the AWS load balancer
          loadBalancerProtocol string Protocol of the AWS load balancer
          instancePort number Instance Port
          instanceProtocol string Instance protocol
          sslCipher string SSL Cipher. Use this field only when HTTPS or SSL is selected for loadBalancerProtocol.
          sslCertificate string The Amazon Resource Name (ARN) that represents a specific SSL Certificate. Use this field only when HTTPS or SSL is selected for loadBalancerProtocol.
azureLoadBalancer object Azure load balancer used as tier1 for the application deployment.
     appName string Name of the app deployed
     listeners array_of_objects Listeners of the Azure load balancer
          loadBalancerPort number Port of the Azure load balancer
          instancePort number Instance Port

Error Response

HTTP/1.1 400 Bad Request

This response status is related to error conditions. Detailed error message will be in the response.

HTTP/1.1 401 Unauthorized

This response happens when access is denied due to invalid credentials (no Permission).

HTTP/1.1 404 Not Found

This response happens when public URI path not registered.

Permissions

Role Allow
Application_Editor Yes
Application_Viewer Yes
Application_Manager Yes

Examples

Get an application

GET /mgmt/cm/global/config-sets/<id>

Response

HTTP/1.1 200 OK
{
    "items": [
        {
            "configSetName": "MyApplication",
            "description": "An internal office map web app",
            "securityTroubleshootingMode": false,
            "subPath": "my_app",
            "partition": "Common",
            "templateReference": {
                "link": "https://localhost/mgmt/cm/global/templates/66f6181b-cb4c-3f4c-938f-bc804a036db6"
            },
            "createDateTime": "2018-05-02T19:26:15.230Z",
            "lastDeploymentTime": "2018-05-02T21:48:00.444Z",
            "lastConfigTime": "2018-05-02T21:46:11.526Z",
            "protectionMode": "Transparent",
            "protectionModeTime": 1525520040,
            "ssgReference": {
                "link": "https://localhost/mgmt/cm/cloud/service-scaling-groups/140b23e5-78fd-3c79-9dfd-42ce3546099a"
            },
            "alertRuleName": "MyApplication-health",
            "status": "CREATED",
            "analyticsMode": "NORMAL",
            "resources": {
                "MyVirtualServerResource_1": [
                    {
                        "parameters": {
                            "name": "vs",
                            "destinationAddress": "10.12.1.122",
                            "mask": "255.255.255.255",
                            "destinationPort": "23"
                        },
                        "parametersToRemove": [],
                        "subcollectionResources": {
                            "HttpAppHttpProfileReferenceResource_1": [
                                {
                                    "parameters": {},
                                    "parametersToRemove": []
                                }
                            ],
                            "HttpAppTcpReferenceResource_1": [
                                {
                                    "parameters": {},
                                    "parametersToRemove": []
                                }
                            ]
                        }
                    }
                ],
                "MyPoolResource_1": [
                    {
                        "parameters": {
                            "name": "pool"
                        },
                        "parametersToRemove": [],
                        "subcollectionResources": {
                            "MyPoolMemberResource_1": [
                                {
                                    "parameters": {
                                        "port": 1,
                                        "nodeReference": {
                                            "link": "#/resources/MyNodeResource_1/23.2.1.11",
                                            "fullPath": "# 23.2.1.11"
                                        }
                                    },
                                    "parametersToRemove": []
                                }
                            ]
                        }
                    }
                ],
                "MyNodeResource_1": [
                    {
                        "parameters": {
                            "name": "23.2.1.11",
                            "address": "23.2.1.11"
                        },
                        "parametersToRemove": []
                    }
                ]
            }
            "lastUpdateMicros": 1518743088884807
        },
        {
            "alertRuleName": "app-health",
            "configSetName": "app",
            "createDateTime": "2018-05-08T18:43:47.520Z",
            "deviceReference": {
                "link": "https://localhost/mgmt/shared/resolver/device-groups/cm-bigip-allBigIpDevices/devices/35a18732-d42a-4507-bc81-cab532d75d56"
            },
            "domains": [],
            "generation": 7,
            "id": "d2a57dc1-d883-3d21-bb99-51699df71cc7",
            "kind": "cm:global:config-sets:configsetstate",
            "lastConfigTime": "2018-05-08T18:43:47.520Z",
            "lastDeploymentTime": "2018-05-08T18:44:13.256Z",
            "lastUpdateMicros": 1525811331721366,
            "partition": "Common",
            "protectionMode": "Not Protected",
            "resources": {
                "HttpAppVirtualServerResource_1": [
                    {
                        "parameters": {
                            "name": "virtual",
                            "destinationAddress": "3.2.3.2",
                            "mask": "255.255.255.255",
                            "destinationPort": "80"
                            },
                            "parametersToRemove": [],
                            "subcollectionResources": {
                            "HttpAppHttpProfileReferenceResource_1": [
                                {
                                    "parameters": {},
                                    "parametersToRemove": []
                                }
                            ],
                            "HttpAppTcpReferenceResource_1": [
                                {
                                    "parameters": {},
                                    "parametersToRemove": []
                                }
                            ]
                        }
                    }
                ],
                "HttpAppPoolResource_1": [
                    {
                        "parameters": {
                            "name": "pool_0"
                        },
                        "parametersToRemove": [],
                        "subcollectionResources": {
                            "HttpAppPoolMemberResource_1": [
                                {
                                    "parameters": {
                                        "port": 80,
                                        "nodeReference": {
                                            "link": "#/resources/HttpAppNodeResource_1/1.2.2.3",
                                            "fullPath": "# 1.2.2.3"
                                        }
                                    },
                                    "parametersToRemove": []
                                }
                            ]
                        }
                    }
                ],
                "HttpAppNodeResource_1": [
                    {
                        "parameters": {
                            "name": "1.2.2.3",
                            "address": "1.2.2.3"
                        },
                        "parametersToRemove": []
                    }
                ],
                "HttpAppHttpMonitorResource_1": [
                    {
                        "parameters": {
                            "name": "monitor-http"
                        },
                        "parametersToRemove": []
                    }
                ],
                "HttpAppHttpProfileResource_1": [
                    {
                        "parameters": {
                            "name": "profile_http"
                        },
                        "parametersToRemove": []
                    }
                ]
            },
            "selfLink": "https://localhost/mgmt/cm/global/config-sets/d2a57dc1-d883-3d21-bb99-51699df71cc7",
            "status": "DEPLOYED",
            "subPath": "app",
            "templateReference": {
                "link": "https://localhost/mgmt/cm/global/templates/cdf83aa4-d82d-3ec3-acf3-318e6ecc7728"
            }
        }
    ]
}