Atom feed of this document
 

 Extensions

The Quantum API is extensible. Extensions serve several purposes:

  • They allow the introduction of new features in the API without requiring a version change;

  • They allow the introduction of vendor specific niche functionality

  • They act as a proving ground for experimental functionalities which might be included in a future version of the API.

Applications can programmatically determine what extensions are available by performing a GET on the /v1.0/extensions URI. Note that this is a versioned request — that is, an extension available in one API version may not be available in another.

 

Example 3.7. Extensions Response: XML

<?xml version="1.0" encoding="UTF-8"?>

<extensions>

    <extension
        name="Cisco Port Profile"
        namespace="http://docs.ciscocloud.com/api/ext/portprofile/v1.0"
        alias="Cisco Port Profile"
        updated="2011-07-23T13:25:27-06:00">
        <description>Portprofile include QoS information</description>
    </extension>

    <extension
        name="Cisco qos"
        namespace="http://docs.ciscocloud.com/api/ext/qos/v1.0"
        alias="Cisco qos"
        updated="2011-07-25T13:25:27-06:00">
        <description>qos include qos_name and qos_desc</description>
    </extension>

</extensions>

 

Example 3.8. Extensions Response: JSON

{
    "extensions": [
        {
            "name": "Cisco Port Profile",
            "namespace": "http://docs.ciscocloud.com/api/ext/portprofile/v1.0",
            "alias": "Cisco Port Profile",
            "updated": "2011-07-23T13:25:27-06:00",
            "description": "Portprofile include QoS information",
        },
        {
            "name": "Cisco qos",
            "namespace": "http://docs.ciscocloud.com/api/ext/qos/v1.0",
            "alias": "Cisco qos",
            "updated": "2011-07-25T13:25:27-06:00",
            "description": "qos include qos_name and qos_desc",
        },

    ]
}

Extensions may also be queried individually by their unique alias by performing a GET on the /v1.0/extensions/alias_name. This provides the simplest method of checking if an extension is available as an unavailable extension will issue an itemNotFound (404) response.

[Note]Note

Existing core API resources can be extended with new actions or extra data in request/response of existing actions. Further new resources can also be added as extensions. Extensions usually have vendor specific tags that prevent clash with other extensions. Availability of an extension will vary with deployments and the specific plugin in use.

[Important]Important

Applications should be prepared to ignore response data that contains extension elements. Applications should also verify that an extension is available before submitting an extended request.