You can expand the functionality of your vRealize Automation cloud templates by using dynamic types-based custom resources.

When you create cloud templates in vRealize Automation Cloud Assembly, you can use different resource types. Examples of resource types include Amazon S3 Buckets, Cloud Agnostics Machines, NSX networks, vSphere Virtual Machines, Microsoft Azure Resource Groups, and others.

You can use vRealize Automation Cloud Assembly to create custom resources for use cases that are not covered by the preconfigured resource types.

Each custom resource is based on a vRealize Orchestrator SDK inventory type and is created by a vRealize Orchestrator workflow that has an output which is an instance of your desired SDK type. Primitive types, such as Properties, Date, string, and number are not supported for the creation of custom resources. You can add custom resources to your cloud template design canvas for use during you lifecycle extensibility deployments.
Note: SDK object types can be differentiated from other property types by the colon (":") used to separate the plug-in name and the type name. For example, AD:UserGroup is a SDK object type used to manage Active Directory user groups.

For more information on vRealize Automation Cloud Assembly custom resources, see How to create custom resource types to use in vRealize Automation Cloud Assembly cloud templates in Using and Managing vRealize Automation Cloud Assembly.

The sample workflows included with the sample package in this guide, contain a generic implementation for basic dynamic types objects. The dynamic types sample code creates the object definition, including the dynamic types namespace, if required. All instance of the defined objects are stored in a custom resource as a JSON string. This approach can help speed up vRealize Automation custom resource prototyping with dynamic types.

The current guide includes a use case that demonstrates this functionality with a example based on storing additional metadata related to web servers that are deployed by vRealize Automation 8.x. In this use case, you use a dynamic types based custom resource to store information about the website that the deployed web server hosts.

In addition to the example provided below, that demonstrates how you can create dynamic types from scratch, you can also leverage the Dynamic Types plug-in generator version 3 to automatically create a plug-in from a OpenAPI/Swagger definition or from individual HTTP REST GET URLs. To download the plug-in generator, see Dynamic Types plug-in generator version 3.