> For the complete documentation index, see [llms.txt](https://developer.celigo.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developer.celigo.com/cli/commands/http-connector-resources.md).

# http-connector-resources

The resources of your own custom HTTP connectors — the logical API groupings (orders, customers, …) inside a connector created with [`http-connectors create`](/cli/commands/http-connectors.md#celigo-http-connectors-create). This is the authoring half of `http-connectors`: its nested `resources` / `resource` reads browse any connector, including other partners' published ones, in an abridged shape; this group reaches only the resources your account owns, in full, and is where they are created, replaced, and deleted. A resource read through either route is the same object.

Build a connector in this order: the connector (`http-connectors create`), then its resources (this group, each naming the connector as `_httpConnectorId`), then the endpoints under each resource ([`http-connector-endpoints`](/cli/commands/http-connector-endpoints.md)).

Added in celigo-cli 2026.9.6.

**REST API**: [HTTP Connector Resources](https://developer.celigo.com/api/api-reference/connections-and-http-connectors/http-connector-resources)

```
celigo http-connector-resources <subcommand> [args] [flags]
```

Supports all [global flags](/cli/getting-started/global-flags.md).

***

## Subcommands

| Subcommand             | Purpose                                                               |
| ---------------------- | --------------------------------------------------------------------- |
| `list`                 | List every HTTP connector resource the account owns.                  |
| `get <id>`             | Fetch one resource by ID.                                             |
| `create`               | Create a resource from a JSON body (`--file <path>` or stdin).        |
| `update <id>`          | Full-replace PUT from a JSON body (`--file <path>` or stdin).         |
| `set <id> key=value …` | Edit fields through GET + modify + PUT. Supports `key=file://<path>`. |
| `delete <id>`          | Delete a resource. Not recoverable through the recycle bin.           |

Standard verbs only — there is no `dependencies` or `audit` here.

***

## `celigo http-connector-resources list`

List every HTTP connector resource the account owns, across all of its connectors. The endpoint documents no field projection, so rows are trimmed client-side: `--fields` changes what is printed, not what is transferred.

**Signature**

```bash
celigo http-connector-resources list [--fields <spec>] [--limit <n>]
```

**Flags**

| Flag              | Type    | Default   | Description                                                                                                                                                                                                                                           |
| ----------------- | ------- | --------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `--fields <spec>` | string  | `default` | Fields to print per row. `default` prints `_id`, `name`, and the table columns; `all` prints complete documents; a comma-separated list selects specific fields (dot notation allowed). See [field projection](/cli/getting-started/global-flags.md). |
| `--limit <n>`     | integer | —         | Return at most `<n>` rows, fetching a single page.                                                                                                                                                                                                    |

Default table columns: `_id`, `name`, `_httpConnectorId`, `published`, `isRoot`, `lastModified`.

**Example**

```bash
celigo http-connector-resources list --format table

# The resources of one connector
celigo http-connector-resources list --jq '[.[] | select(._httpConnectorId == "5f83a9b2c7d3e8f1a2b3c4d5")]'
```

**Corresponds to**: [`GET /v1/httpconnectorresources`](https://developer.celigo.com/api/api-reference/connections-and-http-connectors/http-connector-resources) — limited to resources the account owns.

***

## `celigo http-connector-resources get`

Fetch one resource by ID, in full.

**Signature**

```bash
celigo http-connector-resources get <id>
```

**Example**

```bash
celigo http-connector-resources get 6a1b2c3d4e5f6a7b8c9d0e1f
```

**Corresponds to**: [`GET /v1/httpconnectorresources/{_id}`](https://developer.celigo.com/api/api-reference/connections-and-http-connectors/http-connector-resources)

***

## `celigo http-connector-resources create`

Create a resource from a JSON body (`--file <path>` or stdin). `name` and `_httpConnectorId` (a connector your account owns — create it first with `http-connectors create`) are required. List the connector's `versions[]._id` values in `_versionIds` to make the resource available in those versions — every id must be one of the connector's versions, or the create fails with a `422`. Publish the resource by setting `published: true`. Requires `full` mode.

Since celigo-cli 2026.10.1, `create` refuses a body that is not a JSON object, and one that holds masked credential placeholders (`"******"` — four or more asterisks and nothing else), with no override.

**Signature**

```bash
celigo http-connector-resources create --file <path>
celigo http-connector-resources create < resource.json     # or pipe on stdin
```

**Flags**

| Flag                | Type   | Default | Description                                                                    |
| ------------------- | ------ | ------- | ------------------------------------------------------------------------------ |
| `-f, --file <path>` | string | —       | Read the JSON body from a file instead of stdin (`--file -` also means stdin). |

**Example**

```bash
cat > resource.json <<'EOF'
{
  "name": "Orders",
  "_httpConnectorId": "5f83a9b2c7d3e8f1a2b3c4d5",
  "_versionIds": ["60a1b2c3d4e5f6a7b8c9d0e1"],
  "published": false
}
EOF
celigo http-connector-resources create --file resource.json
```

**Corresponds to**: [`POST /v1/httpconnectorresources`](https://developer.celigo.com/api/api-reference/connections-and-http-connectors/http-connector-resources)

***

## `celigo http-connector-resources update`

Full-replace PUT from a JSON body (`--file <path>` or stdin). Requires `full` mode.

> ⚠️ **`update` replaces the whole resource.** `_versionIds`, `metadata`, `resourceFields`, `supportedBy`, and the other optional fields are cleared when the body leaves them out (only `published` and `isRoot` keep their stored values); `name` and `_httpConnectorId` are required on every PUT. GET the current document, modify it, and PUT the complete object back — or use `set`, which does that for you.

**Signature**

```bash
celigo http-connector-resources update <id> --file <path>
celigo http-connector-resources update <id> < resource.json     # or pipe on stdin
```

**Flags**

| Flag                | Type    | Default | Description                                                                                                                                                                                            |
| ------------------- | ------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `-f, --file <path>` | string  | —       | Read the JSON body from a file instead of stdin (`--file -` also means stdin).                                                                                                                         |
| `--force`           | boolean | `false` | Submit even if the body contains masked credential values (`"******"`) copied from a GET. Since celigo-cli 2026.10.1 a mask is four or more asterisks and nothing else; a lone `*` is sent as a value. |

**Example**

```bash
celigo http-connector-resources get 6a1b2c3d4e5f6a7b8c9d0e1f --format json \
  | jq '.published = true' \
  | celigo http-connector-resources update 6a1b2c3d4e5f6a7b8c9d0e1f
```

**Corresponds to**: [`PUT /v1/httpconnectorresources/{_id}`](https://developer.celigo.com/api/api-reference/connections-and-http-connectors/http-connector-resources)

***

## `celigo http-connector-resources set`

Edit individual fields with `key=value` assignments. This resource has no PATCH whitelist, so every assignment goes through GET → modify → PUT with the complete document — the fields you do not name are preserved, which is what makes `set` the safe way to publish a resource or add a version. Values are auto-parsed as JSON (`published=true` is a boolean); dot notation, array indexing, and `key=file://<path>` are supported.

`set` is blocked in `read` mode. `operate` mode allows only the operational fields on the group's own PATCH whitelist (since celigo-cli 2026.10.1; it used to allow the mode's whole list), and a connector resource has none, so `set` needs `full` mode. See [Profiles & regions](/cli/getting-started/profiles.md#permission-modes).

Since celigo-cli 2026.10.1, when the server's reply to the PUT still holds a field's previous value, `set` prints `not stored <field> the server answered the PUT but still holds its previous value …` on stderr and exits 1.

**Signature**

```bash
celigo http-connector-resources set <id> <key=value> [key=value ...]
```

**Example**

```bash
# Publish the resource
celigo http-connector-resources set 6a1b2c3d4e5f6a7b8c9d0e1f published=true

# Make it available in a second connector version
celigo http-connector-resources set 6a1b2c3d4e5f6a7b8c9d0e1f \
  '_versionIds=["60a1b2c3d4e5f6a7b8c9d0e1","60a1b2c3d4e5f6a7b8c9d0e2"]'
```

**Corresponds to**: [`GET /v1/httpconnectorresources/{_id}`](https://developer.celigo.com/api/api-reference/connections-and-http-connectors/http-connector-resources) then [`PUT /v1/httpconnectorresources/{_id}`](https://developer.celigo.com/api/api-reference/connections-and-http-connectors/http-connector-resources)

***

## `celigo http-connector-resources delete`

Delete a resource. Prompts for confirmation unless `-y` is supplied. Requires `full` mode.

> ⚠️ **Deletes skip the recycle bin.** A deleted resource cannot be restored. The delete is refused while any endpoint still lists the resource in its `_httpConnectorResourceIds` — delete or repoint those endpoints first.

**Signature**

```bash
celigo http-connector-resources delete <id> [-y]
```

**Flags**

| Flag        | Type    | Default | Description                   |
| ----------- | ------- | ------- | ----------------------------- |
| `-y, --yes` | boolean | `false` | Skip the confirmation prompt. |

**Example**

```bash
celigo http-connector-resources delete 6a1b2c3d4e5f6a7b8c9d0e1f -y
```

**Corresponds to**: [`DELETE /v1/httpconnectorresources/{_id}`](https://developer.celigo.com/api/api-reference/connections-and-http-connectors/http-connector-resources)

***

## Gotchas

* **Two routes, one object.** `http-connectors resources <connectorId>` browses one connector's resources — any connector's, abridged. This group lists and edits only what your account owns, in full. The document behind both is the same.
* **Order of creation matters.** A resource needs its connector (`_httpConnectorId`) to exist; an endpoint needs its resource. Deletion runs the other way: a connector cannot be deleted while it still has resources, and a resource cannot be deleted while an endpoint still lists it.
* **`_versionIds` must name the connector's own versions.** Each id must be one of the connector's `versions[]._id` values, or the write fails with a `422`. Read them with `http-connectors get <id>`.
* **`update` clears what it omits.** Prefer `set`, which round-trips the complete document; here every `set` is a GET + PUT, since the resource has no PATCH whitelist.
* **Not recoverable.** Unlike most resources, a deleted connector resource does not land in the recycle bin.
* **Permission modes.** `list` and `get` work in `read` mode; `create`, `update`, `delete` — and, in practice, `set` — need `full`.

## Related

* [http-connectors](/cli/commands/http-connectors.md) — the connector these resources belong to (`_httpConnectorId`, `versions[]`), and the read-only `resources` / `resource` browse of any connector.
* [http-connector-endpoints](/cli/commands/http-connector-endpoints.md) — the method + URI operations under a resource; they reference it through `_httpConnectorResourceIds`.
