The resources section consists of the key name resources, and then an arbitrary long list of different resources. The following types of resources are available:

The following pseudo template outlines the resources section:

  "<resource ID>":
    "type": <resource type>
      <set of properties>

  "<another resource ID>":
    "type": <resource type>
      <set of properties>
Resource ID

The resource identifier (resource ID) may consist of ascii characters (lower and upper case), numbers, underscore, and period (decimal point), identical to the ServiceID and how the Docker container names may be chosen [1] (regular expression pattern: [a-zA-Z0-9][a-zA-Z0-9_.]*). Each resource ID must be unique within the file. Use the resource ID to reference the resource in other parts of the file.

When referencing resources of other services, the resource ID is prefixed by the service ID of the other service and a double colon ::, as described at inter-service referencing.

Resource Type

The resource type identifies the type of resource that you are declaring. For example, Cybus::Container declares a Cybus compliant Docker container. See above for the list of available resource types.

Resource Properties

Resource properties are additional options that can be specified for a resource.

If a resource doesn’t require that properties be declared, omit the properties section of that resource.

Property values can be literal strings, lists of strings, booleans, parameter references (!ref), pseudo references, or value substitutions (!sub) by variables or return values of functions, or the merge (only shallow merging: !merge) of the values from some other property in the parameters or definitions section, together with more values added here.

The following example shows you how to declare different property value types:

  string: OneStringValue
  string: A longer string value
  number: 123
    - "[first]-string-value with a special characters"
    - "[second]-string-value with a special characters"
  boolean: true
  referenceForOneValue: !ref myInternalResourceName
  substitutedString: !sub 'Some ${param}'
      oneMoreValue: 123