> For the complete documentation index, see [llms.txt](https://docs.cybus.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.cybus.io/1-10-1/documentation/services/service-commissioning-files/resources.md).

# 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:

* [Cybus::Connection](/1-10-1/documentation/services/service-commissioning-files/resources/cybus-connection.md)
* [Cybus::Container](/1-10-1/documentation/services/service-commissioning-files/resources/cybus-container.md)
* [Cybus::Endpoint](/1-10-1/documentation/services/service-commissioning-files/resources/cybus-endpoint.md)
* [Cybus::File](/1-10-1/documentation/services/service-commissioning-files/resources/cybus-file.md)
* [Cybus::IngressRoute](/1-10-1/documentation/services/service-commissioning-files/resources/cybus-ingressroute.md)
* [Cybus::Link](/1-10-1/documentation/services/service-commissioning-files/resources/cybus-link.md)
* [Cybus::Mapping](/1-10-1/documentation/services/service-commissioning-files/resources/cybus-mapping.md)
* [Cybus::Node](/1-10-1/documentation/services/service-commissioning-files/resources/cybus-node.md)
* [Cybus::Role](/1-10-1/documentation/services/service-commissioning-files/resources/cybus-role.md)
* [Cybus::Server](/1-10-1/documentation/services/service-commissioning-files/resources/cybus-server.md)
* [Cybus::User](/1-10-1/documentation/services/service-commissioning-files/resources/cybus-user.md)
* [Cybus::Volume](/1-10-1/documentation/services/service-commissioning-files/resources/cybus-volume.md)

Additionally, you can use the Rule Engine to create data transformation rules, to customize data handling and processing. These rules are defined within the resources section of your service commissioning files. For more information, see [Rule Engine](/1-10-1/documentation/services/rule-engine.md).

The following pseudo template outlines the resources section:

{% code lineNumbers="true" %}

```yaml
resources:
    '<resource ID>':
        'type': <resource type>
        'properties': <set of properties>

    '<another resource ID>':
        'type': <resource type>
        'properties': <set of properties>
```

{% endcode %}

## 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 (regular expression pattern: `[a-zA-Z0-9][a-zA-Z0-9_.]*`).

{% hint style="warning" %}
Unlike Docker, Connectware does not allow the use of hyphens `-` in identifiers. This is because the hyphen character serves as a special separator between service IDs and resource IDs when working with Docker container resources in Connectware.
{% endhint %}

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](/1-10-1/documentation/services/inter-service-referencing.md).

## 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:

{% code lineNumbers="true" %}

```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
```

{% endcode %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.cybus.io/1-10-1/documentation/services/service-commissioning-files/resources.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
