Content Management Service API Specification

What Is the Content Management Service?

You can use the content management service REST API to import and export content, such as blueprints, software components, and other artifacts, from vRealize Automation systems.

vRealize Automation customers often experiment with system artifacts in their development or staging environments. When appropriate, users need to move the artifacts to their production environments or between different tenants.

Increasingly, customers who have adopted the DevOps philosophy have developers who are responsible not only for their application code but for every aspect of how their application is deployed into machines and how the OS and application software is configured. Such development teams generally manage OS and application configurations as human readable text files, often using Domain Specific Language (DSL). Chef, Puppet, and Salt are the most widely used DSLs. Developers use DSLs to manage OS and application configurations almost exactly as they manage their own application code.

For example, they:

This approach solves the key problem of providing full visibility into what's different between different deployments and helps understand why an application works in one deployment but not in another.

The content exported from the content service can be treated as the "as-code" representation of the content artifacts and can be managed using any popular source control systems.

Typical Use Cases

Depending on the type of content that is being processed, an application architect, infrastructure architect, software architect, tenant administrator, or XaaS architect can:

An application developer uses the REST API to perform these activities from application code.

Important Notes

  1. Rollback of data is not supported.
  2. We highly recommend that you validate data before importing it.

Two APIs are provided to validate data:

POST /api/packages/validate Validates the content in a zip package.

GET /api/packages/{id}/validate Performs dry run validation of the contents of a package prior to exporting it.

Key Concepts

Content

Content is an artifact or entity or information that provides value for an end-user/audience in specific context. Currently vRealize Automation supports artifacts like composite blueprints, software components, XaaS blueprints, property groups, and property definitions. Individual content artifacts are represented in YAML (YAML Ain't Markup Language) format.

Content Provider

The service/provider that wants to work with the content management service and provide content to it, i.e, manage its content.

Content Type

A type is that contains metadata about the content provider and content itself. such as type information, service type ID, and so on. Usually, this is provided by the content provider. vRealize Automation has built-in content types ready to go for the content artifacts mentioned above.

Domain Specific Language

A domain specific language (DSL) is a special set of words related to a particular task. Some DevOps tools provide DSLs so that engineers can script automation actions using terminology that is directly related to the task at hand.

Additional Information

For more detailed information on using the the API, refer to the vRA Programming Guide.