As a blueprint developer, you use the input parameters to customize the blueprint request so that the deploying user can provide or select value at request time. The customization is more efficient compared to revising the Cloud Assembly blueprint YAML to modify values.

For example, you create a blueprint on which you and your team are testing to identify the optimal operating system, machine size, and cluster size. Rather than constantly editing the values in the blueprint resource properties, you use the input section provide your users with selectable values on deploy blueprint page.

Example of the input properties on the deployment request page.

The support input properties are described after the examples.

How Do I Implement Blueprint Inputs

In the blueprint example, you want to customize a property so that your users can provide or select a value. In the YAML resource section, you reference the input parameter with ${input.<property_name>}. You cannot use the word input in the blueprint YAML except in the way that it is used as an input value.

In the inputs area, you add the input definitions. In the following definitions, the requesting user can select from a list for size and image. The count property appears as a modifiable text box with 2 as the displayed value.

Example.

inputs:
  size:
    type: string
    enum:
      - small
      - medium
    description: Size of Nodes
    title: Node Size
  image:
    type: string
    enum:
      - coreos
      - ubuntu
    title: Select Image/OS
  count:
    type: integer
    default: 2
    maximum: 5
    minimum: 2
    title: Wordpress Cluster Size
    description: Wordpress Cluster Size (Number of nodes)

In the resource section, provide the parameters.

Example.

resources:
  WebTier:
    type: Cloud.Machine
    properties:
      name: wordpress
      flavor: '${input.size}'
      image: '${input.image}'
      count: '${input.count}'

For additional examples, see WordPress Use Case: Create and Iteratively Develop a Blueprint.

Input Properties

The blueprint inputs support the following properties.

Table 1. Blueprint Input Properties and Descriptions

Property

Description

type

Specifies the supported data types are number, integer, string, Boolean, and object.

enum

Creates a drop-down menu containing the allowed values.

Use the following example as a format guide.

enum:
      - value 1
      - value 2

pattern

Allows a regular expression that you can use with the string type.

For example, '[a-z]+' or '[a-z0-9A-Z@#$]+'

default

Provides a value that populates the option on the deployment request page and is the value submitted unless the requesting user changes it.

The default value must be the same as the type. For example, do not use a word in an integer text box.

description

Provides signpost help text for the option.

You provide a string.

encrypted

Indicates if the input value must be encrypted.

Supported values are true or false.

maxLength

Determines the maximum number of characters allowed for a string field.

For example, to limit a field top 25 characters, enter maxLength: 25.

maximum

Sets the largest allowed value for a number.

You can set the maximum value for numbers and integers.

minLength

Determines the minimum number of characters allowed for a string field.

minimum

Sets the smallest allowed value for a number.

You can set the minimum value for numbers and integers.

required

Indicates if the user must provide a value or not.

Supported values are true or false.