# Folder Motation

## What is Folder Motation?

The folder Motation object is a dependency of a content Motation. It defines any folders related to a content Motation.

## Structure

Below is the structure of the folder Motation object and what each attribute is for. Every source connector that supports folder Motation objects must create a folder Motation with the required fields. And every destination connector supports folder Motation objects must support a folder Motation with only the required fields.&#x20;

* systems (\*array | required) The system that the Motation came from.
  * name (\*string | required) Name of the system.
  * date (\*string | required) Date the Motation was built from the system.
  * version (\*string | optional) Version of the system.
* folders (\*array | required) List of folders associated with a content Motation.
  * id (\*object | required) ID of the folder.&#x20;
    * value (\*string | required) Single ID of the folder. Always an Impulse ID.&#x20;
    * label (\*string | optional) Label of the ID.&#x20;
  * path (\*string | required) Absolute path of the folder including the folder.&#x20;
  * domainName (\*string | optional) Domain name the folder lives at. Matches name for a domain in domain Motation.&#x20;
  * domainId (\*string | optional) ID of a domain the tag lives at. Matches ID in a domain Motation.&#x20;
    * value (\*string | required) Single ID of domain.&#x20;
    * label (\*string | optional) Label of ID.
  * system (object | optional) Key/Value repository specific values.&#x20;
* key (\*object | required) Used to create a unique ID based on a hash of values from fields.&#x20;
  * fields (\*array | required) The fields in the folder Motation to use to build the hash.&#x20;
    * name (\*string | required) Name of the field to use in the hash ID.&#x20;
    * id (\*object | required) ID of the field.
      * value (\*string | required) Single ID of the field.
      * label (\*string | optional) Label of the field.&#x20;
* audit (\*array | required)
  * date (\*string | required) Date the raw data was picked up.
  * user (\*object | optional) User that picked up the definition.&#x20;
    * id (\*object | required) ID of the user.
      * value (\*string | required) Single ID value for the user. Always Impulse ID.&#x20;
      * label (\*string | optional) Label for the ID.&#x20;
    * name (\*string | optional) Name associated with the user.&#x20;
    * email (\*string | optional) Email associated with the user.&#x20;
    * username (\*string | optional) Username associated with the user.&#x20;
