As a VMware vRealize® Automation™ user or customer, you can perform vRealize Automation Cloud Assembly, vRealize Automation Service Broker, and vRealize Automation Code Stream functions programmatically by using REST API service calls.

API Services

vRealize Automation includes the following APIs. API documentation is available with the product. To access all Swagger specifications from a single landing page, go to https://<vRA-FQDN>/automation-ui/api-docs where vRA-FQDN is the FQDN of your vRealize Automation appliance.

Table 1. vRealize Automation
Main Service Service Name and Description
ABX
ABX
Create or manage actions and their versions. Execute actions and flows.
Service Broker
Approvals
Enforce policies that control required approvals for a deployment or Day 2 action before the request is provisioned.
Cloud Assembly
Blueprint
Create, validate, and provision blueprints.
Note: Blueprints in the API are VMware Cloud Templates in the product.
Service Broker
Catalog
Access Service Broker catalog items and catalog sources, including content sharing and the request of catalog items.
CMX
CMX
When using Kubernetes with vRealize Automation , deploy and manage Kubernetes clusters and namespaces.
Code Stream
Code Stream
Create and run pipelines for continuous delivery of your applications to production.
Cloud Assembly
Content Gateway
Connect to your infrastructure as code content in external content sources, such as Source Code Management providers.
Forms
Custom Forms
Define dynamic form rendering and customization behavior in Service Broker and Cloud Assembly.
User Profile
Customization
Configure branding information.
Service Broker
Deployment
Access deployment objects and platforms or blueprints that have been deployed into the system.
Note: Blueprints in the API are VMware Cloud Templates in the product.
Identity
Identity
Authenticate and manage the authorization of vRealize Automation users. If you have a user role, the Identity service allows you to obtain the authorization required to manage services.
Cloud Assembly
Infrastructure as a Service (IaaS)
Perform infrastructure setup tasks, including validation, and provisioning of resources in an iterative manner.
Migration
Migration Assistant
Run assessments and access migration services. Supports migration of content for vRealize Automation 7.4 or later, and for NSX-V to NSX-T.
Relocation
Onboarding
Define policies and plans to bring existing VMs from any cloud under management.
Service Broker
Policies
Interact with policies created in Service Broker.
Project
Projects
Provide visibility and isolation of provisioned resources for users with a project role.
Note: Swagger docs for the Platform and RBAC services are with the Projects Service.
Note: VMware provides customers with a 12 month End-of-Life notice for any breaking changes to public APIs. Any breaking changes are announced in the release notes included with the VMware vRealize Automation Documentation.

API versioning

It is highly recommended but not necessary to use API versioning. API versioning allows you to lock the API to a value and control when you upgrade to a new API version. If you do not use API versioning, the default behavior varies depending upon the API.
  • For the IaaS APIs, the latest version is 2021-07-15. If you consume the IaaS APIs without versioning or if you assign a value other than 2021-07-15, requests use the version 2019-01-15.

    As a best practice, lock your IaaS API requests with the apiVersion query parameter assigned to 2021-07-15 so that you ensure a smooth transition to the latest version before the version 2019-01-15 reaches its end of life. See Using Cloud Assembly APIs to Build your Resource Infrastructure.

  • For other APIs, you can specify any date you choose for the apiVersion query parameter. If you leave the value unspecified, requests use the latest API version by default. However backward compatibility is not preserved and if the API changes, you might encounter an unexpected change in the API response.

    As a best practice, use the apiVersion query parameter in your API requests and lock your API to the latest version listed in the Swagger specification. Then if a new API version is announced, you control when to opt-in to that version by changing the apiVersion query parameter to the new version value.

The following example shows how to use the apiVersion query parameter for the catalog API. The catalog API versions are: 2020-08-25, 2020-01-30, and 2019-01-15. Including the additional apiVersion query parameter locks the call to the API version that was in effect as of January 30, 2020 and through August 24, 2020.
GET https://appliance.domain.com/catalog/api/sources?apiVersion=2020-01-30
When you are ready to opt-in to the features released with the version dated 2020-08-25, change the value of the apiVersion query parameter.
GET https://appliance.domain.com/catalog/api/sources?apiVersion=2020-08-25
Setting the apiVersion query parameter to the latest version ensures that you will also get updates to the catalog API that occur after 2020-08-25. However, no breaking changes will occur until a new version is announced and you will only experience those changes if you change the value of the apiVersion query parameter to a date that is equivalent to the new version or later.
Note: API versions do not change for every vRealize Automation release and are not the same for all services. To check API versions for the services you use, go to https://<vRA-FQDN>/automation-ui/api-docs and click the cards to open the Swagger specifications.

How Developers Use the vRealize Automation APIs

To make API service calls, you use a browser application or an HTTP client application to send requests and review responses. The following open-source applications are commonly used:

To learn how to use the API, you start by getting an authentication token. Then you can perform steps outlined in the use cases in this guide. The use cases include curl commands in request examples. To use the commands, ensure that the jq command-line JSON processor is installed with curl. The jq parser ensures that responses are formatted for optimum readability. For information about jq installation, see https://stedolan.github.io/jq/.