Using the CTMS Datamodel Aggregator as a Client

The CTMS Datamodel Aggregator collects the system datamodels provided by all the different CTMS services on the platform. A client can use the CTMS Datamodel Aggregator to get a consolidated datamodel.

A client can access the CTMS Datamodel Aggregator using REST calls:

  1. The client must first authenticate against the platform. See Authentication for details.

  2. Get the Service Root of the CTMS Datamodel Aggregator returns information about the operations the CTMS Datamodel Aggregator can provide.

  3. Complete Information: returns information about all system-specific datamodels on the platform and English (language tag "en") labels and tooltips.

  4. Aggregated Datamodel for a specific Language: returns information about all system-specific datamodels on the platform, but restricts the returned labels and tooltips to the specified language (IETF BCP 47 language tag).

Get the Service Root of the CTMS Datamodel Aggregator

After the client has authenticated against the platform, it can use GET on the URL

to get a resource enumerating links to the URLs pointing to functionalities provided by the CTMS Datamodel Aggregator. upstream is the DNS name or IP address of the server running the Avid Platform infrastructure. The result is a HAL structure like this:

{
   "_links":{
      "curies":[
         {
            "name":"datamodel",
            "templated":true,
            "href":"http://services.avid.com/apis/datamodel/{rel}"
         }
      ],
      "self":{
         "href":"https://upstream/apis/avid.ctms.datamodel.aggregator;version=0;realm=global"
      },
      "datamodel:aggregated-model":[
         {
            "templated":false,
            "href":"https://upstream/apis/avid.ctms.datamodel.aggregator;version=0;realm=global/aggregateddatamodel?lang={lang}"
         }
      ]
   },
   "resources":{
      "datamodel:aggregated-model":[
         {
            "href":"https://upstream/apis/avid.ctms.datamodel.aggregator;version=0;realm=global/aggregateddatamodel?lang={lang}",
            "description":"get aggregated data model",
            "templated":false
         }
      ]
   }
}

Complete Information

The client can then continue GET-requesting the URL behind the link rel "datamodel:aggregated-model", e.g.

to get all information stored in the CTMS Datamodel Aggregator. The result is the "datamodel:aggregated-model" resource.

  • upstream is the DNS name or IP address of the server running the Avid Platform infrastructure.

Aggregated Datamodel for a specific Language

The client can also GET-request the URL behind "datamodel:aggregated-model" and an additional query parameter "lang", to restrict the returned labels and tooltips to a specific language, e.g.

to get only the German (region Germany) labels and tooltips of all attributes in the result.

  • lang must be a valid IETF BCP 47 language tag, if is left away, only "en" labels and tooltips will be in the result. If, for the specified language tag, no labels and tooltips could be found, only "en" labels and tooltips will be in the result.

Aggregated Datamodel including internal Attributes

The client can also GET-request the URL behind "datamodel:aggregated-model" and an additional query parameter "includeinternals", to aggregate internal attributes into the result, e.g.:

  • includeinternals can have the value 'true' assigned, which leads to including internal attributes into the aggregated datamodel. All other values will lead to excluding internal attributes from the result. The default behavior is that internal attributes are excluded.