1/21/19 – Updated with new URL for IaaS endpoint. Thank you Jon Schulman from CMBU PM!
Did you know that the Cloud Management Business Unit’s approach to Cloud Automation Services is an API first approach? The concept of programmatic interaction with platforms is extremely common place in today’s growing landscape. There are hundreds of different usecases for API level integration, things like extensibility, bulk management, quickly instantiating environments, 3rd party tool integrations – the list goes on and on! In the previous automation platform (vRealize Automation) all functions were not able to be exposed via a programmatic interface. In Cloud Automation Services however, we’re making all of these API’s public so you can get started automating your environments right out of the gate!
These primary endpoints currently across the 3 Cloud Automation Services products are
We’ve provided Swagger URL’s for all of these endpoints in Cloud Automation Services. With these, it’s easy to look up every call in the platform, as well as what the required inputs for every call. Lets step through the endpoints in greater detail. Note that these API’s are still a part of our Initial Availability of the platform and may have some changes as we cross into General Availability.
Accessing the API – Getting Your Token
One of the great things about VMware’s Cloud services is that all of the authentication to the platform is centralized within the Cloud Services Portal (CSP). One benefit to this is that the API token that you leverage within the platform is a common token across all off the Cloud Services. In order to leverage the API endpoints we highlight below, you’ll need to acquire and use that token.
With how popular API interaction has gotten, there have been a number of blogs posted around this topic. My favorite is William Lam’s post on the topic here
We will cover using this token to make API calls in our next blog post!
Multi-Cloud IaaS API
This API holds the components that make up the Infrastructure as a Service offering. Creation/Modification/Removal of objects that support IaaS live in this namespace including Data Collector functionalty. Examples of when you might use this API endpoint are…
- Creating and removing Cloud Accounts (AWS, Azure, vSphere)
- Creating/Removing Data Collectors
- Creating Flavor/Image/Netowrk profiles
- Creating/Deleting Projects
- Checking Cloud Assembly request Status
This API holds all functionality specific to Blueprint services. Creating/Validating/Provisoning blueprints. You might use this API when you want to…
- Query an Environments Blueprints
- Create/Delete Blueprints
- Gather Versioning Data of Current Blueprints
This API is focused on interacting with deployment objects, or platforms/blueprints that have been deployed into the system. You might use this API when you want to…
- Querying deployed resources
- Getting details around a specific Deployment
- Destroying Deployments (machines/platforms)
- Updating a Deployments Name or Description across Cloud Automation Services
Service Broker (Catalog Service) API
This API exists for interacting with the Service Broker platform, which is primarilly focused on end user catalog experience. You might use this API when you want to…
- Query information about your library of published blueprints
- Add new blueprint sources, like a new S3 bucket for CFT’s
- Entitle different projects to cosume newly published bluepirints
- Request library items
- Query deployments
Code Stream API
The Code Stream API is inclusive of all Code Stream platform functionality, which is one of the 3 products within Cloud Automation Services. Pipeline and Release Management is common theme when it comes to Code Stream. You’ll end up using this API when…
- Querying pipeline status
- Creating new pipelines
- Adding and Querying Endpoints for Code Stream (not to be confused with Cloud Assembly)
How Can I Interact With API’s?
We’re currently in planning to deliver some great content around interacting with the API’s in developer/automation friendly ways. From a tooling perspective there are several options
- Postman – The most common method we see used for testing and interacting with API’s is the Postman tool. Postman gives you the ability to store variables and credentials. It’s easy to get started with and highly customizable – although it can be challenging to perform end to end automation in bulk. Postman is great for individual calls, or a small subset of interaction with a single CAS Organization
- Powershell – Powershell has a comprehensive REST API (Invoke-WebRequest) capability that allows interacting with REST Endpoints. Stay tuned for some information on this interaction method in the coming weeks!
- Python – Noted as one of the fastest growing developer languages, using Python in conjunction with the requests module offers some great interaction capabilities with REST API’s. As a heavy Python user myself – expect a lot of examples to come soon! Pythonistas Unite! More information to come here as well!
Usecase is important! Stay tuned for our next post on this topic where we will start interacting with these API’s to not only give some examples of you can use these API’s to solve real usecases, but how VMware and the Hands On Lab is using these API’s to automate the Cloud Automation Services hands on lab!