openapi: 3.1.0 info: title: Eunomia DS Frontend Gateway API description: "OpenAPI specification for the Eunomia DS-Agent Frontend Gateway. The gateway proxies requests from the GUI to backend microservices. All paths are prefixed with `/api` and routed by service prefix to the corresponding microservice (catalog-agent, negotiation-agent, transfer-agent, auth-agent). " version: 1.0.0 servers: - url: "{gateway_url}/api" description: Frontend Gateway variables: gateway_url: default: http://localhost:8080 tags: - name: Catalogs description: "Catalog CRUD operations (\u2192 catalog-agent)" - name: CatalogRPC description: "Catalog RPC commands (\u2192 catalog-agent DSP)" - name: Datasets description: "Dataset CRUD operations (\u2192 catalog-agent)" - name: Distributions description: "Distribution CRUD operations (\u2192 catalog-agent)" - name: DataServices description: "Data-service CRUD operations (\u2192 catalog-agent)" - name: OdrlPolicies description: "ODRL policy operations (\u2192 catalog-agent)" - name: PolicyTemplates description: "Policy template operations (\u2192 catalog-agent)" - name: Datahub description: "Datahub domain/dataset queries (\u2192 catalog-agent)" - name: Connector description: "Connector instance queries (\u2192 catalog-agent)" - name: ConnectorTemplates description: "Connector template operations (\u2192 catalog-agent)" - name: Negotiations description: "Contract negotiation operations (\u2192 negotiation-agent)" - name: NegotiationRPC description: "Negotiation RPC commands (\u2192 negotiation-agent)" - name: Transfers description: "Transfer process operations (\u2192 transfer-agent)" - name: TransferRPC description: "Transfer RPC commands (\u2192 transfer-agent)" - name: Subscriptions description: "Pub/sub subscription operations (\u2192 transfer-agent)" - name: Dataplane Transfers description: "Dataplane transfer operations (\u2192 transfer-agent)" - name: Dataplane Logs description: "Dataplane log operations (\u2192 transfer-agent)" - name: Transfer Events description: "Transfer event operations (\u2192 transfer-agent)" - name: Participants description: "Participant (mates) operations (\u2192 auth-agent)" - name: WellKnown description: .well-known discovery endpoints - name: WellKnownRPC description: .well-known RPC commands - name: Gateway description: Gateway-specific endpoints (config, notifications, websocket) - name: Keystore Parameters description: "Plain key/value entries with full JSON value support (→ keystore)" - name: Keystore Secrets description: "Sensitive key/value entries — values are masked in all responses (→ keystore)" - name: Keystore Config description: "Runtime application configuration (→ keystore)" paths: /fe-config: get: operationId: getFeConfig summary: Get frontend configuration tags: - Gateway responses: "200": description: Gateway host/port configuration content: application/json: schema: $ref: "#/components/schemas/FeConfig" "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "401": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "403": description: Forbidden content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "404": description: Not Found content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" /incoming-notification: post: operationId: postIncomingNotification summary: Send a notification to connected WebSocket clients tags: - Gateway requestBody: required: true content: application/json: schema: type: object responses: "202": description: Notification accepted "400": description: Bad request content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "401": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "403": description: Forbidden content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "404": description: Not Found content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" /ws: get: operationId: websocket summary: WebSocket endpoint for real-time notifications tags: - Gateway responses: "101": description: Switching Protocols (WebSocket upgrade) "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "401": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "403": description: Forbidden content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "404": description: Not Found content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" /well-known/dspace-version: get: operationId: getWellKnownDSpaceVersion summary: Get dataspace version description: Returns the supported dataspace protocol versions and configurations. tags: - WellKnown responses: "200": description: Version response content: application/json: schema: $ref: "#/components/schemas/VersionResponse" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "401": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "403": description: Forbidden content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "404": description: Not Found content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" /well-known/rpc/dspace-version: post: operationId: fetchDataspaceVersionFromParticipant summary: Fetch dataspace version from participant (RPC) tags: - WellKnownRPC requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/WellKnownRPCRequest" responses: "200": description: Version response from the participant content: application/json: schema: $ref: "#/components/schemas/VersionResponse" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "401": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "403": description: Forbidden content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "404": description: Not Found content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" /well-known/rpc/dspace-version/path: post: operationId: fetchDataspaceCurrentPath summary: Fetch dataspace current path from participant (RPC) tags: - WellKnownRPC requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/WellKnownRPCRequest" responses: "200": description: Path response content: application/json: schema: $ref: "#/components/schemas/VersionPath" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "401": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "403": description: Forbidden content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "404": description: Not Found content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" /catalogs: get: operationId: getCatalogs summary: List catalogs tags: - Catalogs parameters: - name: with_main_catalog in: query schema: type: boolean default: true responses: "200": description: OK content: application/json: schema: type: array items: $ref: "#/components/schemas/CatalogDto" "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "401": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "403": description: Forbidden content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "404": description: Not Found content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" post: operationId: createCatalog summary: Create a catalog tags: - Catalogs requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/NewCatalogDto" responses: "201": description: Created content: application/json: schema: $ref: "#/components/schemas/CatalogDto" "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "401": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "403": description: Forbidden content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "404": description: Not Found content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" /catalogs/main: get: operationId: getMainCatalogs summary: Get the main catalog tags: - Catalogs responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/CatalogDto" "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "401": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "403": description: Forbidden content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "404": description: Not Found content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" /catalogs/{catalogId}: get: operationId: getCatalogById summary: Get catalog by ID tags: - Catalogs parameters: - $ref: "#/components/parameters/catalogId" responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/CatalogDto" "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "401": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "403": description: Forbidden content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "404": description: Not Found content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" put: operationId: updateCatalog summary: Update a catalog tags: - Catalogs parameters: - $ref: "#/components/parameters/catalogId" requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/CatalogDto" responses: "200": description: Updated content: application/json: schema: $ref: "#/components/schemas/CatalogDto" "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "401": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "403": description: Forbidden content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "404": description: Not Found content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" delete: operationId: deleteCatalog summary: Delete a catalog tags: - Catalogs parameters: - $ref: "#/components/parameters/catalogId" responses: "204": description: Deleted "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "401": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "403": description: Forbidden content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "404": description: Not Found content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" /dsp/current/catalogs/rpc/setup-catalog-request: post: operationId: rpcSetupCatalogRequest summary: Request catalog from peer (RPC) tags: - CatalogRPC requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/RpcCatalogRequestMessageDto" responses: "200": description: Catalog returned content: application/json: schema: $ref: "#/components/schemas/RpcCatalogResponseMessageDto" "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "401": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "403": description: Forbidden content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "404": description: Not Found content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" /dsp/current/catalogs/rpc/setup-dataset-request: post: operationId: rpcSetupDatasetRequest summary: Request dataset from peer (RPC) tags: - CatalogRPC requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/RpcDatasetRequestMessageDto" responses: "200": description: Dataset returned content: application/json: schema: $ref: "#/components/schemas/Dataset" "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "401": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "403": description: Forbidden content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "404": description: Not Found content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" /peer-catalogs: get: tags: - Peer Catalogs summary: Get all remote peer catalog operationId: getAllPeerCatalog responses: "200": description: Peer Catalogs found content: application/json: schema: type: array items: $ref: "#/components/schemas/PeerCatalogEntry" "404": description: Not Found content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" /peer-catalogs/{peerId}: get: operationId: getPeerCatalog summary: Get remote peer catalog tags: - Catalogs parameters: - name: peerId in: path required: true schema: type: string responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/Catalog" "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "401": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "403": description: Forbidden content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "404": description: Not Found content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" /datasets: post: operationId: createDataset summary: Create a dataset tags: - Datasets requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/NewDatasetDto" responses: "201": description: Created content: application/json: schema: $ref: "#/components/schemas/DatasetDto" "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "401": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "403": description: Forbidden content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "404": description: Not Found content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" /datasets/catalog/{catalogId}: get: operationId: getDatasetsByCatalogId summary: List datasets by catalog tags: - Datasets parameters: - $ref: "#/components/parameters/catalogId" responses: "200": description: OK content: application/json: schema: type: array items: $ref: "#/components/schemas/DatasetDto" "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "401": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "403": description: Forbidden content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "404": description: Not Found content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" /datasets/{datasetId}: get: operationId: getDatasetById summary: Get dataset by ID tags: - Datasets parameters: - $ref: "#/components/parameters/datasetId" responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/DatasetDto" "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "401": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "403": description: Forbidden content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "404": description: Not Found content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" put: operationId: updateDataset summary: Update a dataset tags: - Datasets parameters: - $ref: "#/components/parameters/datasetId" requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/DatasetDto" responses: "200": description: Updated "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "401": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "403": description: Forbidden content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "404": description: Not Found content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" delete: operationId: deleteDataset summary: Delete a dataset tags: - Datasets parameters: - $ref: "#/components/parameters/datasetId" responses: "204": description: Deleted "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "401": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "403": description: Forbidden content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "404": description: Not Found content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" /datasets/{datasetId}/policies: post: operationId: addPolicyToDataset summary: Add an ODRL policy to a dataset tags: - Datasets parameters: - $ref: "#/components/parameters/datasetId" requestBody: required: true content: application/json: schema: type: string description: ODRL offer JSON string responses: "201": description: Created content: application/json: schema: $ref: "#/components/schemas/OdrlPolicyDto" "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "401": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "403": description: Forbidden content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "404": description: Not Found content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" /datasets/{datasetId}/policies/{policyId}: delete: operationId: deletePolicyFromDataset summary: Remove a policy from a dataset tags: - Datasets parameters: - $ref: "#/components/parameters/datasetId" - $ref: "#/components/parameters/policyId" responses: "204": description: Deleted "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "401": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "403": description: Forbidden content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "404": description: Not Found content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" /distributions: post: operationId: createDistribution summary: Create a distribution tags: - Distributions requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/NewDistributionDto" responses: "201": description: Created "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "401": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "403": description: Forbidden content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "404": description: Not Found content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" /distributions/dataset/{datasetId}: get: operationId: getDistributionsByDatasetId summary: List distributions for a dataset tags: - Distributions parameters: - $ref: "#/components/parameters/datasetId" responses: "200": description: OK content: application/json: schema: type: array items: $ref: "#/components/schemas/DistributionDto" "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "401": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "403": description: Forbidden content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "404": description: Not Found content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" /distributions/{distributionId}: get: operationId: getDistributionById summary: Get distribution by ID tags: - Distributions parameters: - $ref: "#/components/parameters/distributionId" responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/DistributionDto" "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "401": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "403": description: Forbidden content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "404": description: Not Found content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" put: operationId: updateDistribution summary: Update a distribution tags: - Distributions parameters: - $ref: "#/components/parameters/distributionId" requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/DistributionDto" responses: "200": description: Updated "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "401": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "403": description: Forbidden content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "404": description: Not Found content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" delete: operationId: deleteDistribution summary: Delete a distribution tags: - Distributions parameters: - $ref: "#/components/parameters/distributionId" responses: "204": description: Deleted "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "401": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "403": description: Forbidden content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "404": description: Not Found content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" /data-services: post: operationId: createDataService summary: Create a data service tags: - DataServices requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/NewDataServiceDto" responses: "201": description: Created "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "401": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "403": description: Forbidden content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "404": description: Not Found content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" /data-services/catalog/{catalogId}: get: operationId: getDataServicesByCatalogId summary: List data services by catalog tags: - DataServices parameters: - $ref: "#/components/parameters/catalogId" responses: "200": description: OK content: application/json: schema: type: array items: $ref: "#/components/schemas/DataServiceDto" "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "401": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "403": description: Forbidden content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "404": description: Not Found content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" /data-services/{dataServiceId}: get: operationId: getDataServiceById summary: Get data service by ID tags: - DataServices parameters: - $ref: "#/components/parameters/dataServiceId" responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/DataServiceDto" "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "401": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "403": description: Forbidden content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "404": description: Not Found content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" put: operationId: updateDataService summary: Update a data service tags: - DataServices parameters: - $ref: "#/components/parameters/dataServiceId" requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/DataServiceDto" responses: "200": description: Updated "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "401": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "403": description: Forbidden content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "404": description: Not Found content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" delete: operationId: deleteDataService summary: Delete a data service tags: - DataServices parameters: - $ref: "#/components/parameters/dataServiceId" responses: "204": description: Deleted "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "401": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "403": description: Forbidden content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "404": description: Not Found content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" /odrl-policies: get: tags: - OdrlPolicies summary: Get all ODRL policies operationId: getAllOdrlPolicies responses: "200": description: List of ODRL policies content: application/json: schema: type: array items: $ref: "#/components/schemas/OdrlPolicyDto" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" post: tags: - OdrlPolicies summary: Create ODRL policy operationId: createOdrlPolicy requestBody: content: application/json: schema: $ref: "#/components/schemas/NewOdrlPolicyDto" example: entityId: "urn:uuid:my-dataset-id" entityType: "Dataset" odrlOffer: profile: ["http://www.w3.org/ns/odrl/2/"] permission: - action: "http://www.w3.org/ns/odrl/2/use" responses: "200": description: ODRL policy created content: application/json: schema: $ref: "#/components/schemas/OdrlPolicyDto" "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" /odrl-policies/entity/{entityId}: get: operationId: getPoliciesByEntityId summary: Get ODRL policies by entity ID tags: - OdrlPolicies parameters: - name: entityId in: path required: true schema: type: string format: uuid responses: "200": description: OK content: application/json: schema: type: array items: $ref: "#/components/schemas/OdrlPolicyDto" "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "401": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "403": description: Forbidden content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "404": description: Not Found content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" /policy-templates: get: operationId: getPolicyTemplates summary: List policy templates tags: - PolicyTemplates responses: "200": description: OK content: application/json: schema: type: array items: $ref: "#/components/schemas/PolicyTemplateDto" "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "401": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "403": description: Forbidden content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "404": description: Not Found content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" post: operationId: createPolicyTemplate summary: Create a policy template tags: - PolicyTemplates requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/NewPolicyTemplateDto" responses: "201": description: Created content: application/json: schema: $ref: "#/components/schemas/PolicyTemplateDto" "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "401": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "403": description: Forbidden content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "404": description: Not Found content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" /policy-templates/{id}: get: operationId: getPolicyTemplateVersions summary: Get all versions of a policy template tags: - PolicyTemplates parameters: - name: id in: path required: true schema: type: string format: uuid responses: "200": description: OK content: application/json: schema: type: array items: $ref: "#/components/schemas/PolicyTemplateDto" "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "401": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "403": description: Forbidden content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "404": description: Not Found content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" /policy-templates/{id}/{version}: get: operationId: getPolicyTemplateVersion summary: Get a specific version of a policy template tags: - PolicyTemplates parameters: - name: id in: path required: true schema: type: string format: uuid - name: version in: path required: true schema: type: string responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/PolicyTemplateDto" "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "401": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "403": description: Forbidden content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "404": description: Not Found content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" delete: operationId: deletePolicyTemplateVersion summary: Delete a specific version of a policy template tags: - PolicyTemplates parameters: - name: id in: path required: true schema: type: string format: uuid - name: version in: path required: true schema: type: string responses: "204": description: Deleted "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "401": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "403": description: Forbidden content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "404": description: Not Found content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" /policy-templates/instantiate-odrl-offer: post: operationId: instantiateOdrlOffer summary: Instantiate an ODRL offer from a template tags: - PolicyTemplates requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/NewPolicyInstantiationDto" responses: "201": description: Created content: application/json: schema: $ref: "#/components/schemas/OdrlPolicyDto" "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "401": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "403": description: Forbidden content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "404": description: Not Found content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" /datahub/domains: get: operationId: getDatahubDomains summary: List datahub domains tags: - Datahub responses: "200": description: OK content: application/json: schema: type: array items: $ref: "#/components/schemas/DatahubDomain" "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "401": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "403": description: Forbidden content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "404": description: Not Found content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" /datahub/domains/{urn}/datasets: get: operationId: getDatahubDatasetsByDomain summary: List datasets in a datahub domain tags: - Datahub parameters: - name: urn in: path required: true schema: type: string responses: "200": description: OK content: application/json: schema: type: array items: $ref: "#/components/schemas/DatahubDataset" "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "401": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "403": description: Forbidden content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "404": description: Not Found content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" /datahub/domains/datasets/{datasetId}: get: operationId: getDatahubDatasetById summary: Get a datahub dataset by ID tags: - Datahub parameters: - $ref: "#/components/parameters/datasetId" responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/DatahubDataset" "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "401": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "403": description: Forbidden content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "404": description: Not Found content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" /connector/instances/{id}: get: operationId: getConnectorInstanceById summary: Get connector instance by ID tags: - Connector parameters: - name: id in: path required: true schema: type: string responses: "200": description: OK content: application/json: schema: type: array items: $ref: "#/components/schemas/CatalogDto" "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "401": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "403": description: Forbidden content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "404": description: Not Found content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" /connector/instances/distribution/{distributionId}: get: operationId: getConnectorInstanceByDistribution summary: Get connector instance by distribution ID tags: - Connector parameters: - $ref: "#/components/parameters/distributionId" responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ConnectorInstanceDto" "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "401": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "403": description: Forbidden content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "404": description: Not Found content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" /connector/templates: get: operationId: getConnectorTemplates summary: List connector templates tags: - ConnectorTemplates responses: "200": description: OK content: application/json: schema: type: array items: $ref: "#/components/schemas/ConnectorTemplateDto" "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "401": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "403": description: Forbidden content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "404": description: Not Found content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" post: operationId: createConnectorTemplate summary: Create a connector template tags: - ConnectorTemplates requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/ConnectorTemplateDto" responses: "201": description: Created content: application/json: schema: $ref: "#/components/schemas/ConnectorTemplateDto" "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "401": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "403": description: Forbidden content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "404": description: Not Found content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" /connector/templates/{id}: get: operationId: getConnectorTemplate summary: Get connector template by ID tags: - ConnectorTemplates parameters: - name: id in: path required: true schema: type: string format: uuid responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ConnectorTemplateDto" "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "401": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "403": description: Forbidden content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "404": description: Not Found content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" /connector/templates/{name}/{version}: get: operationId: getConnectorTemplateByNameVersion summary: Get connector template by name and version tags: - ConnectorTemplates parameters: - name: name in: path required: true schema: type: string - name: version in: path required: true schema: type: string responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ConnectorTemplateDto" "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "401": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "403": description: Forbidden content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "404": description: Not Found content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" delete: operationId: deleteConnectorTemplate summary: Delete connector template by name and version tags: - ConnectorTemplates parameters: - name: name in: path required: true schema: type: string - name: version in: path required: true schema: type: string responses: "204": description: Deleted "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "401": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "403": description: Forbidden content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "404": description: Not Found content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" /connector/instances: post: operationId: upsertConnectorInstance summary: Upsert a connector instance tags: - Connector requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/ConnectorInstanceDto" responses: "200": description: OK (Updated) "201": description: Created "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "401": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "403": description: Forbidden content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "404": description: Not Found content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" /negotiations/negotiation-processes: get: operationId: getNegotiationProcesses summary: List all negotiation processes tags: - Negotiations responses: "200": description: OK content: application/json: schema: type: array items: $ref: "#/components/schemas/NegotiationProcessDto" "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "401": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "403": description: Forbidden content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "404": description: Not Found content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" post: operationId: createNegotiationProcess summary: Create a negotiation process tags: - Negotiations requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/NegotiationProcessDto" responses: "201": description: Created "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "401": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "403": description: Forbidden content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "404": description: Not Found content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" /negotiations/negotiation-processes/{processId}: get: operationId: getNegotiationProcessById summary: Get negotiation process by ID tags: - Negotiations parameters: - $ref: "#/components/parameters/processId" responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/NegotiationProcessDto" "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "401": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "403": description: Forbidden content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "404": description: Not Found content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" put: operationId: updateNegotiationProcess summary: Update a negotiation process tags: - Negotiations parameters: - $ref: "#/components/parameters/processId" requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/NegotiationProcessDto" responses: "200": description: Updated "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "401": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "403": description: Forbidden content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "404": description: Not Found content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" delete: operationId: deleteNegotiationProcess summary: Delete a negotiation process tags: - Negotiations parameters: - $ref: "#/components/parameters/processId" responses: "204": description: Deleted "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "401": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "403": description: Forbidden content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "404": description: Not Found content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" /negotiations/negotiation-messages/process/{processId}: get: operationId: getNegotiationMessagesByProcessId summary: List messages for a negotiation process tags: - Negotiations parameters: - $ref: "#/components/parameters/processId" responses: "200": description: OK content: application/json: schema: type: array items: $ref: "#/components/schemas/NegotiationMessageDto" "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "401": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "403": description: Forbidden content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "404": description: Not Found content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" /negotiations/negotiation-messages/{messageId}: get: operationId: getNegotiationMessageById summary: Get a negotiation message by ID tags: - Negotiations parameters: - $ref: "#/components/parameters/messageId" responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/NegotiationMessageDto" "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "401": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "403": description: Forbidden content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "404": description: Not Found content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" /negotiations/offers/message/{messageId}: get: operationId: getOfferByMessageId summary: Get the offer attached to a negotiation message tags: - Negotiations parameters: - $ref: "#/components/parameters/messageId" responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/OfferDto" "404": description: No offer for this message content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "401": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "403": description: Forbidden content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" /negotiations/offers/process/{processId}: get: operationId: getOffersByProcessId summary: Get offers for a negotiation process (last offer) tags: - Negotiations parameters: - $ref: "#/components/parameters/processId" responses: "200": description: OK content: application/json: schema: type: array items: $ref: "#/components/schemas/OfferDto" "404": description: Not found content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "401": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "403": description: Forbidden content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" /negotiations/agreements: get: operationId: getAgreements summary: List all agreements tags: - Negotiations responses: "200": description: OK content: application/json: schema: type: array items: $ref: "#/components/schemas/AgreementDto" "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "401": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "403": description: Forbidden content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "404": description: Not Found content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" /negotiations/agreements/{agreementId}: get: operationId: getAgreementById s summary: Get agreement by ID tags: - Negotiations parameters: - name: agreementId in: path required: true schema: type: string format: uuid responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/AgreementDto" "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "401": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "403": description: Forbidden content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "404": description: Not Found content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" put: operationId: updateAgreement summary: Update an agreement tags: - Negotiations parameters: - name: agreementId in: path required: true schema: type: string format: uuid requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/AgreementDto" responses: "200": description: Updated "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "401": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "403": description: Forbidden content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "404": description: Not Found content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" delete: operationId: deleteAgreement summary: Delete an agreement tags: - Negotiations parameters: - name: agreementId in: path required: true schema: type: string format: uuid responses: "204": description: Deleted "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "401": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "403": description: Forbidden content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "404": description: Not Found content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" /negotiations/agreements/message/{messageId}: get: operationId: getAgreementByMessageId summary: Get agreement linked to a negotiation message tags: - Negotiations parameters: - $ref: "#/components/parameters/messageId" responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/AgreementDto" "404": description: Not found content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "401": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "403": description: Forbidden content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" /negotiations/agreements/assigner/{participantId}: get: operationId: getAgreementsByParticipantId summary: Get agreements by assigner participant tags: - Negotiations parameters: - $ref: "#/components/parameters/participantId" responses: "200": description: OK content: application/json: schema: type: array items: $ref: "#/components/schemas/AgreementDto" "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "401": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "403": description: Forbidden content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "404": description: Not Found content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" /dsp/current/negotiations/rpc/setup-request-init: post: operationId: rpcSetupRequestInit summary: Initiate a negotiation request (consumer) tags: - NegotiationRPC requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/RpcNegotiationRequestInitMessageDto" responses: "201": description: OK content: application/json: schema: $ref: "#/components/schemas/NegotiationProcessDto" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "401": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "403": description: Forbidden content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "404": description: Not Found content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" /dsp/current/negotiations/rpc/setup-offer-init: post: operationId: rpcSetupOfferInit summary: Initiate a negotiation offer (provider) tags: - NegotiationRPC requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/RpcNegotiationOfferInitMessageDto" responses: "201": description: OK content: application/json: schema: $ref: "#/components/schemas/NegotiationProcessDto" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "401": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "403": description: Forbidden content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "404": description: Not Found content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" /dsp/current/negotiations/rpc/setup-request: post: operationId: rpcSetupRequest summary: Initiate a contract negotiation request tags: - NegotiationRPC requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/NegotiationRPCRequestBody" responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/RPCResponse" "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "401": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "403": description: Forbidden content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "404": description: Not Found content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" /dsp/current/negotiations/rpc/setup-offer: post: operationId: rpcSetupOffer summary: Send a counter-offer in a negotiation tags: - NegotiationRPC requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/NegotiationRPCOfferBody" responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/RPCResponse" "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "401": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "403": description: Forbidden content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "404": description: Not Found content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" /dsp/current/negotiations/rpc/setup-acceptance: post: operationId: rpcSetupAcceptance summary: Accept a negotiation tags: - NegotiationRPC requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/NegotiationRPCAcceptanceBody" responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/RPCResponse" "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "401": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "403": description: Forbidden content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "404": description: Not Found content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" /dsp/current/negotiations/rpc/setup-agreement: post: operationId: rpcSetupAgreement summary: Finalize agreement for a negotiation tags: - NegotiationRPC requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/NegotiationRPCAgreementBody" responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/RPCResponse" "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "401": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "403": description: Forbidden content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "404": description: Not Found content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" /dsp/current/negotiations/rpc/setup-verification: post: operationId: rpcSetupVerification summary: Verify a negotiation agreement tags: - NegotiationRPC requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/NegotiationRPCVerificationBody" responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/RPCResponse" "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "401": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "403": description: Forbidden content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "404": description: Not Found content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" /dsp/current/negotiations/rpc/setup-finalization: post: operationId: rpcSetupFinalization summary: Finalize a negotiation tags: - NegotiationRPC requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/NegotiationRPCFinalizationBody" responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/RPCResponse" "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "401": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "403": description: Forbidden content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "404": description: Not Found content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" /dsp/current/negotiations/rpc/setup-termination: post: operationId: rpcSetupTermination summary: Terminate a negotiation tags: - NegotiationRPC requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/NegotiationRPCTerminationBody" responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/RPCResponse" "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "401": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "403": description: Forbidden content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "404": description: Not Found content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" /dsp/current/negotiations/bff-rpc/setup-request-init: post: operationId: bffRpcSetupRequestInit summary: Initiate a negotiation request with simplified flow (consumer) tags: - NegotiationRPC requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/RpcNegotiationRequestInitMessageDto" responses: "201": description: OK content: application/json: schema: $ref: "#/components/schemas/NegotiationProcessDto" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "401": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "403": description: Forbidden content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "404": description: Not Found content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" /dsp/current/negotiations/bff-rpc/setup-offer-init: post: operationId: bffRpcSetupOfferInit summary: Initiate a negotiation offer in a simplified way (provider) tags: - NegotiationRPC requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/RpcNegotiationOfferInitMessageDto" responses: "201": description: OK content: application/json: schema: $ref: "#/components/schemas/NegotiationProcessDto" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "401": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "403": description: Forbidden content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "404": description: Not Found content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" /dsp/current/negotiations/bff-rpc/setup-acceptance: post: operationId: bffRpcSetupAcceptance summary: Accept a negotiation up to the end tags: - NegotiationRPC requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/NegotiationRPCAcceptanceBody" responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/RPCResponse" "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "401": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "403": description: Forbidden content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "404": description: Not Found content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" /dsp/current/negotiations/bff-rpc/setup-agreement: post: operationId: bffRpcSetupAgreement summary: Finalize agreement for a negotiation up to the end tags: - NegotiationRPC requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/NegotiationRPCAgreementBody" responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/RPCResponse" "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "401": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "403": description: Forbidden content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "404": description: Not Found content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" /dsp/current/negotiations/bff-rpc/setup-termination: post: operationId: bffRpcSetupTermination summary: Terminate a negotiation tags: - NegotiationRPC requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/NegotiationRPCTerminationBody" responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/RPCResponse" "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "401": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "403": description: Forbidden content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "404": description: Not Found content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" # --- Dataplane Transfers --- /transfers/dataplane/dataplane-processes: get: tags: - Dataplane Transfers summary: List all dataplane transfers operationId: getDataplaneTransfers responses: "200": description: OK content: application/json: schema: type: array items: $ref: "#/components/schemas/DataplaneTransferDto" "500": $ref: "#/components/responses/InternalServerError" post: tags: - Dataplane Transfers summary: Create a dataplane transfer operationId: createDataplaneTransfer requestBody: content: application/json: schema: $ref: "#/components/schemas/NewDataplaneTransferDto" responses: "201": description: Created content: application/json: schema: $ref: "#/components/schemas/DataplaneTransferDto" "400": $ref: "#/components/responses/BadRequest" "500": $ref: "#/components/responses/InternalServerError" /transfers/dataplane/dataplane-processes/batch: post: tags: - Dataplane Transfers summary: Batch get dataplane transfers operationId: getBatchDataplaneTransfers requestBody: content: application/json: schema: $ref: "#/components/schemas/BatchRequests" responses: "200": description: OK content: application/json: schema: type: array items: $ref: "#/components/schemas/DataplaneTransferDto" "400": $ref: "#/components/responses/BadRequest" "500": $ref: "#/components/responses/InternalServerError" /transfers/dataplane/dataplane-processes/{dataplaneProcessId}: get: tags: - Dataplane Transfers summary: Get dataplane transfer by ID operationId: getDataplaneTransferById parameters: - name: dataplaneProcessId in: path required: true schema: type: string format: urn responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/DataplaneTransferDto" "404": $ref: "#/components/responses/NotFound" "500": $ref: "#/components/responses/InternalServerError" put: tags: - Dataplane Transfers summary: Update dataplane transfer operationId: updateDataplaneTransfer parameters: - name: dataplaneProcessId in: path required: true schema: type: string format: urn requestBody: content: application/json: schema: $ref: "#/components/schemas/EditDataplaneTransferDto" responses: "200": description: Updated content: application/json: schema: $ref: "#/components/schemas/DataplaneTransferDto" "400": $ref: "#/components/responses/BadRequest" "404": $ref: "#/components/responses/NotFound" "500": $ref: "#/components/responses/InternalServerError" delete: tags: - Dataplane Transfers summary: Delete dataplane transfer operationId: deleteDataplaneTransfer parameters: - name: dataplaneProcessId in: path required: true schema: type: string format: urn responses: "204": description: Deleted "500": $ref: "#/components/responses/InternalServerError" /transfers/dataplane/dataplane-processes/transfer-process/{transferProcessId}: get: tags: - Dataplane Transfers summary: Get dataplane transfer by Transfer Process ID operationId: getDataplaneTransferByProcessId parameters: - name: transferProcessId in: path required: true schema: type: string format: urn responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/DataplaneTransferDto" "404": $ref: "#/components/responses/NotFound" "500": $ref: "#/components/responses/InternalServerError" /transfers/dataplane/dataplane-processes/{dataplaneProcessId}/logs: get: tags: - Dataplane Logs summary: Get dataplane transfer logs operationId: getDataplaneTransferLogs parameters: - name: dataplaneProcessId in: path required: true schema: type: string format: urn responses: "200": description: OK content: application/json: schema: type: array items: $ref: "#/components/schemas/DataplaneTransferLogDto" "500": $ref: "#/components/responses/InternalServerError" /transfers/dataplane/dataplane-processes/{dataplaneProcessId}/events: get: tags: - Transfer Events summary: Get transfer events by dataplane process ID operationId: getTransferEventsByDataplaneProcessId parameters: - name: dataplaneProcessId in: path required: true schema: type: string format: urn responses: "200": description: OK content: application/json: schema: type: array items: $ref: "#/components/schemas/TransferEventDto" "500": $ref: "#/components/responses/InternalServerError" /transfers/dataplane/dataplane-processes/{dataplaneProcessId}/info: get: tags: - Dataplane Transfers summary: Get dataplane transfer info operationId: getDataplaneTransferInfo parameters: - name: dataplaneProcessId in: path required: true schema: type: string format: urn responses: "200": description: Dataplane transfer info returned content: application/json: schema: $ref: "#/components/schemas/DataplaneInfoResponse" "404": $ref: "#/components/responses/NotFound" "500": $ref: "#/components/responses/InternalServerError" /transfers/dataplane/transfer-events/{eventId}: get: tags: - Transfer Events summary: Get transfer event by ID operationId: getTransferEventById parameters: - name: eventId in: path required: true schema: type: string format: urn responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/TransferEventDto" "404": $ref: "#/components/responses/NotFound" "500": $ref: "#/components/responses/InternalServerError" /transfers/transfer-processes: get: operationId: getTransferProcesses summary: List all transfer processes tags: - Transfers responses: "200": description: OK content: application/json: schema: type: array items: $ref: "#/components/schemas/TransferProcessDto" "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "401": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "403": description: Forbidden content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "404": description: Not Found content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" post: operationId: createTransferProcess summary: Create a transfer process tags: - Transfers requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/TransferProcessDto" responses: "201": description: Created "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "401": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "403": description: Forbidden content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "404": description: Not Found content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" /transfers/transfer-processes/{processId}: get: operationId: getTransferProcessById summary: Get transfer process by ID tags: - Transfers parameters: - $ref: "#/components/parameters/processId" responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/TransferProcessDto" "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "401": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "403": description: Forbidden content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "404": description: Not Found content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" put: operationId: updateTransferProcess summary: Update a transfer process tags: - Transfers parameters: - $ref: "#/components/parameters/processId" requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/TransferProcessDto" responses: "200": description: Updated "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "401": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "403": description: Forbidden content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "404": description: Not Found content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" delete: operationId: deleteTransferProcess summary: Delete a transfer process tags: - Transfers parameters: - $ref: "#/components/parameters/processId" responses: "204": description: Deleted "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "401": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "403": description: Forbidden content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "404": description: Not Found content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" /transfers/transfer-messages/process/{processId}: get: operationId: getTransferMessagesByProcessId summary: List messages for a transfer process tags: - Transfers parameters: - $ref: "#/components/parameters/processId" responses: "200": description: OK content: application/json: schema: type: array items: $ref: "#/components/schemas/TransferMessageDto" "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "401": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "403": description: Forbidden content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "404": description: Not Found content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" /transfers/transfer-messages/{messageId}: get: operationId: getTransferMessageById summary: Get a transfer message by ID tags: - Transfers parameters: - $ref: "#/components/parameters/messageId" responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/TransferMessageDto" "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "401": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "403": description: Forbidden content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "404": description: Not Found content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" /transfers/dataplane/{sessionId}: get: operationId: getDataplaneSession summary: Get a dataplane session by ID tags: - Transfers parameters: - name: sessionId in: path required: true schema: type: string format: uuid responses: "200": description: OK content: application/json: schema: type: object "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "401": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "403": description: Forbidden content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "404": description: Not Found content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" /dsp/current/transfers/rpc/setup-request: post: operationId: setupTransferRequest summary: Initiate a transfer request tags: - TransferRPC requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/TransferRPCRequestBody" responses: "201": description: OK content: application/json: schema: $ref: "#/components/schemas/RPCResponse" "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "401": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "403": description: Forbidden content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "404": description: Not Found content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" /dsp/current/transfers/rpc/setup-start: post: operationId: setupTransferStart summary: Start a transfer tags: - TransferRPC requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/TransferRPCStartBody" responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/RPCResponse" "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "401": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "403": description: Forbidden content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "404": description: Not Found content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" /dsp/current/transfers/rpc/setup-suspension: post: operationId: setupTransferSuspension summary: Suspend a transfer tags: - TransferRPC requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/TransferRPCSuspensionBody" responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/RPCResponse" "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "401": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "403": description: Forbidden content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "404": description: Not Found content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" /dsp/current/transfers/rpc/setup-completion: post: operationId: setupTransferCompletion summary: Complete a transfer tags: - TransferRPC requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/TransferRPCCompletionBody" responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/RPCResponse" "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "401": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "403": description: Forbidden content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "404": description: Not Found content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" /dsp/current/transfers/rpc/setup-termination: post: operationId: setupTransferTermination summary: Terminate a transfer tags: - TransferRPC requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/TransferRPCTerminationBody" responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/RPCResponse" "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "401": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "403": description: Forbidden content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "404": description: Not Found content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" /dsp/current/transfers/bff-rpc/setup-request: post: operationId: bffRpcSetupTransferRequest summary: Initiate a transfer request with simplified BFF flow (consumer). The Provider automatically responds with a TransferStart. tags: - TransferRPC requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/TransferRPCRequestBody" responses: "201": description: Created content: application/json: schema: $ref: "#/components/schemas/RPCResponse" "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "401": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "403": description: Forbidden content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "404": description: Not Found content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" /subscriptions: get: operationId: getSubscriptions summary: List subscriptions tags: - Subscriptions parameters: - name: callback_address in: query required: false schema: type: string responses: "200": description: OK content: application/json: schema: type: array items: $ref: "#/components/schemas/Subscription" "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "401": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "403": description: Forbidden content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "404": description: Not Found content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" /subscriptions/{subscriptionId}: get: operationId: getSubscriptionById summary: Get subscription by ID tags: - Subscriptions parameters: - name: subscriptionId in: path required: true schema: type: string format: uuid responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/Subscription" "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "401": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "403": description: Forbidden content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "404": description: Not Found content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" /subscriptions/{subscriptionId}/notifications: get: operationId: getNotificationsBySubscriptionId summary: Get notifications for a subscription tags: - Subscriptions parameters: - name: subscriptionId in: path required: true schema: type: string format: uuid responses: "200": description: OK content: application/json: schema: type: array items: $ref: "#/components/schemas/NotificationSub" "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "401": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "403": description: Forbidden content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "404": description: Not Found content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" /subscriptions/{subscriptionId}/notifications-pending: get: operationId: getPendingNotificationsBySubscriptionId summary: Get pending notifications for a subscription tags: - Subscriptions parameters: - name: subscriptionId in: path required: true schema: type: string format: uuid responses: "200": description: OK content: application/json: schema: type: array items: $ref: "#/components/schemas/NotificationSub" "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "401": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "403": description: Forbidden content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "404": description: Not Found content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" /mates/all: get: operationId: getAllParticipants summary: List all participants tags: - Participants parameters: - name: type in: query required: false description: Filter mates by participant type. Defaults to `all`. schema: type: string enum: - agents - authorities - all default: all - name: exclude in: query required: false description: When `true`, excludes the own identity (is_me) from the results. schema: type: boolean default: false responses: "200": description: OK content: application/json: schema: type: array items: $ref: "#/components/schemas/ParticipantDto" "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "401": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "403": description: Forbidden content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "404": description: Not Found content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" /mates/myself: get: operationId: getMyself summary: Get the current participant's info tags: - Participants responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ParticipantDto" "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "401": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "403": description: Forbidden content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "404": description: Not Found content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" /mates/{participantId}: get: operationId: getParticipantById summary: Get participant by ID tags: - Participants parameters: - $ref: "#/components/parameters/participantId" responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ParticipantDto" "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "401": description: Unauthorized content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "403": description: Forbidden content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "404": description: Not Found content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" put: tags: - Mates summary: Update extra_fields by ID operationId: putMateById parameters: - $ref: "#/components/parameters/participantId" requestBody: content: application/json: schema: type: object responses: "200": description: Mate details content: application/json: schema: type: object "404": description: Not Found content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" /wallet/onboard: post: operationId: onboardWallet summary: Onboard wallet tags: - Wallet responses: "201": description: OK "400": description: Bad Request "401": description: Unauthorized "403": description: Forbidden "404": description: Not Found "500": description: Internal Server Error /well-known/did.json: get: operationId: getWalletDid summary: Get wallet DID tags: - Wallet responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/Did" "400": description: Bad Request "401": description: Unauthorized "403": description: Forbidden "404": description: Not Found "500": description: Internal Server Error /did-json/{url}: get: operationId: getDidFromUrl summary: Get DID JSON from URL tags: - DID parameters: - $ref: "#/components/parameters/url" responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/Did" "400": description: Bad Request "401": description: Unauthorized "403": description: Forbidden "404": description: Not Found "500": description: Internal Server Error /wallet/oidc4vci: post: operationId: oidc4vciRequest summary: Request VC to peer cross user tags: - Wallet requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/Oidc4vciRequestDto" responses: "200": description: OK "400": description: Bad Request "401": description: Unauthorized "403": description: Forbidden "404": description: Not Found "500": description: Internal Server Error /wallet/oidc4vp: post: operationId: oidc4vpRequest summary: Request VP to peer cross user tags: - Wallet requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/Oidc4vpRequestDto" responses: "200": description: OK "400": description: Bad Request "401": description: Unauthorized "403": description: Forbidden "404": description: Not Found "500": description: Internal Server Error /vc-request/beg/cross-user: post: operationId: requestVCtoAuthorityCrossUser summary: Request VC to authority cross user tags: - VC Request requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/VCRequestCrossUserDto" responses: "200": description: OK "400": description: Bad Request "401": description: Unauthorized "403": description: Forbidden "404": description: Not Found "500": description: Internal Server Error /vc-request/all: get: operationId: getAllVCRequests summary: Get all VC requests tags: - VC Request responses: "200": description: OK content: application/json: schema: type: array items: $ref: "#/components/schemas/VCRequestDto" "400": description: Bad Request "401": description: Unauthorized "403": description: Forbidden "404": description: Not Found "500": description: Internal Server Error /onboard/provider: post: operationId: onboardProvider summary: Onboard provider tags: - Onboard requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/OnboardProviderDto" responses: "200": description: OK content: text/plain: schema: type: string "400": description: Bad Request "401": description: Unauthorized "403": description: Forbidden "404": description: Not Found "500": description: Internal Server Error # --- Keystore: Parameters --- /v1/keystore/parameters: get: tags: - Keystore Parameters summary: List parameters operationId: listParameters parameters: - $ref: "#/components/parameters/KeystorePrefixParam" responses: "200": description: List of parameters content: application/json: schema: type: array items: $ref: "#/components/schemas/KeystoreParameterView" "500": $ref: "#/components/responses/InternalServerError" post: tags: - Keystore Parameters summary: Create parameter operationId: createParameter requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/KeystoreNewParameterCommand" responses: "201": description: Parameter created content: application/json: schema: $ref: "#/components/schemas/KeystoreParameterView" "400": $ref: "#/components/responses/BadRequest" "409": $ref: "#/components/responses/Conflict" "500": $ref: "#/components/responses/InternalServerError" /v1/keystore/parameters/{key}: parameters: - $ref: "#/components/parameters/KeystoreKeyParam" get: tags: - Keystore Parameters summary: Get parameter operationId: getParameter responses: "200": description: Parameter found content: application/json: schema: $ref: "#/components/schemas/KeystoreParameterView" "404": $ref: "#/components/responses/NotFound" "500": $ref: "#/components/responses/InternalServerError" put: tags: - Keystore Parameters summary: Update parameter operationId: updateParameter requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/KeystoreEditParameterCommand" responses: "200": description: Parameter updated — returns new version content: application/json: schema: $ref: "#/components/schemas/KeystoreVersionResponse" "400": $ref: "#/components/responses/BadRequest" "404": $ref: "#/components/responses/NotFound" "409": $ref: "#/components/responses/Conflict" "500": $ref: "#/components/responses/InternalServerError" delete: tags: - Keystore Parameters summary: Delete parameter operationId: deleteParameter responses: "204": description: Parameter deleted "404": $ref: "#/components/responses/NotFound" "500": $ref: "#/components/responses/InternalServerError" # --- Keystore: Secrets --- /v1/keystore/secrets: get: tags: - Keystore Secrets summary: List secrets description: Values are always masked as `"*****"`. operationId: listSecrets parameters: - $ref: "#/components/parameters/KeystorePrefixParam" responses: "200": description: List of secrets content: application/json: schema: type: array items: $ref: "#/components/schemas/KeystoreSecretView" "500": $ref: "#/components/responses/InternalServerError" post: tags: - Keystore Secrets summary: Create secret operationId: createSecret requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/KeystoreNewSecretCommand" responses: "201": description: Secret created. Value is masked in the response. content: application/json: schema: $ref: "#/components/schemas/KeystoreSecretView" "400": $ref: "#/components/responses/BadRequest" "409": $ref: "#/components/responses/Conflict" "500": $ref: "#/components/responses/InternalServerError" /v1/keystore/secrets/{key}: parameters: - $ref: "#/components/parameters/KeystoreKeyParam" get: tags: - Keystore Secrets summary: Get secret description: Value is always masked as `"*****"`. operationId: getSecret responses: "200": description: Secret found content: application/json: schema: $ref: "#/components/schemas/KeystoreSecretView" "404": $ref: "#/components/responses/NotFound" "500": $ref: "#/components/responses/InternalServerError" put: tags: - Keystore Secrets summary: Update secret operationId: updateSecret requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/KeystoreEditSecretCommand" responses: "200": description: Secret updated — returns new version content: application/json: schema: $ref: "#/components/schemas/KeystoreVersionResponse" "400": $ref: "#/components/responses/BadRequest" "404": $ref: "#/components/responses/NotFound" "409": $ref: "#/components/responses/Conflict" "500": $ref: "#/components/responses/InternalServerError" delete: tags: - Keystore Secrets summary: Delete secret operationId: deleteSecret responses: "204": description: Secret deleted "404": $ref: "#/components/responses/NotFound" "500": $ref: "#/components/responses/InternalServerError" # --- Keystore: Config --- /v1/keystore/config: get: tags: - Keystore Config summary: Get application config operationId: getApplicationConfig responses: "200": description: Current application configuration content: application/json: schema: $ref: "#/components/schemas/KeystoreApplicationConfig" "500": $ref: "#/components/responses/InternalServerError" components: parameters: catalogId: name: catalogId in: path required: true schema: type: string format: uuid datasetId: name: datasetId in: path required: true schema: type: string format: uuid distributionId: name: distributionId in: path required: true schema: type: string format: uuid dataServiceId: name: dataServiceId in: path required: true schema: type: string format: uuid processId: name: processId in: path required: true schema: type: string format: uuid messageId: name: messageId in: path required: true schema: type: string format: uuid policyId: name: policyId in: path required: true schema: type: string format: uuid participantId: name: participantId in: path required: true schema: type: string format: uuid url: name: url in: path required: true schema: type: string KeystoreKeyParam: name: key in: path required: true description: | Path-style key in the format `/segment1/segment2/...`. Each segment may contain `[a-zA-Z0-9_.-]` characters. Example: `/service/api-key` schema: type: string pattern: '^(/[a-zA-Z0-9_.\-]+)+$' example: /service/api-key KeystorePrefixParam: name: prefix in: query required: false description: | Filter results to keys that start with this prefix. Example: `/service` returns `/service/api-key` and `/service/db/host`. schema: type: string example: /service schemas: FeConfig: type: object properties: gateway_host: type: string gateway_port: type: string ErrorInfo: type: object required: - message - error_code - cause properties: message: type: string error_code: type: integer details: type: string cause: type: string examples: - message: Resource not found error_code: 3200 status_code: 404 cause: Catalog with ID urn:uuid:123 not found BatchRequests: type: object properties: ids: type: array items: type: string format: urn CatalogDto: type: object properties: id: type: string format: urn foafHomePage: type: string dctConformsTo: type: string dctCreator: type: string dctIdentifier: type: string dctIssued: type: string format: date-time dctModified: type: string format: date-time dctTitle: type: string dspaceParticipantId: type: string dspaceMainCatalog: type: boolean examples: - dctConformsTo: null dctCreator: null dctIdentifier: urn:catalog:35d10981-1d0b-4204-b32e-847b827ce635 dctIssued: "2026-01-09T10:49:53.822684Z" dctModified: null dctTitle: null dspaceMainCatalog: true dspaceParticipantId: did:jwk:eyJrdHkiOiJSU0Ei... foafHomePage: null id: urn:catalog:35d10981-1d0b-4204-b32e-847b827ce635 NewCatalogDto: type: object properties: id: type: string format: urn foafHomePage: type: string dctConformsTo: type: string dctCreator: type: string dctTitle: type: string dspaceParticipantId: type: string examples: - dctConformsTo: string dctCreator: string dctTitle: string foafHomePage: string DatasetDto: type: object properties: id: type: string format: urn dctConformsTo: type: string dctCreator: type: string dctIdentifier: type: string dctIssued: type: string format: date-time dctModified: type: string format: date-time dctTitle: type: string dctDescription: type: string catalogId: type: string format: urn examples: - catalogId: urn:catalog:4958f37d-17cf-44e7-ae18-1f26b6fe15ff dctConformsTo: null dctCreator: null dctDescription: null dctIdentifier: urn:dataset:10825ca3-a75e-43bd-9a82-603759cb8dec dctIssued: "2026-01-10T14:23:29.091150Z" dctModified: null dctTitle: superfoaf id: urn:dataset:10825ca3-a75e-43bd-9a82-603759cb8dec NewDatasetDto: type: object required: - catalogId properties: id: type: string format: urn dctConformsTo: type: string dctCreator: type: string dctTitle: type: string dctDescription: type: string catalogId: type: string format: urn examples: - catalogId: urn:catalog:4958f37d-17cf-44e7-ae18-1f26b6fe15ff dctConformsTo: null dctCreator: null dctDescription: null dctTitle: superfoaf DistributionDto: type: object properties: id: type: string format: urn dctIssued: type: string format: date-time dctModified: type: string format: date-time dctTitle: type: string dctDescription: type: string dctFormat: type: string description: Format in protocol+action format dcatAccessService: type: string datasetId: type: string format: urn examples: - datasetId: urn:dataset:10825ca3-a75e-43bd-9a82-603759cb8dec dcatAccessService: urn:data-service:37840ca3-79f6-4542-8394-0c57dd93650f dctDescription: null dctFormat: Http+Push dctIssued: "2026-01-10T14:24:29.424022Z" dctModified: null dctTitle: superfoaf id: urn:distribution:77116828-c4dd-4632-8946-969bb7903819 NewDistributionDto: type: object required: - dcatAccessService - datasetId properties: id: type: string format: urn dctTitle: type: string dctDescription: type: string dctFormats: type: string dcatAccessService: type: string datasetId: type: string format: urn examples: - datasetId: urn:dataset:10825ca3-a75e-43bd-9a82-603759cb8dec dcatAccessService: urn:data-service:37840ca3-79f6-4542-8394-0c57dd93650f dctDescription: null dctFormat: Http+Push dctTitle: superfoaf DataServiceDto: type: object properties: id: type: string format: urn dcatEndpointDescription: type: string dcatEndpointUrl: type: string dctConformsTo: type: string dctCreator: type: string dctIdentifier: type: string dctIssued: type: string format: date-time dctModified: type: string format: date-time dctTitle: type: string dctDescription: type: string catalogId: type: string format: urn dspaceMainDataService: type: boolean examples: - catalogId: urn:catalog:35d10981-1d0b-4204-b32e-847b827ce635 dcatEndpointDescription: null dcatEndpointUrl: http://127.0.0.1:1200/dsp/current dctConformsTo: null dctCreator: null dctDescription: null dctIdentifier: urn:data-service:37840ca3-79f6-4542-8394-0c57dd93650f dctIssued: "2026-01-09T10:49:53.895893Z" dctModified: null dctTitle: null dspaceMainDataService: true id: urn:data-service:37840ca3-79f6-4542-8394-0c57dd93650f NewDataServiceDto: type: object required: - dcatEndpointUrl - catalogId properties: id: type: string format: urn dcatEndpointDescription: type: string dcatEndpointUrl: type: string dctConformsTo: type: string dctCreator: type: string dctTitle: type: string dctDescription: type: string catalogId: type: string format: urn examples: - catalogId: urn:catalog:35d10981-1d0b-4204-b32e-847b827ce635 dcatEndpointDescription: null dcatEndpointUrl: http://127.0.0.1:1200/dsp/current dctConformsTo: null dctCreator: null dctDescription: null dctTitle: null OdrlPolicyDto: type: object properties: id: type: string format: urn odrlOffer: $ref: "#/components/schemas/OdrlPolicyInfo" entity: type: string format: urn entityType: type: string enum: - Distribution - DataService - Catalog - Dataset createdAt: type: string format: date-time sourceTemplateId: type: string sourceTemplateVersion: type: string instantiationParameters: type: object description: type: string examples: - createdAt: "2026-01-10T14:40:30.978559Z" entity: urn:catalog:35d10981-1d0b-4204-b32e-847b827ce635 entityType: Catalog id: urn:odrl-policy:abad083e-78a8-4f90-aaca-7c5d6af6c251 instantiationParameters: $bla: hola odrlOffer: permission: - action: use constraint: - leftOperand: bla operator: eq rightOperand: hola sourceTemplateId: policy-1 sourceTemplateVersion: "1.0" OdrlPolicyInfo: type: object properties: profile: oneOf: - type: string - type: object - type: array items: type: string permission: type: array items: $ref: "#/components/schemas/OdrlPermission" obligation: type: array items: $ref: "#/components/schemas/OdrlObligation" prohibition: type: array items: $ref: "#/components/schemas/OdrlObligation" OdrlPermission: type: object required: - action properties: action: type: string constraint: type: array items: $ref: "#/components/schemas/OdrlConstraint" duty: type: array items: $ref: "#/components/schemas/OdrlDuty" OdrlProhibition: type: object required: - action properties: action: type: string constraint: type: array items: $ref: "#/components/schemas/OdrlConstraint" OdrlObligation: type: object required: - action properties: action: type: string constraint: type: array items: $ref: "#/components/schemas/OdrlConstraint" OdrlDuty: type: object required: - action properties: action: type: string constraint: type: array items: $ref: "#/components/schemas/OdrlConstraint" OdrlConstraint: type: object properties: leftOperand: type: string operator: type: string rightOperand: oneOf: - type: string - type: object OdrlAtomicConstraint: type: object required: - rightOperand - leftOperand - operator properties: leftOperand: type: string operator: type: string enum: - eq - gt - gteq - lteq - hasPart - isA - isAllOf - isAnyOf - isNoneOf - isPartOf - lt - termLteq - neq rightOperand: oneOf: - type: string - type: object - type: array items: {} OdrlLogicalConstraint: type: object properties: and: type: array items: $ref: "#/components/schemas/OdrlConstraint" andSequence: type: array items: $ref: "#/components/schemas/OdrlConstraint" or: type: array items: $ref: "#/components/schemas/OdrlConstraint" xone: type: array items: $ref: "#/components/schemas/OdrlConstraint" PolicyTemplateDto: type: object properties: id: type: string version: type: string date: type: string format: date-time title: $ref: "#/components/schemas/LocalizedText" description: $ref: "#/components/schemas/LocalizedText" author: type: string content: $ref: "#/components/schemas/OdrlPolicyInfo" parameters: type: object additionalProperties: $ref: "#/components/schemas/ParameterDefinition" examples: - author: "" content: permission: - action: use constraint: - leftOperand: bla operator: eq rightOperand: $bla date: "2026-01-09T13:25:40.004265Z" description: Mi example super policy id: policy-1 parameters: $bla: dataType: string restrictions: {} ui: hidden: false title: Mi example policy version: "1.0" NewPolicyTemplateDto: type: object required: - content properties: id: type: string version: type: string date: type: string format: date-time title: $ref: "#/components/schemas/LocalizedText" description: $ref: "#/components/schemas/LocalizedText" author: type: string content: $ref: "#/components/schemas/OdrlPolicyInfo" parameters: type: object additionalProperties: $ref: "#/components/schemas/ParameterDefinition" examples: - author: "" content: permission: - action: use constraint: - leftOperand: bla operator: eq rightOperand: $bla date: "2026-01-09T13:25:40.004265Z" description: Mi example super policy id: policy-1 parameters: $bla: dataType: string restrictions: {} ui: hidden: false title: Mi example policy version: "1.0" ParameterDefinition: type: object required: - name - title - paramType - required properties: name: type: string title: type: string description: type: string paramType: type: string enum: - STRING - INT - BOOLEAN - VEC - MAP required: type: boolean defaultValue: type: string autoFilled: type: boolean autoFilledType: type: string enum: - SYS_URN - SYS_TOKEN - SYS_TIMESTAMP - SYS_ISO8601 NewPolicyInstantiationDto: type: object required: - id - version - parameters - entityId - entityType properties: id: type: string version: type: string parameters: type: object additionalProperties: $ref: "#/components/schemas/PolicyTemplateAllowedDefaultValues" entityId: type: string format: urn entityType: type: string enum: - Distribution - DataService - Catalog - Dataset description: type: string examples: - id: policy-1 version: "1.0" parameters: $bla: hola entityId: urn:catalog:35d10981-1d0b-4204-b32e-847b827ce635 entityType: Catalog ConnectorInstanceDto: type: object required: - id - authenticationConfig - interaction - distributionId allOf: - $ref: "#/components/schemas/ConnectorMetadata" - type: object properties: id: type: string format: urn authenticationConfig: $ref: "#/components/schemas/AuthenticationConfig" interaction: $ref: "#/components/schemas/InteractionConfig" distributionId: type: string format: urn ConnectorTemplateDto: type: object required: - authentication - interaction - parameters allOf: - $ref: "#/components/schemas/ConnectorMetadata" - type: object properties: authentication: $ref: "#/components/schemas/AuthenticationConfig" interaction: $ref: "#/components/schemas/InteractionConfig" parameters: type: array items: $ref: "#/components/schemas/ParameterDefinition" AuthenticationConfig: oneOf: - $ref: "#/components/schemas/NoAuth" - $ref: "#/components/schemas/BasicAuthConfig" - $ref: "#/components/schemas/BearerToken" - $ref: "#/components/schemas/ApiKey" - $ref: "#/components/schemas/OAuth2" discriminator: propertyName: type mapping: NO_AUTH: "#/components/schemas/NoAuth" BASIC_AUTH: "#/components/schemas/BasicAuthConfig" BEARER_TOKEN: "#/components/schemas/BearerToken" API_KEY: "#/components/schemas/ApiKey" OAUTH_2: "#/components/schemas/OAuth2" Oauth2ClientCredentials: type: object properties: type: type: string enum: - Oauth2ClientCredentials grantType: type: string tokenUrl: type: string clientId: type: string clientSecret: type: string scopes: oneOf: - type: string - type: array items: type: string ApiKey: type: object properties: type: type: string enum: - API_KEY key: type: string value: type: string location: type: string enum: - HEADER - QUERY BearerToken: type: object properties: type: type: string enum: - BEARER_TOKEN token: type: string BasicAuth: type: object properties: type: type: string enum: - BasicAuth username: type: string password: type: string NoAuth: type: object properties: type: type: string enum: - NO_AUTH InteractionConfig: oneOf: - $ref: "#/components/schemas/PullLifecycle" - $ref: "#/components/schemas/PushLifecycle" discriminator: propertyName: mode mapping: PULL: "#/components/schemas/PullLifecycle" PUSH: "#/components/schemas/PushLifecycle" PullLifecycle: type: object properties: mode: type: string enum: - PULL dataAccess: type: object properties: protocol: type: string accessUrl: type: string PushLifecycle: type: object properties: mode: type: string enum: - PUSH subscribe: type: object unsubscribe: type: object Catalog: type: object properties: "@context": oneOf: - type: string - type: array items: type: string "@type": type: string "@id": type: string format: urn homepage: type: string theme: type: string keyword: type: string conformsTo: type: string creator: type: string identifier: type: string issued: type: string format: date-time modified: type: string format: date-time title: type: string description: type: array items: type: string participantId: type: string hasPolicy: type: array items: $ref: "#/components/schemas/OdrlOffer" extraFields: type: object catalog: oneOf: - type: array items: $ref: "#/components/schemas/Catalog" - type: array items: $ref: "#/components/schemas/CatalogMinimized" dataset: oneOf: - type: array items: $ref: "#/components/schemas/Dataset" - type: array items: $ref: "#/components/schemas/DatasetMinimized" service: oneOf: - $ref: "#/components/schemas/DataService" - $ref: "#/components/schemas/DataServiceMinimized" - type: array items: $ref: "#/components/schemas/DataService" examples: - "@context": - https://w3id.org/dspace/2025/1/context.jsonld "@type": Catalog "@id": urn:catalog:35d10981-1d0b-4204-b32e-847b827ce635 identifier: urn:catalog:35d10981-1d0b-4204-b32e-847b827ce635 issued: "2026-01-09T10:49:53.822684" catalog: - "@type": Catalog "@id": urn:catalog:4958f37d-17cf-44e7-ae18-1f26b6fe15ff homepage: superfoaf identifier: urn:catalog:4958f37d-17cf-44e7-ae18-1f26b6fe15ff issued: "2026-01-10T14:23:16.619801" dataset: - "@type": Dataset "@id": urn:dataset:10825ca3-a75e-43bd-9a82-603759cb8dec identifier: urn:dataset:10825ca3-a75e-43bd-9a82-603759cb8dec issued: "2026-01-10T14:23:29.091150" title: superfoaf hasPolicy: - "@id": urn:odrl-policy:3953b047-0aa5-4649-a0bd-0522f77d018b permission: - action: use "@type": Offer distribution: - "@type": Distribution "@id": urn:distribution:77116828-c4dd-4632-8946-969bb7903819 accessService: "@type": DataService "@id": urn:data-service:37840ca3-79f6-4542-8394-0c57dd93650f endpointURL: http://127.0.0.1:1200/dsp/current issued: "2026-01-10T14:24:29.424022" title: superfoaf formats: http+push service: [] dataset: [] service: "@type": DataService "@id": urn:data-service:37840ca3-79f6-4542-8394-0c57dd93650f endpointURL: http://127.0.0.1:1200/dsp/current Dataset: type: object properties: "@context": oneOf: - type: string - type: array items: type: string "@type": type: string "@id": type: string hasPolicy: type: array items: $ref: "#/components/schemas/OdrlOffer" distribution: oneOf: - type: array items: $ref: "#/components/schemas/Distribution" - type: array items: $ref: "#/components/schemas/DistributionMinimized" conformsTo: type: string title: type: string examples: - "@context": - https://w3id.org/dspace/2025/1/context.jsonld "@type": Dataset "@id": urn:dataset:10825ca3-a75e-43bd-9a82-603759cb8dec identifier: urn:dataset:10825ca3-a75e-43bd-9a82-603759cb8dec issued: "2026-01-10T14:23:29.091150" title: superfoaf hasPolicy: - "@id": urn:odrl-policy:3953b047-0aa5-4649-a0bd-0522f77d018b permission: - action: use "@type": Offer distribution: - "@type": Distribution "@id": urn:distribution:77116828-c4dd-4632-8946-969bb7903819 accessService: "@type": DataService "@id": urn:data-service:37840ca3-79f6-4542-8394-0c57dd93650f endpointURL: http://127.0.0.1:1200/dsp/current issued: "2026-01-10T14:24:29.424022" title: superfoaf formats: http+push Distribution: type: object properties: "@type": type: string "@id": type: string accessService: type: array items: $ref: "#/components/schemas/DataService" DataService: type: object properties: "@context": oneOf: - type: string - type: array items: type: string "@type": type: string "@id": type: string endpointURL: type: string endpointDescription: type: string OdrlOffer: type: object properties: "@type": type: string enum: - Offer - Agreement "@id": type: string format: urn target: type: string format: urn permission: type: array items: $ref: "#/components/schemas/OdrlPermission" prohibition: type: array items: $ref: "#/components/schemas/OdrlProhibition" obligation: type: array items: $ref: "#/components/schemas/OdrlObligation" DatahubDomain: type: object properties: urn: type: string name: type: string description: type: string DatahubDataset: type: object properties: urn: type: string name: type: string description: type: string platform: type: string NegotiationProcessDto: type: object required: - id - state - associatedAgentPeer - protocol - role - properties - createdAt properties: id: type: string format: urn state: type: string stateAttribute: type: string associatedAgentPeer: type: string protocol: type: string callbackAddress: type: string role: type: string properties: type: object errorDetails: type: object createdAt: type: string format: date-time updatedAt: type: string format: date-time identifiers: type: object additionalProperties: type: string messages: type: array items: $ref: "#/components/schemas/NegotiationMessageDto" offers: type: array items: $ref: "#/components/schemas/OfferDto" agreement: $ref: "#/components/schemas/AgreementDto" NegotiationMessageDto: type: object required: - id - negotiationAgentProcessId - createdAt - direction - protocol - messageType - stateTransitionFrom - stateTransitionTo - payload properties: id: type: string format: urn negotiationAgentProcessId: type: string format: urn createdAt: type: string format: date-time direction: type: string protocol: type: string messageType: type: string stateTransitionFrom: type: string stateTransitionTo: type: string payload: type: object offer: $ref: "#/components/schemas/OfferDto" agreement: $ref: "#/components/schemas/AgreementDto" OfferDto: type: object required: - id - negotiationAgentProcessId - negotiationAgentMessageId - offerId - offerContent - createdAt properties: id: type: string format: urn negotiationAgentProcessId: type: string format: urn negotiationAgentMessageId: type: string format: urn offerId: type: string offerContent: type: object createdAt: type: string format: date-time AgreementDto: type: object required: - id - negotiationAgentProcessId - negotiationAgentMessageId - consumerParticipantId - providerParticipantId - agreementContent - target - state - createdAt properties: id: type: string format: urn negotiationAgentProcessId: type: string format: urn negotiationAgentMessageId: type: string format: urn consumerParticipantId: type: string providerParticipantId: type: string agreementContent: type: object target: type: string format: urn state: type: string createdAt: type: string format: date-time updatedAt: type: string format: date-time TransferProcessDto: type: object properties: id: type: string format: urn state: type: string stateAttribute: type: - string - "null" associatedAgentPeer: type: string protocol: type: string transferDirection: type: string agreementId: type: string format: urn callbackAddress: type: - string - "null" role: type: string properties: type: object errorDetails: type: - object - "null" createdAt: type: string format: date-time updatedAt: type: - string - "null" format: date-time identifiers: type: object additionalProperties: type: string messages: type: array items: $ref: "#/components/schemas/TransferMessageDto" TransferMessageDto: type: object properties: id: type: string format: urn transferAgentProcessId: type: string format: urn createdAt: type: string format: date-time direction: type: string protocol: type: string messageType: type: string stateTransitionFrom: type: string stateTransitionTo: type: string payload: type: - object - "null" # --- Dataplane DTOs --- DataplaneTransferDto: type: object properties: id: type: string format: urn transferProcessId: type: string format: urn role: $ref: "#/components/schemas/TransferRole" interactionMode: $ref: "#/components/schemas/InteractionMode" state: $ref: "#/components/schemas/TransferState" connectorInstanceId: type: - string - "null" format: urn ingressConfig: type: object egressConfig: type: object flowControl: type: - object - "null" createdAt: type: string format: date-time updatedAt: type: string format: date-time fields: type: object additionalProperties: type: string logs: type: array items: $ref: "#/components/schemas/DataplaneTransferLogDto" DataplaneTransferLogDto: type: object properties: id: type: string format: urn dataplane_process_id: type: string format: urn previous_state: type: - string - "null" new_state: type: string trigger: type: string reason: type: - string - "null" created_at: type: string format: date-time TransferEventDto: type: object properties: id: type: string format: urn transfer_id: type: string format: urn level: $ref: "#/components/schemas/LogLevel" component: type: string message: type: string data: type: - object - "null" additionalProperties: true created_at: type: string format: date-time NewDataplaneTransferDto: type: object required: - transferProcessId - role - interactionMode - state - ingressConfig - egressConfig properties: id: type: - string - "null" format: urn transferProcessId: type: string format: urn role: $ref: "#/components/schemas/TransferRole" interactionMode: $ref: "#/components/schemas/InteractionMode" state: $ref: "#/components/schemas/TransferState" connectorInstanceId: type: - string - "null" format: urn ingressConfig: type: object egressConfig: type: object EditDataplaneTransferDto: type: object properties: state: oneOf: - $ref: "#/components/schemas/TransferState" - type: "null" connectorInstanceId: type: - string - "null" format: urn ingressConfig: type: - object - "null" egressConfig: type: - object - "null" flowControl: type: - object - "null" fields: type: - object - "null" additionalProperties: type: string DataplaneInfoResponse: type: object properties: id: type: string format: urn interaction_mode: type: string ingress_url: type: string nullable: true NewTransferEventDto: type: object required: - dataplaneProcessId - level - component - message properties: dataplaneProcessId: type: string format: urn level: $ref: "#/components/schemas/LogLevel" component: type: string message: type: string data: type: - object - "null" # --- Enums --- TransferRole: type: string enum: [PROVIDER, CONSUMER] InteractionMode: type: string enum: [PULL, PUSH] TransferState: type: string enum: [ INIT, CONFIGURING, AUTH, READY, SUBSCRIBING, STARTED, UNSUBSCRIBING, STOPPED, TERMINATED, ERROR, ] LogLevel: type: string enum: [Debug, Info, Warn, Error] DataAddressDto: type: object properties: endpointType: type: string endpoint: type: - string - "null" endpointProperties: type: - array - "null" items: $ref: "#/components/schemas/EndpointPropertyDto" EndpointPropertyDto: type: object required: - name - value - "@type" properties: name: type: string value: type: string "@type": type: string ParticipantDto: type: object properties: participant_id: type: string participant_nick: type: string participant_type: type: string base_url: type: string token: type: string saved_at: type: string format: date-time last_interaction: type: string format: date-time extra_fields: type: object additionalProperties: true is_me: type: boolean PeerCatalogEntry: type: object properties: participant: $ref: "#/components/schemas/ParticipantDto" catalog: $ref: "#/components/schemas/Catalog" VersionResponse: type: object required: - protocolVersions properties: protocolVersions: type: array items: $ref: "#/components/schemas/Version" Version: type: object required: - binding - path - version properties: binding: type: string enum: - HTTPS - HTTP path: type: string version: type: string enum: - 2024-1 - 2025-1 auth: $ref: "#/components/schemas/Auth" identifierType: type: string enum: - did:web - did:jwk - url - D-U-N-S serviceId: type: string Auth: type: object required: - protocol - version properties: protocol: type: string enum: - OAuth - Token - GNAP version: type: string profile: type: array items: type: string WellKnownRPCRequest: type: object required: - participant_id properties: participant_id: type: string VersionPath: type: object required: - path properties: path: type: string RpcCatalogRequestMessageDto: type: object properties: associatedAgentPeer: type: string noCache: type: boolean filter: type: array items: type: string examples: - associatedAgentPeer: did:jwk:eyJrdHkiOiJSU0Ei... filter: [] RpcCatalogResponseMessageDto: type: object properties: request: $ref: "#/components/schemas/RpcCatalogRequestMessageDto" response: $ref: "#/components/schemas/Catalog" RpcDatasetRequestMessageDto: type: object properties: associatedAgentPeer: type: string dataset: type: string format: urn examples: - associatedAgentPeer: did:jwk:eyJrdHkiOiJSU0Ei... dataset: urn:dataset:828b4b4d-931e-45dd-b40b-b15251fa6487 RpcNegotiationRequestInitMessageDto: type: object required: - associatedAgentPeer - providerAddress - callbackAddress - offer properties: associatedAgentPeer: type: string providerAddress: type: string callbackAddress: type: string offer: oneOf: - type: string - $ref: "#/components/schemas/OdrlOffer" RpcNegotiationOfferInitMessageDto: type: object required: - associatedAgentPeer - providerAddress - callbackAddress - offer properties: associatedAgentPeer: type: string providerAddress: type: string callbackAddress: type: string offer: $ref: "#/components/schemas/OdrlOffer" NegotiationRPCRequestBody: type: object required: - providerPid - consumerPid - offer properties: providerPid: type: string consumerPid: type: string offer: $ref: "#/components/schemas/OdrlOffer" datasetId: type: string NegotiationRPCOfferBody: type: object required: - processId - offer properties: processId: type: string offer: $ref: "#/components/schemas/OdrlOffer" NegotiationRPCAcceptanceBody: type: object required: - consumerPid - providerPid properties: consumerPid: type: string providerPid: type: string NegotiationRPCAgreementBody: type: object required: - consumerPid - providerPid properties: consumerPid: type: string providerPid: type: string NegotiationRPCVerificationBody: type: object required: - consumerPid - providerPid properties: consumerPid: type: string providerPid: type: string NegotiationRPCFinalizationBody: type: object required: - consumerPid - providerPid properties: consumerPid: type: string providerPid: type: string NegotiationRPCTerminationBody: type: object required: - consumerPid - providerPid - code - reason properties: consumerPid: type: string providerPid: type: string code: type: string reason: type: array items: type: string TransferRPCRequestBody: type: object required: - associatedAgentPeer - providerAddress - callbackAddress - agreementId - format properties: associatedAgentPeer: type: string providerAddress: type: string callbackAddress: type: string agreementId: type: string format: type: string dataAddress: $ref: "#/components/schemas/DataAddressDto" autoStart: type: boolean description: > BFF simplified flow. When true the Provider automatically responds with a TransferStartMessage upon receiving the request. TransferRPCStartBody: type: object required: - consumerPid - providerPid properties: consumerPid: type: string providerPid: type: string TransferRPCSuspensionBody: type: object required: - consumerPid - providerPid - code properties: consumerPid: type: string providerPid: type: string code: type: string reason: type: array items: type: string TransferRPCCompletionBody: type: object required: - consumerPid - providerPid properties: consumerPid: type: string providerPid: type: string TransferRPCTerminationBody: type: object required: - consumerPid - providerPid - code properties: consumerPid: type: string providerPid: type: string code: type: string reason: type: array items: type: string Subscription: type: object properties: id: type: string format: uuid target: type: string subscriber: type: string callbackAddress: type: string createdAt: type: string format: date-time NotificationSub: type: object properties: id: type: string format: uuid subscriptionId: type: string format: uuid event: type: object status: type: string createdAt: type: string format: date-time RPCResponse: type: object properties: status: type: string code: type: integer message: type: string BatchRequestsAsString: type: object properties: ids: type: array items: type: string EditCatalogDto: type: object properties: foafHomePage: type: string dctConformsTo: type: string dctCreator: type: string dctTitle: type: string examples: - dctConformsTo: string dctCreator: string dctTitle: string foafHomePage: string EditDataServiceDto: type: object properties: dcatEndpointDescription: type: string dcatEndpointUrl: type: string dctConformsTo: type: string dctCreator: type: string dctTitle: type: string dctDescription: type: string examples: - dcatEndpointDescription: null dcatEndpointUrl: http://127.0.0.1:1200/dsp/current dctConformsTo: null dctCreator: null dctDescription: null dctTitle: null EditDatasetDto: type: object properties: dctConformsTo: type: string dctCreator: type: string dctTitle: type: string dctDescription: type: string examples: - dctConformsTo: null dctCreator: null dctDescription: null dctTitle: superfoaf EditDistributionDto: type: object properties: dctTitle: type: string dctDescription: type: string dcatAccessService: type: string examples: - dctDescription: null dctFormat: Http+Push dctTitle: superfoaf NewOdrlPolicyDto: type: object required: - odrlOffer - entityId - entityType properties: id: type: string format: urn odrlOffer: $ref: "#/components/schemas/OdrlPolicyInfo" entityId: type: string format: urn entityType: type: string enum: - Distribution - DataService - Catalog - Dataset sourceTemplateId: type: string sourceTemplateVersion: type: string instantiationParameters: type: object description: type: string examples: - entity: urn:catalog:35d10981-1d0b-4204-b32e-847b827ce635 entityType: Catalog odrlOffer: permission: - action: use constraint: - leftOperand: bla operator: eq rightOperand: hola LocalizedText: type: object additionalProperties: type: string PolicyTemplateAllowedDefaultValues: oneOf: - type: string - type: number CatalogMinimized: type: object properties: "@type": type: string "@id": type: string format: urn homepage: type: string DatasetMinimized: type: object properties: "@type": type: string "@id": type: string DataServiceMinimized: type: object properties: "@type": type: string "@id": type: string DistributionMinimized: type: object properties: "@type": type: string "@id": type: string ConnectorInstantiationDto: type: object required: - templateName - templateVersion - distributionId - parameters properties: templateName: type: string templateVersion: type: string distributionId: type: string format: urn parameters: type: object additionalProperties: {} metadata: $ref: "#/components/schemas/InstanceMetadataDto" dryRun: type: boolean default: false InstanceMetadataDto: type: object properties: description: type: string ownerId: type: string ConnectorMetadata: type: object properties: name: type: string author: type: string description: type: string version: type: string createdAt: type: string format: date-time BasicAuthConfig: type: object properties: type: type: string enum: - BASIC_AUTH username: type: string password: type: string OAuth2: type: object properties: type: type: string enum: - OAUTH_2 grantType: type: string enum: - ClientCredentials - AuthorizationCode tokenUrl: type: string clientId: type: string clientSecret: type: string scopes: oneOf: - type: array items: type: string - type: string CatalogMessageWrapper_CatalogRequestMessageDto: type: object properties: "@context": oneOf: - type: string - type: array items: type: string "@type": type: string filter: type: object description: Filter criteria for catalog request required: - "@type" examples: - "@context": - https://w3id.org/dspace/2025/1/context.jsonld "@type": CatalogRequestMessage filter: [] CatalogMessageWrapper_DatasetRequestMessage: type: object properties: "@context": oneOf: - type: string - type: array items: type: string "@type": type: string dataset: type: string format: urn description: ID of the dataset requested required: - "@type" examples: - "@context": - https://w3id.org/dspace/2025/1/context.jsonld "@type": DatasetRequestMessage dataset: urn:dataset:d58e3c46-5c22-44e1-8614-5b4fc30bb572 CatalogNewDto: type: object properties: id: type: string format: urn foafHomePage: type: string dctConformsTo: type: string dctCreator: type: string dctTitle: type: string dspaceParticipantId: type: string examples: - dctConformsTo: string dctCreator: string dctTitle: string foafHomePage: string CatalogEditDto: type: object properties: foafHomePage: type: string dctConformsTo: type: string dctCreator: type: string dctTitle: type: string examples: - dctConformsTo: string dctCreator: string dctTitle: string foafHomePage: string DataServiceNewDto: type: object required: - dcatEndpointUrl - catalogId properties: id: type: string format: urn dcatEndpointDescription: type: string dcatEndpointUrl: type: string dctConformsTo: type: string dctCreator: type: string dctTitle: type: string dctDescription: type: string catalogId: type: string format: urn examples: - catalogId: urn:catalog:35d10981-1d0b-4204-b32e-847b827ce635 dcatEndpointDescription: null dcatEndpointUrl: http://127.0.0.1:1200/dsp/current dctConformsTo: null dctCreator: null dctDescription: null dctTitle: null DataServiceEditDto: type: object properties: dcatEndpointDescription: type: string dcatEndpointUrl: type: string dctConformsTo: type: string dctCreator: type: string dctTitle: type: string dctDescription: type: string examples: - dcatEndpointDescription: null dcatEndpointUrl: http://127.0.0.1:1200/dsp/current dctConformsTo: null dctCreator: null dctDescription: null dctTitle: null DatasetNewDto: type: object required: - catalogId properties: id: type: string format: urn dctConformsTo: type: string dctCreator: type: string dctTitle: type: string dctDescription: type: string catalogId: type: string format: urn examples: - catalogId: urn:catalog:4958f37d-17cf-44e7-ae18-1f26b6fe15ff dctConformsTo: null dctCreator: null dctDescription: null dctTitle: superfoaf DatasetEditDto: type: object properties: dctConformsTo: type: string dctCreator: type: string dctTitle: type: string dctDescription: type: string examples: - dctConformsTo: null dctCreator: null dctDescription: null dctTitle: superfoaf DistributionNewDto: type: object required: - dcatAccessService - datasetId properties: id: type: string format: urn dctTitle: type: string dctDescription: type: string dctFormats: type: string dcatAccessService: type: string datasetId: type: string format: urn examples: - datasetId: urn:dataset:10825ca3-a75e-43bd-9a82-603759cb8dec dcatAccessService: urn:data-service:37840ca3-79f6-4542-8394-0c57dd93650f dctDescription: null dctFormat: Http+Push dctTitle: superfoaf DistributionEditDto: type: object properties: dctTitle: type: string dctDescription: type: string dcatAccessService: type: string examples: - dctDescription: null dctFormat: Http+Push dctTitle: superfoaf NewAgreementDto: type: object required: - negotiationAgentProcessId - negotiationAgentMessageId - consumerParticipantId - providerParticipantId - agreementContent - target properties: id: type: string format: urn negotiationAgentProcessId: type: string format: urn negotiationAgentMessageId: type: string format: urn consumerParticipantId: type: string providerParticipantId: type: string agreementContent: type: object target: type: string format: urn EditAgreementDto: type: object properties: state: type: string NewNegotiationMessageDto: type: object required: - negotiationAgentProcessId - direction - protocol - messageType - stateTransitionFrom - stateTransitionTo - payload properties: id: type: string format: urn negotiationAgentProcessId: type: string format: urn direction: type: string protocol: type: string messageType: type: string stateTransitionFrom: type: string stateTransitionTo: type: string payload: type: object NewNegotiationProcessDto: type: object required: - state - associatedAgentPeer - protocol - role properties: id: type: string format: urn state: type: string stateAttribute: type: string associatedAgentPeer: type: string protocol: type: string callbackAddress: type: string role: type: string properties: type: object identifiers: type: object additionalProperties: type: string EditNegotiationProcessDto: type: object properties: state: type: string stateAttribute: type: string properties: type: object errorDetails: type: object identifiers: type: object additionalProperties: type: string NewOfferDto: type: object required: - negotiationAgentProcessId - negotiationAgentMessageId - offerId - offerContent properties: id: type: string format: urn negotiationAgentProcessId: type: string format: urn negotiationAgentMessageId: type: string format: urn offerId: type: string offerContent: type: object ContextField: oneOf: - type: string - type: array items: type: string NegotiationProcessMessageWrapper_NegotiationRequestInitMessageDto: type: object required: - "@type" - negotiationAgentProcessId - offer properties: "@context": $ref: "#/components/schemas/ContextField" "@type": type: string enum: - ContractRequestMessage consumerPid: type: string format: urn offer: $ref: "#/components/schemas/OdrlOffer" callbackAddress: type: string NegotiationProcessMessageWrapper_NegotiationRequestMessageDto: type: object required: - "@type" - consumerPid - providerPid - offer properties: "@context": $ref: "#/components/schemas/ContextField" "@type": type: string enum: - ContractRequestMessage consumerPid: type: string format: urn providerPid: type: string format: urn offer: $ref: "#/components/schemas/OdrlOffer" NegotiationProcessMessageWrapper_NegotiationOfferInitMessageDto: type: object required: - "@type" - providerPid - offer properties: "@context": $ref: "#/components/schemas/ContextField" "@type": type: string enum: - ContractOfferMessage providerPid: type: string format: urn offer: $ref: "#/components/schemas/OdrlOffer" callbackAddress: type: string NegotiationProcessMessageWrapper_NegotiationOfferMessageDto: type: object required: - "@type" - consumerPid - providerPid - offer properties: "@context": $ref: "#/components/schemas/ContextField" "@type": type: string enum: - ContractOfferMessage consumerPid: type: string format: urn providerPid: type: string format: urn offer: $ref: "#/components/schemas/OdrlOffer" callbackAddress: type: string NegotiationProcessMessageWrapper_NegotiationAgreementMessageDto: type: object required: - "@type" - consumerPid - providerPid - agreement properties: "@context": $ref: "#/components/schemas/ContextField" "@type": type: string enum: - ContractAgreementMessage consumerPid: type: string format: urn providerPid: type: string format: urn agreement: $ref: "#/components/schemas/OdrlAgreement" NegotiationProcessMessageWrapper_NegotiationVerificationMessageDto: type: object required: - "@type" - consumerPid - providerPid properties: "@context": $ref: "#/components/schemas/ContextField" "@type": type: string enum: - ContractAgreementVerificationMessage consumerPid: type: string format: urn providerPid: type: string format: urn NegotiationProcessMessageWrapper_NegotiationEventMessageDto: type: object required: - "@type" - consumerPid - providerPid - eventType properties: "@context": $ref: "#/components/schemas/ContextField" "@type": type: string enum: - ContractNegotiationEventMessage consumerPid: type: string format: urn providerPid: type: string format: urn eventType: type: string enum: - ACCEPTED - FINALIZED NegotiationProcessMessageWrapper_NegotiationTerminationMessageDto: type: object required: - "@type" - consumerPid - providerPid properties: "@context": $ref: "#/components/schemas/ContextField" "@type": type: string enum: - ContractNegotiationTerminationMessage consumerPid: type: string format: urn providerPid: type: string format: urn code: type: string reason: type: array items: type: string NegotiationProcessMessageWrapper_NegotiationAckMessageDto: type: object required: - "@type" - consumerPid - providerPid - state properties: "@context": $ref: "#/components/schemas/ContextField" "@type": type: string enum: - ContractNegotiation consumerPid: type: string format: urn providerPid: type: string format: urn state: type: string enum: - REQUESTED - OFFERED - ACCEPTED - AGREED - VERIFIED - FINALIZED - TERMINATED NegotiationProcessMessageWrapper_NegotiationErrorMessageDto: type: object required: - "@type" properties: "@context": $ref: "#/components/schemas/ContextField" "@type": type: string enum: - ContractNegotiationError consumerPid: type: string format: urn providerPid: type: string format: urn code: type: string reason: type: array items: type: string RpcNegotiationRequestMessageDto: type: object required: - offer - providerPid - consumerPid properties: offer: $ref: "#/components/schemas/OdrlOffer" providerPid: type: string format: urn consumerPid: type: string format: urn RpcNegotiationOfferMessageDto: type: object required: - offer - providerPid - consumerPid properties: offer: $ref: "#/components/schemas/OdrlOffer" providerPid: type: string format: urn consumerPid: type: string format: urn RpcNegotiationAgreementMessageDto: type: object required: - providerPid - consumerPid properties: providerPid: type: string format: urn consumerPid: type: string format: urn RpcNegotiationVerificationMessageDto: type: object required: - providerPid - consumerPid properties: providerPid: type: string format: urn consumerPid: type: string format: urn RpcNegotiationEventAcceptedMessageDto: type: object required: - providerPid - consumerPid properties: providerPid: type: string format: urn consumerPid: type: string format: urn RpcNegotiationEventFinalizedMessageDto: type: object required: - providerPid - consumerPid properties: providerPid: type: string format: urn consumerPid: type: string format: urn RpcNegotiationTerminationMessageDto: type: object required: - consumerPid - providerPid properties: consumerPid: type: string format: urn providerPid: type: string format: urn code: type: string reason: type: array items: type: string RpcNegotiationMessageDto_RpcNegotiationRequestInitMessageDto: type: object properties: request: $ref: "#/components/schemas/RpcNegotiationRequestInitMessageDto" response: $ref: "#/components/schemas/NegotiationProcessMessageWrapper_NegotiationAckMessageDto" negotiationAgentModel: type: object RpcNegotiationMessageDto_RpcNegotiationRequestMessageDto: type: object properties: request: $ref: "#/components/schemas/RpcNegotiationRequestMessageDto" response: $ref: "#/components/schemas/NegotiationProcessMessageWrapper_NegotiationAckMessageDto" negotiationAgentModel: type: object RpcNegotiationMessageDto_RpcNegotiationOfferInitMessageDto: type: object properties: request: $ref: "#/components/schemas/RpcNegotiationOfferInitMessageDto" response: $ref: "#/components/schemas/NegotiationProcessMessageWrapper_NegotiationAckMessageDto" negotiationAgentModel: type: object RpcNegotiationMessageDto_RpcNegotiationOfferMessageDto: type: object properties: request: $ref: "#/components/schemas/RpcNegotiationOfferMessageDto" response: $ref: "#/components/schemas/NegotiationProcessMessageWrapper_NegotiationAckMessageDto" negotiationAgentModel: type: object RpcNegotiationMessageDto_RpcNegotiationEventAcceptedMessageDto: type: object properties: request: $ref: "#/components/schemas/RpcNegotiationEventAcceptedMessageDto" response: $ref: "#/components/schemas/NegotiationProcessMessageWrapper_NegotiationAckMessageDto" negotiationAgentModel: type: object RpcNegotiationMessageDto_RpcNegotiationAgreementMessageDto: type: object properties: request: $ref: "#/components/schemas/RpcNegotiationAgreementMessageDto" response: $ref: "#/components/schemas/NegotiationProcessMessageWrapper_NegotiationAckMessageDto" negotiationAgentModel: type: object RpcNegotiationMessageDto_RpcNegotiationVerificationMessageDto: type: object properties: request: $ref: "#/components/schemas/RpcNegotiationVerificationMessageDto" response: $ref: "#/components/schemas/NegotiationProcessMessageWrapper_NegotiationAckMessageDto" negotiationAgentModel: type: object RpcNegotiationMessageDto_RpcNegotiationEventFinalizedMessageDto: type: object properties: request: $ref: "#/components/schemas/RpcNegotiationEventFinalizedMessageDto" response: $ref: "#/components/schemas/NegotiationProcessMessageWrapper_NegotiationAckMessageDto" negotiationAgentModel: type: object RpcNegotiationMessageDto_RpcNegotiationTerminationMessageDto: type: object properties: request: $ref: "#/components/schemas/RpcNegotiationTerminationMessageDto" response: $ref: "#/components/schemas/NegotiationProcessMessageWrapper_NegotiationAckMessageDto" negotiationAgentModel: type: object OdrlAgreement: $ref: "#/components/schemas/OdrlOffer" NewTransferProcessDto: type: object required: - state - associatedAgentPeer - protocol - transferDirection - agreementId - role properties: id: type: - string - "null" format: urn state: type: string stateAttribute: type: - string - "null" associatedAgentPeer: type: string protocol: type: string transferDirection: type: string agreementId: type: string format: urn callbackAddress: type: - string - "null" role: type: string properties: type: - object - "null" identifiers: type: - object - "null" additionalProperties: type: string EditTransferProcessDto: type: object properties: state: type: - string - "null" stateAttribute: type: - string - "null" properties: type: - object - "null" errorDetails: type: - object - "null" identifiers: type: - object - "null" additionalProperties: type: string NewTransferMessageDto: type: object required: - transferAgentProcessId - direction - protocol - messageType - stateTransitionFrom - stateTransitionTo properties: id: type: - string - "null" format: urn transferAgentProcessId: type: string format: urn direction: type: string protocol: type: string messageType: type: string stateTransitionFrom: type: string stateTransitionTo: type: string payload: type: - object - "null" TransferRequestMessageDto: type: object required: - "@context" - "@type" - agreementId - format - callbackAddress - consumerPid properties: "@context": type: string default: http://w3id.org/dspace/2024/1/context.json "@type": type: string default: dspace:TransferRequestMessage agreementId: type: string format: urn format: type: string dataAddress: $ref: "#/components/schemas/DataAddressDto" callbackAddress: type: string consumerPid: type: string format: urn TransferStartMessageDto: type: object required: - "@context" - "@type" - providerPid - consumerPid properties: "@context": type: string default: http://w3id.org/dspace/2024/1/context.json "@type": type: string default: dspace:TransferStartMessage providerPid: type: string format: urn consumerPid: type: string format: urn dataAddress: $ref: "#/components/schemas/DataAddressDto" TransferCompletionMessageDto: type: object required: - "@context" - "@type" - providerPid - consumerPid properties: "@context": type: string default: http://w3id.org/dspace/2024/1/context.json "@type": type: string default: dspace:TransferCompletionMessage providerPid: type: string format: urn consumerPid: type: string format: urn TransferTerminationMessageDto: type: object required: - "@context" - "@type" - providerPid - consumerPid properties: "@context": type: string default: http://w3id.org/dspace/2024/1/context.json "@type": type: string default: dspace:TransferTerminationMessage providerPid: type: string format: urn consumerPid: type: string format: urn code: type: - string - "null" reason: type: - array - "null" items: type: string TransferSuspensionMessageDto: type: object required: - "@context" - "@type" - providerPid - consumerPid properties: "@context": type: string default: http://w3id.org/dspace/2024/1/context.json "@type": type: string default: dspace:TransferSuspensionMessage providerPid: type: string format: urn consumerPid: type: string format: urn code: type: - string - "null" reason: type: - array - "null" items: type: string TransferProcessAckDto: type: object required: - "@context" - "@type" - consumerPid - providerPid - state properties: "@context": type: string default: http://w3id.org/dspace/2024/1/context.json "@type": type: string default: dspace:TransferProcess consumerPid: type: string format: urn providerPid: type: string format: urn state: type: string RpcTransferRequestMessageDto: type: object required: - associatedAgentPeer - agreementId - format - providerAddress - callbackAddress properties: associatedAgentPeer: type: string agreementId: type: string format: urn format: type: string dataAddress: $ref: "#/components/schemas/DataAddressDto" providerAddress: type: string callbackAddress: type: string RpcTransferStartMessageDto: type: object required: - consumerPid - providerPid properties: consumerPid: type: string format: urn providerPid: type: string format: urn dataAddress: $ref: "#/components/schemas/DataAddressDto" RpcTransferCompletionMessageDto: type: object required: - consumerPid - providerPid properties: consumerPid: type: string format: urn providerPid: type: string format: urn RpcTransferTerminationMessageDto: type: object required: - consumerPid - providerPid properties: consumerPid: type: string format: urn providerPid: type: string format: urn code: type: - string - "null" reason: type: - array - "null" items: type: string RpcTransferSuspensionMessageDto: type: object required: - consumerPid - providerPid properties: consumerPid: type: string format: urn providerPid: type: string format: urn code: type: - string - "null" reason: type: - array - "null" items: type: string OdrlInfo: type: object properties: profile: oneOf: - type: string - type: object - type: array items: type: string permission: type: array items: $ref: "#/components/schemas/OdrlPermission" obligation: type: array items: $ref: "#/components/schemas/OdrlObligation" prohibition: type: array items: $ref: "#/components/schemas/OdrlObligation" Did: type: object required: - "@context" - assertionMethod - authentication - capabilityDelegation - capabilityInvocation - id - keyAgreement - verificationMethod title: Did properties: "@context": type: array items: type: string assertionMethod: type: array items: type: string authentication: type: array items: type: string capabilityDelegation: type: array items: type: string capabilityInvocation: type: array items: type: string id: type: string keyAgreement: type: array items: type: string verificationMethod: type: array items: "$ref": "#/components/schemas/DidVerificationMethod" DidVerificationMethod: type: object title: VerificationMethod required: - controller - id - publicKeyJwk - type properties: controller: type: string id: type: string publicKeyJwk: type: object type: type: string VCRequestCrossUserDto: type: object title: VCRequestCrossUserDto required: - url - id - slug - vc_type properties: url: type: string id: type: string slug: type: string vc_type: type: string VCRequestDto: type: object title: VCRequestDto required: - url - id - slug - vc_type properties: id: type: string authority_id: type: string authority_slug: type: string grant_endpoint: type: string vc_type: type: string assigned_id: type: string vc_uri: type: string verification_uri: type: string status: type: string created_at: type: string format: date-time ended_at: type: string format: date-time nullable: true Oidc4vciRequestDto: type: object title: Oidc4vciRequestDto required: - uri properties: uri: type: string Oidc4vpRequestDto: type: object title: Oidc4vpRequestDto required: - uri properties: uri: type: string OnboardProviderDto: type: object title: OnboardProviderDto required: - url - id - slug - actions properties: url: type: string id: type: string slug: type: string actions: type: string # --- Keystore schemas --- KeystoreVersionResponse: type: object required: - version properties: version: type: integer minimum: 1 description: New version number after the update example: 2 KeystoreParameterView: type: object required: - key - version - value - createdAt - updatedAt - createdBy - updatedBy properties: key: type: string description: Path-style key (e.g. /service/timeout) example: /service/timeout version: type: integer minimum: 1 example: 1 value: description: Any valid JSON value (string, number, boolean, array, object) example: 30 description: type: string nullable: true example: Connection timeout in seconds createdAt: type: string format: date-time example: "2026-05-19T10:00:00Z" updatedAt: type: string format: date-time example: "2026-05-19T10:00:00Z" createdBy: type: string example: admin updatedBy: type: string example: admin KeystoreNewParameterCommand: type: object required: - key - value properties: key: type: string pattern: '^(/[a-zA-Z0-9_.\-]+)+$' description: Path-style key example: /service/timeout value: description: Any valid JSON value example: 30 description: type: string nullable: true example: Connection timeout in seconds KeystoreEditParameterCommand: type: object required: - value - expectedVersion properties: value: description: New value (any valid JSON) example: 60 expectedVersion: type: integer minimum: 1 description: Must match current version (optimistic locking) example: 1 description: type: string nullable: true example: Connection timeout in seconds KeystoreSecretView: type: object required: - key - version - value - createdAt - updatedAt - createdBy - updatedBy properties: key: type: string description: Path-style key example: /db/password version: type: integer minimum: 1 example: 1 value: type: string description: Always masked — never returns the real value enum: - "*****" example: "*****" description: type: string nullable: true example: Production database password createdAt: type: string format: date-time example: "2026-05-19T10:00:00Z" updatedAt: type: string format: date-time example: "2026-05-19T10:00:00Z" createdBy: type: string example: admin updatedBy: type: string example: admin KeystoreNewSecretCommand: type: object required: - key - value properties: key: type: string pattern: '^(/[a-zA-Z0-9_.\-]+)+$' description: Path-style key example: /db/password value: description: Secret value — any valid JSON example: s3cr3t! description: type: string nullable: true example: Production database password KeystoreEditSecretCommand: type: object required: - value - expectedVersion properties: value: description: New secret value — any valid JSON example: n3w-s3cr3t! expectedVersion: type: integer minimum: 1 description: Must match current version (optimistic locking) example: 1 description: type: string nullable: true example: Production database password KeystoreApplicationConfig: type: object description: Full runtime application configuration. Shape depends on deployment. additionalProperties: true responses: InternalServerError: description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" BadRequest: description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" NotFound: description: Not Found content: application/json: schema: $ref: "#/components/schemas/ErrorInfo" Conflict: description: Conflict — key already exists or version mismatch content: application/json: schema: $ref: "#/components/schemas/ErrorInfo"