Service Catalog Template

Overview

A template is composed of a template state and a set of template configuration objects. The template configuration objects serve as prototypes of config objects. You can use an apply-template task to create an application and deploy it to BIG-IPs. The template state is a static state of the template, containing references to those prototypes, that is used by the task to create the application configuration object and user scripts. This document describes the template state REST API. A template state is composed of resources representing configuration objects that a user can generate when using the task to create an application. The resource contains a prototype describing the configuration that will be created by that resource and a parameter section which indicates which fields from the prototype a user is able to modify.

REST Endpoint: /mgmt/cm/global/templates

Requests

GET /mgmt/cm/global/templates/<id>

Request Parameters

None

Query Parameters

None

Response

HTTP/1.1 200 OK

Name Type Description
name string Name of the template
description string Description of the template
resources map_between_string_and_object Map between resource name and prototypes of the config objects that can be created and deployed in the device. It also defines which default parameters can be override by users during application creation or application update
     name string A string literal provided by users to represent the resource name
          prompt string Optional prompt label of the template resource
          prototypeReference reference Reference to template config object which is the prototype of the resource
               link string URI link of the reference.
          shadowPrototypeReferences array_of_references References to template config objects that act as a shadow object to the prototype of the resource. A shadow object is an object synced from LTM to other modules. It is not created by the user directly.
               link string URI link of the reference.
          parameters map_between_string_and_object Key-value pairs that define which parameters can be modified in the resource’s prototype. Key is the parameter name whose value can be modified by users during application creation/update. Value is an empty json object
          allowMultiple boolean True if users allow multiple instantiations of the resource. Default is false
          subcollectionResources map_of_string_and_object Map between subcollection resource name and prototypes of the subcollection config objects that can be referenced by the parent resource. It also defines which default parameters can be override by users during application creation/update
               name string A string literal provided by users to represent the subcollection resource name
                    prompt string Optional prompt label for the template subcollection resource
                    prototypeReference reference Reference to the template-config object which is the prototype of the subcollection resource
                         link string URI link of the reference.
                    parameters map_of_string_and_string Key-value pairs that define which parameters can be modified in the subcollection resources’s prototype. Key is the parameter name whose value can be modified by users during application creation/update. Value is an empty json object
                    allowMultiple boolean True if users allow multiple instantiations of this subcollection resource. Default is false
userScripts array_of_objects A list of user defined scripts that associated with this template, which will run on a device after an application is created based on this template and deployed to the device
     type string Type of the user script. PostCreation script will run when creating an application, PostUpdate script will run when updating an application, and PostDelete script will run when deleting an application
     userScriptReference reference Reference to the user script that is associated with the template
          link string URI link of the reference.
isDefault boolean Flag to distinguish between built-in template and non built-in template
addressSharing boolean Flag to allow sharing address among different virtual servers in the app, when the destinationAddress is allocated from IpPool
published boolean Flag to indicate service-template is published. For an application to be created, the value must be true.

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
Service_Catalog_Viewer Yes
Application_Manager Yes
Service_Catalog_Editor No

POST /mgmt/cm/global/templates

Request Parameters

Name Type Required Description
name string True Name of the template
description string False Description of the template
resources map_between_string_and_object False Map between resource name and prototypes of the config objects that can be created and deployed in the device. It also defines which default parameters can be override by users during application creation or application update
     name string False A string literal provided by users to represent the resource name
          subcollectionResources map_of_string_and_object False Map between subcollection resource name and prototypes of the subcollection config objects that can be referenced by the parent resource. It also defines which default parameters can be override by users during application creation/update
               name string False A string literal provided by users to represent the subcollection resource name
                    prompt string False Optional prompt label for the template subcollection resource
                    prototypeReference reference False Reference to the template-config object which is the prototype of the subcollection resource
                         link string True URI link of the reference.
                    parameters map_of_string_and_string False Key-value pairs that define which parameters can be modified in the subcollection resources’s prototype. Key is the parameter name whose value can be modified by users during application creation/update. Value is an empty json object
                    allowMultiple boolean False True if users allow multiple instantiations of this subcollection resource. Default is false
          prompt string False Optional prompt label of the template resource
          prototypeReference reference False Reference to template config object which is the prototype of the resource
               link string True URI link of the reference.
          shadowPrototypeReferences array_of_references False References to template config objects that act as a shadow object to the prototype of the resource. A shadow object is an object synced from LTM to other modules. It is not created by the user directly.
               link string True URI link of the reference.
          parameters map_between_string_and_string False Key-value pairs that define which parameters can be modified in the resource’s prototype. Key is the parameter name whose value can be modified by users during application creation/update. Value is an empty json object
          allowMultiple boolean False True if users allow multiple instantiations of the resource. Default is false
userScripts array_of_objects False A list of user defined scripts that associated with this template, which will run on a device after an application is created based on this template and deployed to the device
     type string False Type of the user script. PostCreation script will run when creating an application, PostUpdate script will run when updating an application, and PostDelete script will run when deleting an application
     userScriptReference reference False Reference to the user script that is associated with the template
          link string True URI link of the reference.
isDefault boolean False Flag to distinguish between built-in template and non built-in template
addressSharing boolean False Flag to allow sharing address among different virtual servers in the app, when the destinationAddress is allocated from IpPool
published boolean False Flag to indicate service-template is published. For an application to be created, the value must be true.

Query Parameters

None

Response

HTTP/1.1 200 OK

Name Type Description
name string Name of the template
description string Description of the template
resources map_between_string_and_object Map between resource name and prototypes of the config objects that can be created and deployed in the device. It also defines which default parameters can be override by users during application creation or application update
     name string A string literal provided by users to represent the resource name
          subcollectionResources map_of_string_and_object Map between subcollection resource name and prototypes of the subcollection config objects that can be referenced by the parent resource. It also defines which default parameters can be override by users during application creation/update
               name string A string literal provided by users to represent the subcollection resource name
                    prompt string Optional prompt label for the template subcollection resource
                    prototypeReference reference Reference to the template-config object which is the prototype of the subcollection resource
                         link string URI link of the reference.
                    parameters map_of_string_and_string Key-value define that defines which parameters can be modified in the subcollection resources’s prototype. Key is the parameter name whose value can be modified by users during application creation/update. Value is an empty json object
                    allowMultiple boolean True if users allow multiple instantiations of this subcollection resource. Default is false
          prompt string Optional prompt label of the template resource
          prototypeReference reference Reference to template config object which is the prototype of the resource
               link string URI link of the reference.
          shadowPrototypeReferences array_of_references References to template config objects that act as a shadow object to the prototype of the resource. A shadow object is an object synced from LTM to other modules. It is not created by the user directly.
               link string URI link of the reference.
          parameters map_between_string_and_string Key-value define that defines which parameters can be modified in the resource’s prototype. Key is the parameter name whose value can be modified by users during application creation/update. Value is an empty json object
          allowMultiple boolean True if users allow multiple instantiations of the resource. Default is false
userScripts array_of_objects A list of user defined scripts that associated with this template, which will run on a device after an application is created based on this template and deployed to the device
     type string Type of the user script. PostCreation script will run when creating an application, PostUpdate script will run when updating an application, and PostDelete script will run when deleting an application
     userScriptReference reference Reference to the user script that is associated with the template
          link string URI link of the reference.
isDefault boolean Flag to distinguish between built-in template and non built-in template
addressSharing boolean Flag to allow sharing address among different virtual servers in the app, when the destinationAddress is allocated from IpPool
published boolean Flag to indicate service-template is published. For an application to be created, the value must be true.

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).

Permissions

Role Allow
Application_Editor No
Application_Viewer No
Service_Catalog_Viewer No
Application_Manager No
Service_Catalog_Editor Yes

PUT /mgmt/cm/global/templates/<id>

Request Parameters

Name Type Required Description
name string True Name of the template
description string False Description of the template
resources map_between_string_and_object False Map between resource name and prototypes of the config objects that can be created and deployed in the device. It also defines which default parameters can be override by users during application creation or application update
     name string False A string literal provided by users to represent the resource name
          subcollectionResources map_of_string_and_object False Map between subcollection resource name and prototypes of the subcollection config objects that can be referenced by the parent resource. It also defines which default parameters can be override by users during application creation/update
               name string False A string literal provided by users to represent the subcollection resource name
                    prompt string False Optional prompt label for the template subcollection resource
                    prototypeReference reference False Reference to the template-config object which is the prototype of the subcollection resource
                         link string True URI link of the reference.
                    parameters map_of_string_and_string False Key-value pairs that define which parameters can be modified in the subcollection resources’s prototype. Key is the parameter name whose value can be modified by users during application creation/update. Value is an empty json object
                    allowMultiple boolean False True if users allow multiple instantiations of this subcollection resource. Default is false
          prompt string False Optional prompt label of the template resource
          prototypeReference reference False Reference to template config object which is the prototype of the resource
               link string True URI link of the reference.
          shadowPrototypeReferences array_of_references False References to template config objects that act as a shadow object to the prototype of the resource. A shadow object is an object synced from LTM to other modules. It is not created by the user directly.
               link string True URI link of the reference.
          parameters map_between_string_and_string False Key-value pairs that define which parameters can be modified in the resource’s prototype. Key is the parameter name whose value can be modified by users during application creation/update. Value is an empty json object
          allowMultiple boolean False True if users allow multiple instantiations of the resource. Default is false
userScripts array_of_objects False A list of user defined scripts that associated with this template, which will run on a device after an application is created based on this template and deployed to the device
     type string False Type of the user script. PostCreation script will run when creating an application, PostUpdate script will run when updating an application, and PostDelete script will run when deleting an application
     userScriptReference reference False Reference to the user script that is associated with the template
          link string False URI link of the reference.
isDefault boolean False Flag to distinguish between built-in template and non built-in template
addressSharing boolean False Flag to allow sharing address among different virtual servers in the app, when the destinationAddress is allocated from IpPool
published boolean False Flag to indicate service-template is published. For an application to be created, the value must be true.

Query Parameters

None

Response

HTTP/1.1 200 OK

Name Type Description
name string Name of the template
description string Description of the template
resources map_between_string_and_object Map between resource name and prototypes of the config objects that can be created and deployed in the device. It also defines which default parameters can be override by users during application creation or application update
     name string A string literal provided by users to represent the resource name
          subcollectionResources map_of_string_and_object Map between subcollection resource name and prototypes of the subcollection config objects that can be referenced by the parent resource. It also defines which default parameters can be override by users during application creation/update
               name string A string literal provided by users to represent the subcollection resource name
                    prompt string Optional prompt label for the template subcollection resource
                    prototypeReference reference Reference to the template-config object which is the prototype of the subcollection resource
                         link string URI link of the reference.
                    parameters map_of_string_and_string Key-value pairs that define which parameters can be modified in the subcollection resources’s prototype. Key is the parameter name whose value can be modified by users during application creation/update. Value is an empty json object
                    allowMultiple boolean True if users allow multiple instantiations of this subcollection resource. Default is false
          prompt string Optional prompt label of the template resource
          prototypeReference reference Reference to template config object which is the prototype of the resource
               link string URI link of the reference.
          shadowPrototypeReferences array_of_references References to template config objects that act as a shadow object to the prototype of the resource. A shadow object is an object synced from LTM to other modules. It is not created by the user directly.
               link string URI link of the reference.
          parameters map_between_string_and_string Key-value pairs that define which parameters can be modified in the resource’s prototype. Key is the parameter name whose value can be modified by users during application creation/update. Value is an empty json object
          allowMultiple boolean True if users allow multiple instantiations of the resource. Default is false
userScripts array_of_objects A list of user defined scripts that associated with this template, which will run on a device after an application is created based on this template and deployed to the device
     type string Type of the user script. PostCreation script will run when creating an application, PostUpdate script will run when updating an application, and PostDelete script will run when deleting an application
     userScriptReference reference Reference to the user script that is associated with the template
          link string URI link of the reference.
isDefault boolean Flag to distinguish between built-in template and non built-in template
addressSharing boolean Flag to allow sharing address among different virtual servers in the app, when the destinationAddress is allocated from IpPool
published boolean Flag to indicate service-template is published. For an application to be created, the value must be true.

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).

Permissions

Role Allow
Application_Editor No
Application_Viewer No
Service_Catalog_Viewer No
Application_Manager No
Service_Catalog_Editor Yes

PATCH /mgmt/cm/global/templates/<id>

Request Parameters

Name Type Required Description
description string False Description of the template
resources map_between_string_and_object False Map between resource name and prototypes of the config objects that can be created and deployed in the device. It also defines which default parameters can be override by users during application creation or application update
     name string False A string literal provided by users to represent the resource name
          subcollectionResources map_of_string_and_object False Map between subcollection resource name and prototypes of the subcollection config objects that can be referenced by the parent resource. It also defines which default parameters can be override by users during application creation/update
               name string False A string literal provided by users to represent the subcollection resource name
                    prompt string False Optional prompt label for the template subcollection resource
                    prototypeReference reference False Reference to the template-config object which is the prototype of the subcollection resource
                         link string True URI link of the reference.
                    parameters map_of_string_and_string False Key-value pairs that define which parameters can be modified in the subcollection resources’s prototype. Key is the parameter name whose value can be modified by users during application creation/update. Value is an empty json object
                    allowMultiple boolean False True if users allow multiple instantiations of this subcollection resource. Default is false
          prompt string False Optional prompt label of the template resource
          prototypeReference reference False Reference to template config object which is the prototype of the resource
               link string True URI link of the reference.
          shadowPrototypeReferences array_of_references False References to template config objects that act as a shadow object to the prototype of the resource. A shadow object is an object synced from LTM to other modules. It is not created by the user directly.
               link string True URI link of the reference.
          parameters map_between_string_and_string False Key-value pairs that define which parameters can be modified in the resource’s prototype. Key is the parameter name whose value can be modified by users during application creation/update. Value is an empty json object
          allowMultiple boolean False True if users allow multiple instantiations of the resource. Default is false
userScripts array_of_objects False A list of user defined scripts that associated with this template, which will run on a device after an application is created based on this template and deployed to the device
     type string False Type of the user script. PostCreation script will run when creating an application, PostUpdate script will run when updating an application, and PostDelete script will run when deleting an application
     userScriptReference reference False Reference to the user script that is associated with the template
          link string True URI link of the reference.
addressSharing boolean False Flag to allow sharing address among different virtual servers in the app, when the destinationAddress is allocated from IpPool
published boolean False Flag to indicate service-template is published. For an application to be created, the value must be true.

Query Parameters

None

Response

HTTP/1.1 200 OK

Name Type Description
name string Name of the template
description string Description of the template
resources map_between_string_and_object Map between resource name and prototypes of the config objects that can be created and deployed in the device. It also defines which default parameters can be override by users during application creation or application update
     name string A string literal provided by users to represent the resource name
          subcollectionResources map_of_string_and_object Map between subcollection resource name and prototypes of the subcollection config objects that can be referenced by the parent resource. It also defines which default parameters can be override by users during application creation/update
               name string A string literal provided by users to represent the subcollection resource name
                    prompt string Optional prompt label for the template subcollection resource
                    prototypeReference reference Reference to the template-config object which is the prototype of the subcollection resource
                         link string URI link of the reference.
                    parameters map_of_string_and_string Key-value pairs that define which parameters can be modified in the subcollection resources’s prototype. Key is the parameter name whose value can be modified by users during application creation/update. Value is an empty json object
                    allowMultiple boolean True if users allow multiple instantiations of this subcollection resource. Default is false
          prompt string Optional prompt label of the template resource
          prototypeReference reference Reference to template config object which is the prototype of the resource
               link string URI link of the reference.
          shadowPrototypeReferences array_of_references References to template config objects that act as a shadow object to the prototype of the resource. A shadow object is an object synced from LTM to other modules. It is not created by the user directly.
               link string URI link of the reference.
          parameters map_between_string_and_string Key-value pairs that define which parameters can be modified in the resource’s prototype. Key is the parameter name whose value can be modified by users during application creation/update. Value is an empty json object
          allowMultiple boolean True if users allow multiple instantiations of the resource. Default is false
userScripts array_of_objects A list of user defined scripts that associated with this template, which will run on a device after an application is created based on this template and deployed to the device
     type string Type of the user script. PostCreation script will run when creating an application, PostUpdate script will run when updating an application, and PostDelete script will run when deleting an application
     userScriptReference reference Reference to the user script that is associated with the template
          link string URI link of the reference.
isDefault boolean Flag to distinguish between built-in template and non built-in template
addressSharing boolean Flag to allow sharing address among different virtual servers in the app, when the destinationAddress is allocated from IpPool
published boolean Flag to indicate service-template is published. For an application to be created, the value must be true.

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).

Permissions

Role Allow
Application_Editor No
Application_Viewer No
Service_Catalog_Viewer No
Application_Manager No
Service_Catalog_Editor Yes

DELETE /mgmt/cm/global/templates/<id>

Request Parameters

None

Query Parameters

None

Response

HTTP/1.1 200 OK

Name Type Description
name string Name of the template
description string Description of the template
resources map_between_string_and_object Map between resource name and prototypes of the config objects that can be created and deployed in the device. It also defines which default parameters can be override by users during application creation or application update
     name string A string literal provided by users to represent the resource name
          subcollectionResources map_of_string_and_object Map between subcollection resource name and prototypes of the subcollection config objects that can be referenced by the parent resource. It also defines which default parameters can be override by users during application creation/update
               name string A string literal provided by users to represent the subcollection resource name
                    prompt string Optional prompt label for the template subcollection resource
                    prototypeReference reference Reference to the template-config object which is the prototype of the subcollection resource
                         link string URI link of the reference.
                    parameters map_of_string_and_string Key-value pairs that define which parameters can be modified in the subcollection resources’s prototype. Key is the parameter name whose value can be modified by users during application creation/update. Value is an empty json object
                    allowMultiple boolean True if users allow multiple instantiations of this subcollection resource. Default is false
          prompt string Optional prompt label of the template resource
          prototypeReference reference Reference to template config object which is the prototype of the resource
               link string URI link of the reference.
          shadowPrototypeReferences array_of_references References to template config objects that act as a shadow object to the prototype of the resource. A shadow object is an object synced from LTM to other modules. It is not created by the user directly.
               link string URI link of the reference.
          parameters map_between_string_and_string Key-value pairs that define which parameters can be modified in the resource’s prototype. Key is the parameter name whose value can be modified by users during application creation/update. Value is an empty json object
          allowMultiple boolean True if users allow multiple instantiations of the resource. Default is false
userScripts array_of_objects A list of user defined scripts that associated with this template, which will run on a device after an application is created based on this template and deployed to the device
     type string Type of the user script. PostCreation script will run when creating an application, PostUpdate script will run when updating an application, and PostDelete script will run when deleting an application
     userScriptReference reference Reference to the user script that is associated with the template
          link string URI link of the reference.
isDefault boolean Flag to distinguish between built-in template and non built-in template
addressSharing boolean Flag to allow sharing address among different virtual servers in the app, when the destinationAddress is allocated from IpPool
published boolean Flag to indicate service-template is published. For an application to be created, the value must be true.

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 No
Application_Viewer No
Service_Catalog_Viewer No
Application_Manager No
Service_Catalog_Editor Yes

Examples

Get a template

GET /mgmt/cm/global/templates/<id>

Response

HTTP/1.1 200 OK
{
    "items": [
        {
            "name": "MyTemplate",
            "description": "For load balancing an HTTPS application on port 443 with a Web Application Firewall using an ASM Rapid Deployment policy.",
            "resources": {
                "MyVirtualServerResource_1": {
                    "prompt": "Add object of type: ltm virtual",
                    "prototypeReference": {
                        "link": "https://localhost/mgmt/cm/adc-core/template-config/ltm/virtual/0693aecf-2932-3fc3-a322-f0f7af86c362"
                    },
                    "parameters": {
                        "name": {},
                        "destinationAddress": {},
                        "mask": {},
                        "destinationPort": {}
                    },
                    "allowMultiple": false,
                    "subcollectionResources": {
                        "MyVirtualProfileTCPResource_1": {
                            "prompt": "Attach a profile",
                            "prototypeReference": {
                                "link": "https://localhost/mgmt/cm/adc-core/template-config/ltm/virtual/0693aecf-2932-3fc3-a322-f0f7af86c362/profiles/febe580f-b151-3c8d-95a0-43ce8df2147c"
                            },
                            "parameters": {},
                            "allowMultiple": true
                        },
                        "MyVirtualProfileHTTPResource_1": {
                            "prompt": "Attach a profile",
                            "prototypeReference": {
                                "link": "https://localhost/mgmt/cm/adc-core/template-config/ltm/virtual/0693aecf-2932-3fc3-a322-f0f7af86c362/profiles/ad348aed-0309-36d5-b5cd-c5b9e00cbb26"
                            },
                            "parameters": {},
                            "allowMultiple": true
                        }
                    }
                },
                "MyPoolResource_1": {
                    "prompt": "Add object of type: ltm pool",
                    "prototypeReference": {
                        "link": "https://localhost/mgmt/cm/adc-core/template-config/ltm/pool/7f920413-5594-3665-94db-6dcc5b6619c9"
                    },
                    "parameters": {
                        "name": {}
                    },
                    "allowMultiple": false,
                    "subcollectionResources": {
                        "MyPoolMemberResource_1": {
                            "prompt": "Add object of type: ltm pool members",
                            "prototypeReference": {
                                "link": "https://localhost/mgmt/cm/adc-core/template-config/ltm/pool/7f920413-5594-3665-94db-6dcc5b6619c9/members/75821b71-c21a-35f8-be17-188fe23d860d"
                            },
                            "parameters": {
                                "port": {},
                                "nodeReference": {}
                            },
                            "allowMultiple": true
                        }
                    }
                },
                "MyNodeResource_1": {
                    "prompt": "Add a node",
                    "prototypeReference": {
                        "link": "https://localhost/mgmt/cm/adc-core/template-config/ltm/node/dc475a99-31f9-3dbe-907b-95af794ff19e"
                    },
                    "parameters": {
                        "name": {},
                        "address": {}
                    },
                    "allowMultiple": true
                }
            },
            "isDefault": false,
            "addressSharing": false
            "published": true
        }
    ]
}

Create a template

POST /mgmt/cm/global/templates
{
    "name": "MyTemplate",
    "description": "For load balancing an HTTPS application on port 443 with a Web Application Firewall using an ASM Rapid Deployment policy.",
    "resources": {
        "MyVirtualServerResource_1": {
            "prompt": "Add object of type: ltm virtual",
            "prototypeReference": {
                "link": "https://localhost/mgmt/cm/adc-core/template-config/ltm/virtual/0693aecf-2932-3fc3-a322-f0f7af86c362"
            },
            "parameters": {
                "name": {},
                "destinationAddress": {},
                "mask": {},
                "destinationPort": {}
            },
            "allowMultiple": false,
            "subcollectionResources": {
                "MyVirtualProfileTCPResource_1": {
                    "prompt": "Attach a profile",
                    "prototypeReference": {
                        "link": "https://localhost/mgmt/cm/adc-core/template-config/ltm/virtual/0693aecf-2932-3fc3-a322-f0f7af86c362/profiles/febe580f-b151-3c8d-95a0-43ce8df2147c"
                    },
                    "parameters": {},
                    "allowMultiple": true
                },
                "MyVirtualProfileHTTPResource_1": {
                    "prompt": "Attach a profile",
                    "prototypeReference": {
                        "link": "https://localhost/mgmt/cm/adc-core/template-config/ltm/virtual/0693aecf-2932-3fc3-a322-f0f7af86c362/profiles/ad348aed-0309-36d5-b5cd-c5b9e00cbb26"
                    },
                    "parameters": {},
                    "allowMultiple": true
                }
            },
        },
        "MyPoolResource_1": {
            "prompt": "Add object of type: ltm pool",
            "prototypeReference": {
                "link": "https://localhost/mgmt/cm/adc-core/template-config/ltm/pool/7f920413-5594-3665-94db-6dcc5b6619c9"
            },
            "parameters": {
                "name": {}
            },
            "allowMultiple": false,
            "subcollectionResources": {
                "MyPoolMemberResource_1": {
                    "prompt": "Add object of type: ltm pool members",
                    "prototypeReference": {
                        "link": "https://localhost/mgmt/cm/adc-core/template-config/ltm/pool/7f920413-5594-3665-94db-6dcc5b6619c9/members/75821b71-c21a-35f8-be17-188fe23d860d"
                    },
                    "parameters": {
                        "port": {},
                        "nodeReference": {}
                    },
                    "allowMultiple": true
                }
            }
        },
        "MyNodeResource_1": {
            "prompt": "Add a node",
            "prototypeReference": {
                "link": "https://localhost/mgmt/cm/adc-core/template-config/ltm/node/dc475a99-31f9-3dbe-907b-95af794ff19e"
            },
            "parameters": {
                "name": {},
                "address": {}
            },
            "allowMultiple": true
        }
    },
    "userScripts": [
        {
            "type": "PostCreation",
            "userScriptReference": {
                "link": "https://localhost/mgmt/shared/user-scripts/42788307-4e16-433e-bcc8-9734cc07ddd8"
            }
        }
    ],
    "isDefault": false,
    "addressSharing": false
            "published": true
}

Response

HTTP/1.1 200 OK
{
    "name": "MyTemplate",
    "description": "For load balancing an HTTPS application on port 443 with a Web Application Firewall using an ASM Rapid Deployment policy.",
    "resources": {
        "MyVirtualServerResource_1": {
            "prompt": "Add object of type: ltm virtual",
            "prototypeReference": {
                "link": "https://localhost/mgmt/cm/adc-core/template-config/ltm/virtual/0693aecf-2932-3fc3-a322-f0f7af86c362"
            },
            "parameters": {
                "name": {},
                "destinationAddress": {},
                "mask": {},
                "destinationPort": {}
            },
            "allowMultiple": false,
            "subcollectionResources": {
                "MyVirtualProfileTCPResource_1": {
                    "prompt": "Attach a profile",
                    "prototypeReference": {
                        "link": "https://localhost/mgmt/cm/adc-core/template-config/ltm/virtual/0693aecf-2932-3fc3-a322-f0f7af86c362/profiles/febe580f-b151-3c8d-95a0-43ce8df2147c"
                    },
                    "parameters": {},
                    "allowMultiple": true
                },
                "MyVirtualProfileHTTPResource_1": {
                    "prompt": "Attach a profile",
                    "prototypeReference": {
                        "link": "https://localhost/mgmt/cm/adc-core/template-config/ltm/virtual/0693aecf-2932-3fc3-a322-f0f7af86c362/profiles/ad348aed-0309-36d5-b5cd-c5b9e00cbb26"
                    },
                    "parameters": {},
                    "allowMultiple": true
                }
            }
        },
        "MyPoolResource_1": {
            "prompt": "Add object of type: ltm pool",
            "prototypeReference": {
                "link": "https://localhost/mgmt/cm/adc-core/template-config/ltm/pool/7f920413-5594-3665-94db-6dcc5b6619c9"
            },
            "parameters": {
                "name": {}
            },
            "allowMultiple": false,
            "subcollectionResources": {
                "MyPoolMemberResource_1": {
                    "prompt": "Add object of type: ltm pool members",
                    "prototypeReference": {
                        "link": "https://localhost/mgmt/cm/adc-core/template-config/ltm/pool/7f920413-5594-3665-94db-6dcc5b6619c9/members/75821b71-c21a-35f8-be17-188fe23d860d"
                    },
                    "parameters": {
                        "port": {},
                        "nodeReference": {}
                    },
                    "allowMultiple": true
                }
            }
        },
        "MyNodeResource_1": {
            "prompt": "Add a node",
            "prototypeReference": {
                "link": "https://localhost/mgmt/cm/adc-core/template-config/ltm/node/dc475a99-31f9-3dbe-907b-95af794ff19e"
            },
            "parameters": {
                "name": {},
                "address": {}
            },
            "allowMultiple": true
        }
    },
    "userScripts": [
        {
            "type": "PostCreation",
            "userScriptReference": {
                "link": "https://localhost/mgmt/shared/user-scripts/42788307-4e16-433e-bcc8-9734cc07ddd8"
            }
        }
    ],
    "isDefault": false,
    "addressSharing": false
            "published": true
}

Edit a template

PUT /mgmt/cm/global/templates/<id>
{
    "name": "MyTemplate",
    "description": "For load balancing an HTTPS application on port 443 with a Web Application Firewall using an ASM Rapid Deployment policy.",
    "resources": {
        "MyVirtualServerResource_1": {
            "prompt": "Add object of type: ltm virtual",
            "prototypeReference": {
                "link": "https://localhost/mgmt/cm/adc-core/template-config/ltm/virtual/0693aecf-2932-3fc3-a322-f0f7af86c362"
            },
            "parameters": {
                "name": {},
                "destinationAddress": {},
                "mask": {},
                "destinationPort": {}
            },
            "allowMultiple": false,
            "subcollectionResources": {
                "MyVirtualProfileTCPResource_1": {
                    "prompt": "Attach a profile",
                    "prototypeReference": {
                        "link": "https://localhost/mgmt/cm/adc-core/template-config/ltm/virtual/0693aecf-2932-3fc3-a322-f0f7af86c362/profiles/febe580f-b151-3c8d-95a0-43ce8df2147c"
                    },
                    "parameters": {},
                    "allowMultiple": true
                },
                "MyVirtualProfileHTTPResource_1": {
                    "prompt": "Attach a profile",
                    "prototypeReference": {
                        "link": "https://localhost/mgmt/cm/adc-core/template-config/ltm/virtual/0693aecf-2932-3fc3-a322-f0f7af86c362/profiles/ad348aed-0309-36d5-b5cd-c5b9e00cbb26"
                    },
                    "parameters": {},
                    "allowMultiple": true
                }
            }
        },
        "MyPoolResource_1": {
            "prompt": "Add object of type: ltm pool",
            "prototypeReference": {
                "link": "https://localhost/mgmt/cm/adc-core/template-config/ltm/pool/7f920413-5594-3665-94db-6dcc5b6619c9"
            },
            "parameters": {
                "name": {}
            },
            "allowMultiple": false,
            "subcollectionResources": {
                "MyPoolMemberResource_1": {
                    "prompt": "Add object of type: ltm pool members",
                    "prototypeReference": {
                        "link": "https://localhost/mgmt/cm/adc-core/template-config/ltm/pool/7f920413-5594-3665-94db-6dcc5b6619c9/members/75821b71-c21a-35f8-be17-188fe23d860d"
                    },
                    "parameters": {
                        "port": {},
                        "nodeReference": {}
                    },
                    "allowMultiple": true
                }
            }
        },
        "MyNodeResource_1": {
            "prompt": "Add a node",
            "prototypeReference": {
                "link": "https://localhost/mgmt/cm/adc-core/template-config/ltm/node/dc475a99-31f9-3dbe-907b-95af794ff19e"
            },
            "parameters": {
                "name": {},
                "address": {}
            },
            "allowMultiple": true
        }
    },
    "userScripts": [
        {
            "type": "PostCreation",
            "userScriptReference": {
                "link": "https://localhost/mgmt/shared/user-scripts/42788307-4e16-433e-bcc8-9734cc07ddd8"
            }
        }
    ],
    "isDefault": false,
    "addressSharing": true
            "published": true
}

Response

HTTP/1.1 200 OK
{
    "name": "MyTemplate",
    "description": "For load balancing an HTTPS application on port 443 with a Web Application Firewall using an ASM Rapid Deployment policy.",
    "resources": {
        "MyVirtualServerResource_1": {
            "prompt": "Add object of type: ltm virtual",
            "prototypeReference": {
                "link": "https://localhost/mgmt/cm/adc-core/template-config/ltm/virtual/0693aecf-2932-3fc3-a322-f0f7af86c362"
            },
            "parameters": {
                "name": {},
                "destinationAddress": {},
                "mask": {},
                "destinationPort": {}
            },
            "allowMultiple": false,
            "subcollectionResources": {
                "MyVirtualProfileTCPResource_1": {
                    "prompt": "Attach a profile",
                    "prototypeReference": {
                        "link": "https://localhost/mgmt/cm/adc-core/template-config/ltm/virtual/0693aecf-2932-3fc3-a322-f0f7af86c362/profiles/febe580f-b151-3c8d-95a0-43ce8df2147c"
                    },
                    "parameters": {},
                    "allowMultiple": true
                },
                "MyVirtualProfileHTTPResource_1": {
                    "prompt": "Attach a profile",
                    "prototypeReference": {
                        "link": "https://localhost/mgmt/cm/adc-core/template-config/ltm/virtual/0693aecf-2932-3fc3-a322-f0f7af86c362/profiles/ad348aed-0309-36d5-b5cd-c5b9e00cbb26"
                    },
                    "parameters": {},
                    "allowMultiple": true
                }
            }
        },
        "MyPoolResource_1": {
            "prompt": "Add object of type: ltm pool",
            "prototypeReference": {
                "link": "https://localhost/mgmt/cm/adc-core/template-config/ltm/pool/7f920413-5594-3665-94db-6dcc5b6619c9"
            },
            "parameters": {
                "name": {}
            },
            "allowMultiple": false,
            "subcollectionResources": {
                "MyPoolMemberResource_1": {
                    "prompt": "Add object of type: ltm pool members",
                    "prototypeReference": {
                        "link": "https://localhost/mgmt/cm/adc-core/template-config/ltm/pool/7f920413-5594-3665-94db-6dcc5b6619c9/members/75821b71-c21a-35f8-be17-188fe23d860d"
                    },
                    "parameters": {
                        "port": {},
                        "nodeReference": {}
                    },
                    "allowMultiple": true
                }
            }
        },
        "MyNodeResource_1": {
            "prompt": "Add a node",
            "prototypeReference": {
                "link": "https://localhost/mgmt/cm/adc-core/template-config/ltm/node/dc475a99-31f9-3dbe-907b-95af794ff19e"
            },
            "parameters": {
                "name": {},
                "address": {}
            },
            "allowMultiple": true
        }
    },
    "userScripts": [
        {
            "type": "PostCreation",
            "userScriptReference": {
                "link": "https://localhost/mgmt/shared/user-scripts/42788307-4e16-433e-bcc8-9734cc07ddd8"
            }
        }
    ],
    "isDefault": false,
    "addressSharing": true
}

Edit a template

PATCH /mgmt/cm/global/templates/<id>
{
    "userScripts": []
}

Response

HTTP/1.1 200 OK
{
    "name": "MyTemplate",
    "description": "For load balancing an HTTPS application on port 443 with a Web Application Firewall using an ASM Rapid Deployment policy.",
    "resources": {
        "MyVirtualServerResource_1": {
            "prompt": "Add object of type: ltm virtual",
            "prototypeReference": {
                "link": "https://localhost/mgmt/cm/adc-core/template-config/ltm/virtual/0693aecf-2932-3fc3-a322-f0f7af86c362"
            },
            "parameters": {
                "name": {},
                "destinationAddress": {},
                "mask": {},
                "destinationPort": {}
            },
            "allowMultiple": false,
            "subcollectionResources": {
                "MyVirtualProfileTCPResource_1": {
                    "prompt": "Attach a profile",
                    "prototypeReference": {
                        "link": "https://localhost/mgmt/cm/adc-core/template-config/ltm/virtual/0693aecf-2932-3fc3-a322-f0f7af86c362/profiles/febe580f-b151-3c8d-95a0-43ce8df2147c"
                    },
                    "parameters": {},
                    "allowMultiple": true
                },
                "MyVirtualProfileHTTPResource_1": {
                    "prompt": "Attach a profile",
                    "prototypeReference": {
                        "link": "https://localhost/mgmt/cm/adc-core/template-config/ltm/virtual/0693aecf-2932-3fc3-a322-f0f7af86c362/profiles/ad348aed-0309-36d5-b5cd-c5b9e00cbb26"
                    },
                    "parameters": {},
                    "allowMultiple": true
                }
            }
        },
        "MyPoolResource_1": {
            "prompt": "Add object of type: ltm pool",
            "prototypeReference": {
                "link": "https://localhost/mgmt/cm/adc-core/template-config/ltm/pool/7f920413-5594-3665-94db-6dcc5b6619c9"
            },
            "parameters": {
                "name": {}
            },
            "allowMultiple": false,
            "subcollectionResources": {
                "MyPoolMemberResource_1": {
                    "prompt": "Add object of type: ltm pool members",
                    "prototypeReference": {
                        "link": "https://localhost/mgmt/cm/adc-core/template-config/ltm/pool/7f920413-5594-3665-94db-6dcc5b6619c9/members/75821b71-c21a-35f8-be17-188fe23d860d"
                    },
                    "parameters": {
                        "port": {},
                        "nodeReference": {}
                    },
                    "allowMultiple": true
                }
            }
        },
        "MyNodeResource_1": {
            "prompt": "Add a node",
            "prototypeReference": {
                "link": "https://localhost/mgmt/cm/adc-core/template-config/ltm/node/dc475a99-31f9-3dbe-907b-95af794ff19e"
            },
            "parameters": {
                "name": {},
                "address": {}
            },
            "allowMultiple": true
        }
    },
    "isDefault": false,
    "addressSharing": true
            "published": true
}

Delete a template

DELETE /mgmt/cm/global/templates/<id>

Response

HTTP/1.1 200 OK
{
    "name": "MyTemplate",
    "description": "For load balancing an HTTPS application on port 443 with a Web Application Firewall using an ASM Rapid Deployment policy.",
    "resources": {
        "MyVirtualServerResource_1": {
            "prompt": "Add object of type: ltm virtual",
            "prototypeReference": {
                "link": "https://localhost/mgmt/cm/adc-core/template-config/ltm/virtual/0693aecf-2932-3fc3-a322-f0f7af86c362"
            },
            "parameters": {
                "name": {},
                "destinationAddress": {},
                "mask": {},
                "destinationPort": {}
            },
            "allowMultiple": false,
            "subcollectionResources": {
                "MyVirtualProfileTCPResource_1": {
                    "prompt": "Attach a profile",
                    "prototypeReference": {
                        "link": "https://localhost/mgmt/cm/adc-core/template-config/ltm/virtual/0693aecf-2932-3fc3-a322-f0f7af86c362/profiles/febe580f-b151-3c8d-95a0-43ce8df2147c"
                    },
                    "parameters": {},
                    "allowMultiple": true
                },
                "MyVirtualProfileHTTPResource_1": {
                    "prompt": "Attach a profile",
                    "prototypeReference": {
                        "link": "https://localhost/mgmt/cm/adc-core/template-config/ltm/virtual/0693aecf-2932-3fc3-a322-f0f7af86c362/profiles/ad348aed-0309-36d5-b5cd-c5b9e00cbb26"
                    },
                    "parameters": {},
                    "allowMultiple": true
                }
            }
        },
        "MyPoolResource_1": {
            "prompt": "Add object of type: ltm pool",
            "prototypeReference": {
                "link": "https://localhost/mgmt/cm/adc-core/template-config/ltm/pool/7f920413-5594-3665-94db-6dcc5b6619c9"
            },
            "parameters": {
                "name": {}
            },
            "allowMultiple": false,
            "subcollectionResources": {
                "MyPoolMemberResource_1": {
                    "prompt": "Add object of type: ltm pool members",
                    "prototypeReference": {
                        "link": "https://localhost/mgmt/cm/adc-core/template-config/ltm/pool/7f920413-5594-3665-94db-6dcc5b6619c9/members/75821b71-c21a-35f8-be17-188fe23d860d"
                    },
                    "parameters": {
                        "port": {},
                        "nodeReference": {}
                    },
                    "allowMultiple": true
                }
            }
        },
        "MyNodeResource_1": {
            "prompt": "Add a node",
            "prototypeReference": {
                "link": "https://localhost/mgmt/cm/adc-core/template-config/ltm/node/dc475a99-31f9-3dbe-907b-95af794ff19e"
            },
            "parameters": {
                "name": {},
                "address": {}
            },
            "allowMultiple": true
        }
    },
    "isDefault": false,
    "addressSharing": true
            "published": true
}