# Create the Input contract

The **Input Contract** defines how Data Mover connects with the actor to retrieve the files.

The following entities **must already exist** in Data Mover:

* **Actor**: the data producer where Data Mover collects the files. See the [Create your first actor](/data-mover-1.21/actors/create-an-actor.md) page for details.
* **Actor** → **Client connection**: the connection that Data Mover uses to access the folder of the data producer with the files. See the [Client Connections](/data-mover-1.21/transfer-protocols-and-connectors/client-connections.md) page for details.&#x20;
* **Actor** → **VFS and virtual path**: the path where files will be stored in Data Mover.&#x20;

## Define the contract info

Go to **Design** → **Contracts** and click the **New** button to open the **New Contract** window.

Complete the fields in the **INFO** section as follows:

* **Name**: assign an identification name to the contract. It is suggested to assign a name that can be easily identified at any time.
* **Description**: Enter a description of the contract you are creating.
* **Contract Type**: In the drop-down list, select **Input**.
* **Execution Queue**: By default, a contract is associated with a default queue. Details about queues can be found in the [Job Queues](/data-mover-1.21/jobs/job-queues.md) section of this documentation.

After you have filled in all the fields, click the **CONTINUE** button.

<figure><img src="/files/t6EnbnaufUc0eMKNrApV" alt="" width="375"><figcaption></figcaption></figure>

## Associate the contract with the actor

This step defines the **actor** that Data Mover needs to access to collect the files. It is the branch where files must be collected and it must already exist.&#x20;

<figure><img src="/files/gxdRQ2hrBdfpiNQnlkko" alt="" width="375"><figcaption></figcaption></figure>

Click the **CONTINUE** button.

## Define the contract actions

Define the trigger that will fire the contract and the workflow, i.e., the sequence of tasks that will be executed in the contract.

Enter the **Action name**. If you are satisfied with the system-generated name, you can leave it as it is. If you are not, enter a different name.&#x20;

Select the **Trigger** that will start the contract. In our scenario, Data Mover must connect every hour to the branch repository, so we must select the **Time** trigger type. See [Time Trigger](/data-mover-1.21/copy-of-workflow-templates/triggers/ori-trigger-types-for-input-contracts.md#time-trigger).

Select the **Workflow** from the drop-down menu. For our scenario, we need the **system\_time\_remoteLs-loop-pull** workflow, which checks a remote directory and collects the new files found in that directory. \
For more information about workflows, refer to the [Workflow templates](/data-mover-1.21/workflow-templates/what-is-a-workflow-template.md) section.&#x20;

Click on the **SAVE** button to be directed to the **New Contract** page.&#x20;

<figure><img src="/files/bo8NJ8sXd3suDtlEl7Lq" alt="" width="375"><figcaption></figcaption></figure>

## Set the contract variables

Contract variables are configured in the **Actions** section of the **New Contract** page.

Fill in these mandatory fields:

* **Cron expression**: use the **Generate** button to get help. Click **Hours** → **Every Hour** → **Confirm**.
* **Cluster**: select the cluster where the operation will be executed.
* **Select remote server**: select the client connection - which must be already configured - that will be used to access the server of the data producer.&#x20;
* **spLs\_remotePath**: enter the remote path where Data Mover will take the files. I.e., the path of the branch server.&#x20;
* **Actor**: select the actor, VFS and Virtual Path where files must be stored within Data Mover. This path must already exist.

<figure><img src="/files/vJw1bAvehGv7AqW8lAGJ" alt="" width="563"><figcaption></figcaption></figure>

Once mandatory variables are set, the <img src="/files/mP2bFXPxf1b4mgFBCyrJ" alt="" data-size="line"> icon will appear next to the **Action Name**, and the Status of the Contract will change to READY.

Let's now define the mediation contract, which takes the files stored in Data Mover (configured with the Actor field of the Input contract) to zip them.


---

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

```
GET https://docs.primeur.com/data-mover-1.21/contracts/business-scenarios/create-input-mediation-and-connection-contracts/create-the-input-contract.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
