.. _user/services/structure/resources: ********* resources ********* 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: .. toctree:: resources/connection resources/endpoint resources/mapping resources/container resources/link resources/ingress-route resources/user resources/role resources/volume resources/file resources/rules resources/server resources/node :maxdepth: 1 The following pseudo template outlines the resources section: .. code-block:: yaml resources: "": "type": "properties": "": "type": "properties": .. _user/services/structure/resources/resource-id: 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 :ref:`user/services/service-id` and how the Docker container names may be chosen [#f1]_ (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 :ref:`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 :ref:`above ` for the list of available resource types. .. _user/services/structure/resources/properties: 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: .. code-block:: yaml properties: string: OneStringValue string: A longer string value number: 123 literalList: - "[first]-string-value with a special characters" - "[second]-string-value with a special characters" boolean: true referenceForOneValue: !ref myInternalResourceName substitutedString: !sub 'Some ${param}' joinedWithOtherProperties: !merge otherProperty: oneMoreValue: 123 .. rubric:: Footnotes .. [#f1] There is one exception from the Docker analogy: The hyphen character ``-`` (also called minus) is intentionally not allowed for identifiers within the Connectware, because it is used internally as the separator character between service ID and resource ID e.g. for Docker container resources.