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"
}
}
]
}