# uip is resources

> Syntax and options for `uip is resources`, which lists, describes, and runs operations against connector data-plane objects.

`uip is resources` works with the runtime objects a connector addresses — tickets, contacts, records, files. `list` enumerates the connector's objects, `describe` returns the field schema and operations for one object, and `run` calls the connector's data plane (Create / List / Get / Update / Replace / Delete) against a connection. Every `run` verb requires `--connection-id`; the cached metadata reads (`list`, `describe`) accept it optionally to surface custom objects/fields.

:::important
The data-plane verb group is `uip is resources run`, **not** `execute` — `uip is resources execute ...` doesn't exist and fails with "unknown command".
:::

## Synopsis

```
uip is resources <verb> [options]
```

## Verbs

| Verb | Purpose |
|---|---|
| `list` | List objects available on a connector; optionally filter by operation. |
| `describe` | Describe one object's operations and field schema. |
| `run` | Call the connector's data plane (Create / List / Get / Update / Replace / Delete). |

## uip is resources list

List objects available on a connector. Results depend on whether `--connection-id` is supplied — connection-scoped listings include custom objects; unscoped listings don't (the CLI surfaces a `Warning` in that case).

### Arguments

| Name | Required | Purpose |
|---|---|---|
| `<connector-key>` | yes | Connector key, for example `uipath-zoho-desk`. |

### Options

| Short | Long | Value | Default | Description |
|---|---|---|---|---|
| — | `--operation` | enum | — | Filter by operation: `List`, `Retrieve`, `Create`, `Update`, `Delete`, `Replace`. |
| — | `--connection-id` | id | — | Scope to a specific connection (enables custom objects). |
| — | `--refresh` | flag | off | Force re-fetch from the API, ignoring cache. |

### Examples

```bash
uip is resources list uipath-zoho-desk

# Only objects that support a Create operation
uip is resources list uipath-zoho-desk --operation Create

# Connection-scoped listing — includes custom objects
uip is resources list uipath-zoho-desk \
    --connection-id a1b2c3d4-0000-0000-0000-000000000001
```

### Data shape (--output json)

```json
{
  "Code": "ResourceList",
  "Data": [
    {
      "Name": "tickets",
      "DisplayName": "Tickets",
      "Path": "/tickets",
      "Type": "standard",
      "SubType": "standard",
      "Custom": "no",
      "ElementKey": "uipath-zoho-desk"
    }
  ]
}
```

## uip is resources describe

Describe an object's fields and operations. Without `--operation`, returns the list of available operations and a hint. With `--operation`, narrows to one operation and returns its parameters, request fields, and response fields.

### Arguments

| Name | Required | Purpose |
|---|---|---|
| `<connector-key>` | yes | Connector key. |
| `<object-name>` | yes | Object name — the `objectName` from the activity's configuration JSON (for example, `tickets`). Find names with `resources list`. Addresses the object the same way under both `--activity-version` values (see below). |

### Options

| Short | Long | Value | Default | Description |
|---|---|---|---|---|
| — | `--connection-id` | id | — | Scope to a connection (enables custom fields; required together with `--field`). |
| — | `--operation` | enum | — | `List`, `Retrieve`, `Create`, `Update`, `Delete`, or `Replace`. Required together with `--field`. |
| — | `--activity-version` | `1.0.0` \| `4.0.0` | `1.0.0` | Which activity metadata endpoints to query — see [Activity metadata versions](#activity-metadata-versions) below. |
| `-f` | `--field` | `name=value` | — | Parent-field value. Repeatable. Runs the connector's api-type `ObjectAction` (for example Jira's `GenerateSchema`, Salesforce's `GenerateQuerySchema`) and merges its custom-field response into `requestFields`. Requires both `--connection-id` and `--operation`. Not supported with `--activity-version 4.0.0`. |
| — | `--action` | name | inferred | Explicit api-type `ObjectAction` name (for example `GenerateSchema`). Optional — inferred from the `--field` names when omitted; pass it to disambiguate when more than one action could match. |
| — | `--refresh` | flag | off | Force re-fetch from the API, ignoring cache. Cache is also automatically bypassed whenever `--field` is supplied, since a design-action response varies per parent-field combination. |

### Activity metadata versions

`--activity-version` switches which Integration Service metadata endpoint `describe` queries:

- **`1.0.0`** (default) — v3 elements endpoints, connection-scoped. Supports `-f/--field` design-action lookups.
- **`4.0.0`** — v4 elements endpoints, **not** connection-scoped. Passing `--connection-id` alongside it is accepted but ignored (with a warning) since v4 doesn't need it for the fetch itself. `-f/--field` is rejected outright with `--activity-version 4.0.0` — design-time `ObjectAction`s are a v3-only, instance-scoped feature.

In both cases the `<object-name>` positional means the same thing — the object's name — so there's no addressing difference between the two versions, only which backend endpoint answers the call.

### Examples

```bash
# List operations available on this object (v3, default)
uip is resources describe uipath-zoho-desk tickets

# Field schema for the Create operation
uip is resources describe uipath-zoho-desk tickets --operation Create

# Required request fields, scripting-friendly
uip is resources describe uipath-zoho-desk tickets --operation Create \
    --output-filter 'Data.requestFields[?required].name'

# Describe a 4.0.0 activity by object name (v4 elements endpoints)
uip is resources describe uipath-salesforce-slack add_users_to_usergroup \
    --activity-version 4.0.0

# Parent-field values (Jira: project + issue type → custom fields for that combination)
uip is resources describe uipath-atlassian-jira curated_create_issue \
    --connection-id a1b2c3d4-0000-0000-0000-000000000001 \
    --operation Create \
    -f fields.project.key=ENGCE -f fields.issuetype.id=3

# Body-token parent field (Salesforce SOQL: query → response columns)
uip is resources describe uipath-salesforce-sfdc query_records \
    --connection-id a1b2c3d4-0000-0000-0000-000000000001 \
    --operation Create \
    -f query="SELECT Id, Name FROM Account WHERE Status = 'Active'"
```

:::note
If a `-f/--field` call comes back holding only the fields you supplied (none of the connection's own custom fields), the response also carries a `Warning`: one of the values you passed probably doesn't exist on that connection. Check it against the lookup for that field.
:::

### Data shape (--output json)

Without `--operation`:

```json
{
  "Code": "ResourceMetadata",
  "Data": {
    "name": "tickets",
    "displayName": "Tickets",
    "elementKey": "uipath-zoho-desk",
    "availableOperations": [
      { "method": "GET", "name": "List", "description": "Search for Tickets", "path": "/tickets" },
      { "method": "POST", "name": "Create", "description": "Create a Tickets", "path": "/tickets" }
    ],
    "hint": "Use --operation <Create|List|Retrieve|Update|Delete|Replace> to see fields for a specific operation."
  }
}
```

With `--operation Create`, the same `Code: "ResourceMetadata"` is returned, but instead of `availableOperations` the payload carries `operation`, `parameters`, `requestFields`, and `responseFields`.

With `-f/--field` (parent-field / design-action lookup), `requestFields` reflects the merged, connection-specific schema:

```json
{
  "Code": "ResourceMetadata",
  "Data": {
    "name": "curated_create_issue",
    "operation": { "method": "POST", "name": "Create" },
    "requestFields": [
      { "name": "fields.project.key", "required": true, "displayName": "Project" },
      { "name": "fields.issuetype.id", "required": true, "displayName": "Issue type" },
      { "name": "fields.summary", "required": true, "displayName": "Summary" },
      { "name": "fields.description", "required": false, "displayName": "Description" }
    ]
  }
}
```

## uip is resources run

Call the connector's data plane. `run` itself is a group; the actual verbs are `create`, `list`, `get`, `update`, `replace`, and `delete`. Every verb requires `--connection-id`; `create`, `update`, and `replace` additionally require `--body` with a JSON request body. `delete` is **destructive** and requires `-y, --yes` — the CLI never prompts.

```
uip is resources run create   <connector-key> <object-name> --connection-id <id> --body <json>
uip is resources run list     <connector-key> <object-name> --connection-id <id>
uip is resources run get      <connector-key> <object-name> --connection-id <id> [--query <params>]
uip is resources run update   <connector-key> <object-name> --connection-id <id> --body <json>
uip is resources run replace  <connector-key> <object-name> --connection-id <id> --body <json>
uip is resources run delete   <connector-key> <object-name> --connection-id <id> -y, --yes [--query <params>]
```

HTTP method mapping: `create` → POST, `list` → GET (collection), `get` → GET-by-id, `update` → PATCH, `replace` → PUT, `delete` → DELETE.

### Arguments

| Name | Required | Purpose |
|---|---|---|
| `<connector-key>` | yes | Connector key. |
| `<object-name>` | yes | Object name (for example, `tickets`). |

### Shared options

| Short | Long | Value | Default | Description |
|---|---|---|---|---|
| — | `--connection-id` | id | required | Connection used to authorize the data-plane call. |
| — | `--query` | params | — | Query parameters. Accepts `key=value&key=value` or a JSON object. |
| — | `--body` | JSON | — | Request body. Required for `create`, `update`, `replace`. |
| `-y` | `--yes` | flag | — | **Required on `delete` only.** Confirms this irreversible operation — the CLI never prompts. |

### Examples

```bash
# Create a ticket
uip is resources run create uipath-zoho-desk tickets \
    --connection-id a1b2c3d4-0000-0000-0000-000000000001 \
    --body '{"subject":"New issue","departmentId":"DEP-1"}'

# List tickets — first page
uip is resources run list uipath-zoho-desk tickets \
    --connection-id a1b2c3d4-0000-0000-0000-000000000001

# Delete a ticket by ID — destructive, requires --yes
uip is resources run delete uipath-zoho-desk tickets \
    --connection-id a1b2c3d4-0000-0000-0000-000000000001 \
    --query 'id=TK-1001' \
    --yes
```

### Data shape (--output json)

```json
{
  "Code": "ExecuteOperation",
  "Data": { "id": "TK-1001", "subject": "New issue", "status": "Open" }
}
```

`list` operations return `{ "items": [...] }` and, when the backend signals more pages via `Elements-Has-More` / `Elements-Next-Page-Token` headers, include a `Pagination` object with `HasMore` and `NextPageToken`.

Failed calls surface with `Failure`, the HTTP status as `Message`, and the server body as `Instructions`.

## Related

- [`uip is connections`](./uip-is-connections.md) — `--connection-id` values come from `connections list` / `connections create`.
- [`uip is connectors`](./uip-is-connectors.md) — discover the connector key first.
- [`uip is activities`](./uip-is-activities.md) — see the named operations a connector exposes.
- [`uip is triggers`](./uip-is-triggers.md) — event-driven counterparts to the data-plane verbs here.

## See also

- [Integration Service tool overview](./uip-is.md)
- [Global options](./global-options.md)
- [Exit codes](./exit-codes.md)
