Parameters
• | Fields |
• | Usage |
Parameters can be referred to in a Policy Template using the syntax $<parameter_name> where parameter_name is the string following the parameter keyword.
Here is an example of a parameter declaration defining a tags parameter which can take a list of tags to be used in the policy template.
parameter "tags" do
type "list"
label "Tags"
description "A list of tags for the policy"
end
The available fields are:
Name |
Required? |
Type |
Description |
type |
yes |
string |
Defines whether the parameter is a string, a number or a list of values. The possible values for this field are string, number, and list. |
label |
yes |
string |
This is the display name shown to the user. Must not be whitespace-only. |
category |
no |
string |
An optional category used to group parameters in the UI |
description |
no |
string |
A description shown in the launch UI |
default |
no |
|
Default value for parameter if none is specified Note:This value must meet the requirements of the other fields (such as max_length, allowed pattern, etc.). |
no_echo |
no |
boolean |
Whether the value of the parameter should be hidden in UIs and API responses. The possible values for this field are true and false (default). |
allowed_values |
no |
array |
A comma-separated list of allowed values. Not valid when allowed_pattern is specified. |
min_length and max_length |
no |
number |
The minimum and maximum number of characters in the parameter value. Only valid when type is one of string or list. |
min_value and max_value |
no |
number |
The smallest and largest numeric value allowed for the parameter. Only valid when type is number. |
allowed_pattern |
no |
regexp |
Not valid when 'allowed_values' is specified. Note:The Ruby Regexp engine (a PCRE engine) is used to process and validate Regexp values, but there are a few unsupported features. These include modifiers other than 'm' and 'i', modifier groups (such as /(?mi)example/), and modifier spans (such as /(?mi:example)/). A helpful tool for developing PCRE regular expressions can be found here. |
constraint_description |
no |
string |
Message displayed when any of the constraint is violated. The system generates default error messages, this field allows overriding these to provide a clearer message to the user. |
Note:Note the following:
• | Parameters are displayed in the UI in the same order as they are defined in the template. |
• | If a default value is set for a parameter, this value will be pre-populated in the UI. For example, for a parameter with allowed values of true/false and a default value of true, the resulting checkbox on the UI would be enabled. Additional information on UI behavior is provided below. |
parameter "db_dump_bucket" do
type "string"
label "Database S3 bucket"
category "Database"
description "URL to S3 bucket that contains MySQL database dump"
min_length 3
max_length 63
allowed_pattern /[a-z0-9]+[a-z0-9\.-]*/
constraint_description <<-EOS
Bucket names must be at least 3 and no more than 63 characters long. Bucket names must be a series of one or more labels. Adjacent labels are separated by a single period (.). Bucket names can contain lowercase letters, numbers, and dashes. Each label must start and end with a lowercase letter or a number. Bucket names must not be formatted as an IP address (e.g., 192.168.5.4).
EOS
end
Parameters can be used in other declarations using the $ operator, for example:
parameter "tags" do
type "list"
label "A List of Tags"
end
# find all instances with the tags from the $tags parameter
resource "instances", type: 'rs_cm.instances' do
tags any($tags)
end
# pass the $tags parameter to the Cloud Work Flow
define get_code($tags) do
# use the $tags parameter
...
end
In the example above, the instances resource declaration uses the value associated with the parameter tags to initialize the instances resource tag field.