---
title: "Attach a resource descriptor to a connector"
method: POST
path: "/connectors/{connectorInstanceId}/resources"
tags: ["ConnectorResources"]
---

# Attach a resource descriptor to a connector

`POST /connectors/{connectorInstanceId}/resources`

Attaches a reusable resource descriptor to a connector instance. For example, the same
employee profile descriptor can be attached to an HTTP/OpenAPI connector over HTTPS, a CSV
resource accessed over VAULT, and a SQL connector accessed over JDBC without changing the descriptor.

## Path parameters

- `connectorInstanceId` string, uuid, required — Stable platform identifier for a configured connector instance.

## Request body

- AttachConnectorResourceRequest — Request to attach a resource descriptor to a connector instance for a specific data-flow role.
  - `resourceDescriptorId` string, uuid, required — Stable identifier for a described external or internal resource shape.
  - `role` 'SOURCE' | 'DESTINATION', required — How a connector participates in data movement. Use SOURCE for reads and DESTINATION for writes. Connectors that support both roles declare both values in supportedRoles.
  - `externalResourceName` string — Connector-local table, endpoint, bucket, object, claim set, form, topic, or collection name.
  - `accessProtocol` 'HTTP' | 'HTTPS' | 'JDBC' | 'ODBC' | 'SFTP' | 'FILE' | 'S3' | 'AZURE_BLOB' | 'GCS' | 'KAFKA' | 'AMQP' | 'MQTT' | 'OIDC' | 'DIDCOMM' | 'VAULT' | 'INTERNAL' | 'CUSTOM' — Transport or access protocol. This is intentionally separate from ResourceKind and RepresentationKind: for example, CSV data can be read over HTTPS, S3, SFTP, FILE, or VAULT.
  - `endpointId` string, uuid — Optional connector endpoint used to access this resource.
  - `metadata` StringMap — Small string-only metadata map for labels, ownership, routing hints, and implementation-specific annotations. Use first-class fields for contractually significant data.

## Response `201`

Resource attached to the connector.

- ConnectorResource — Request to attach a resource descriptor to a connector instance for a specific data-flow role.
  - `resourceDescriptorId` string, uuid, required — Stable identifier for a described external or internal resource shape.
  - `role` 'SOURCE' | 'DESTINATION', required — How a connector participates in data movement. Use SOURCE for reads and DESTINATION for writes. Connectors that support both roles declare both values in supportedRoles.
  - `externalResourceName` string — Connector-local table, endpoint, bucket, object, claim set, form, topic, or collection name.
  - `accessProtocol` 'HTTP' | 'HTTPS' | 'JDBC' | 'ODBC' | 'SFTP' | 'FILE' | 'S3' | 'AZURE_BLOB' | 'GCS' | 'KAFKA' | 'AMQP' | 'MQTT' | 'OIDC' | 'DIDCOMM' | 'VAULT' | 'INTERNAL' | 'CUSTOM' — Transport or access protocol. This is intentionally separate from ResourceKind and RepresentationKind: for example, CSV data can be read over HTTPS, S3, SFTP, FILE, or VAULT.
  - `endpointId` string, uuid — Optional connector endpoint used to access this resource.
  - `metadata` StringMap — Small string-only metadata map for labels, ownership, routing hints, and implementation-specific annotations. Use first-class fields for contractually significant data.
  - `connectorResourceId` string, uuid, required — Stable identifier for a resource attached to a connector instance.
  - `connectorInstanceId` string, uuid, required — Stable platform identifier for a configured connector instance.

## Other responses

- `400` — Validation error.
- `401` — Authentication is required.
- `404` — The requested resource was not found.

---

[API](https://skmtc.net/sphereon-opensource/apis/connector-integration-profile-api.md) · [All operations](https://skmtc.net/sphereon-opensource/apis/connector-integration-profile-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/sphereon-opensource/connector-integration-profile-api/revisions/60cb8c70871b/schema)
