info: title: SD Tooling API description: |- The APIs described in the following document enable the management of the lifecycle for creating a Resource Description on the provider side, including its publication on the federated catalogue. The available APIs allow to define access and usage policies, specify the Resource Address on the provider side, and manage the validation and publication process on the federated catalogue. ## Business Context The API facilitates the creation and management of Resource Descriptions in a federated data space. It enables providers to publish metadata about their data assets on a federated catalogue, define access and usage policies, and manage the validation and publication workflow. This supports discoverability and interoperability across the data ecosystem. ### Key Actors - **Provider**: Creates and publishes Resource Descriptions, defines policies, and manages validation. - **Governance Authority**: Hosts the Federated Catalogue ### Typical Flow 1. Create a Resource Description. 2. Define access and usage policies. 3. Specify the Resource Address. 4. Submit the Resource Description for validation 5. Publish the Resource Description on the federated catalogue contact: name: Simpl Programme url: https://simpl-programme.ec.europa.eu/ email: cnect-simpl@ec.europa.eu license: name: European Union Public License (EUPL) 1.2 url: https://interoperable-europe.ec.europa.eu/sites/default/files/custom-page/attachment/eupl_v1.2_en.pdf version: "1.0" servers: - url: https://creation-wizard-api.dev.simpl-europe.eu/v1 security: - bearerAuth: [] openapi: 3.0.1 tags: - name: Schema description: |+ **DEPRECATED: All controller endpoints are deprecated since v1.22.0 and will be removed in a future version.** **Please use the V2 version of this controller** components: securitySchemes: bearerAuth: type: http description: IAA cloud gateway JWT token scheme: bearer bearerFormat: JWT schemas: OdrlAssignee: type: object properties: uid: type: string role: type: string UsagePolicyPermission: required: - assignee - constraints type: object properties: assignee: minLength: 1 type: string description: permission assignee example: Consumer action: type: string description: type of permission action (default USE) enum: - USE - DO_NOT_USE_THIS_TYPE constraints: minItems: 1 type: array description: permission contraints items: oneOf: - $ref: '#/components/schemas/DeletionConstraint' - $ref: '#/components/schemas/RestrictedDurationConstraint' - $ref: '#/components/schemas/RestrictedNumberConstraint' description: usage permissions UsagePolicyRequest: required: - permissions type: object properties: permissions: minItems: 1 type: array description: usage permissions items: $ref: '#/components/schemas/UsagePolicyPermission' InputObject: type: object properties: in: type: string enum: - body - path - query - header name: type: string value: type: object IdentityAttribute: type: object properties: identifier: type: string code: type: string PolicyAction: type: object properties: label: type: string value: type: string DeletionConstraint: required: - type type: object allOf: - $ref: '#/components/schemas/UsagePolicyConstraint' - type: object properties: type: type: string description: type of the constraint example: Deletion afterUse: type: boolean description: after use flag (default is false) RestrictedNumberConstraint: required: - maxCount - type type: object allOf: - $ref: '#/components/schemas/UsagePolicyConstraint' - type: object properties: type: type: string description: type of the constraint example: RestrictedNumber maxCount: minimum: 1 exclusiveMinimum: false type: integer description: restricted number max usage count format: int32 example: 10 OdrlAssigner: type: object properties: uid: type: string role: type: string ResourceAddress: required: - value type: object properties: templateId: type: string value: type: string InputValidationIssue: type: object properties: type: type: string format: uri href: type: string format: uri title: type: string detail: type: string in: type: string enum: - body - path - query - header name: type: string value: type: object inputs: type: array items: $ref: '#/components/schemas/InputObject' additionalProperties: type: object additionalProperties: type: object Template: type: object properties: id: type: string label: type: string AccessPolicyRequest: required: - permissions type: object properties: permissions: minItems: 1 type: array description: access permissions items: $ref: '#/components/schemas/AccessPolicyPermission' InternalServerErrorProblem: type: object properties: type: type: string format: uri href: type: string format: uri title: type: string status: type: integer format: int32 detail: type: string instance: type: string format: uri additionalProperties: type: object additionalProperties: type: object NotFoundProblem: type: object properties: type: type: string format: uri href: type: string format: uri title: type: string status: type: integer format: int32 detail: type: string instance: type: string format: uri additionalProperties: type: object additionalProperties: type: object UnauthorizedProblem: type: object properties: type: type: string format: uri href: type: string format: uri title: type: string status: type: integer format: int32 detail: type: string instance: type: string format: uri additionalProperties: type: object additionalProperties: type: object BadRequestProblem: type: object properties: type: type: string format: uri href: type: string format: uri title: type: string status: type: integer format: int32 detail: type: string instance: type: string format: uri issues: type: array items: $ref: '#/components/schemas/InputValidationIssue' additionalProperties: type: object additionalProperties: type: object UsagePolicyConstraint: type: object properties: type: type: string description: permission contraints discriminator: propertyName: type OdrlPermission: type: object properties: target: type: string assignee: $ref: '#/components/schemas/OdrlAssignee' action: type: array items: type: string constraint: type: array items: $ref: '#/components/schemas/OdrlConstraint' OdrlConstraint: type: object properties: leftOperand: type: string operator: type: string rightOperand: type: string OdrlPolicy: type: object properties: profile: type: string target: type: string assigner: $ref: '#/components/schemas/OdrlAssigner' uid: type: string '@context': type: string '@type': type: string permission: type: array items: $ref: '#/components/schemas/OdrlPermission' RestrictedDurationConstraint: required: - type type: object allOf: - $ref: '#/components/schemas/UsagePolicyConstraint' - type: object properties: type: type: string description: type of the constraint example: RestrictedDuration fromDatetime: type: string description: duration start datetime in ISO8601 format with optional timezone (default is GMT) example: 2024-08-01T00:00:00Z toDatetime: type: string description: duration end datetime in ISO8601 format with optional timezone (default is GMT) example: 2024-08-31T23:59:59Z AccessPolicyPermission: required: - action - assignee type: object properties: assignee: minLength: 1 type: string description: permission assignee action: type: string description: type of permission action enum: - SEARCH - CONSUME - RESTRICTED_CONSUME fromDatetime: type: string description: permission start datetime in ISO8601 format with optional timezone (default is GMT) example: 2024-08-01T00:00:00Z toDatetime: type: string description: permission end datetime in ISO8601 format with optional timezone (default is GMT) example: 2024-08-31T23:59:59Z description: access permissions paths: /schemas/{schemaId}/content: get: tags: - Schema summary: Returns schema content based on schemaId description: Returns schema content for the specified schema identifier. operationId: getSchemaContent parameters: - name: schemaId in: path description: Identifier of the TTL schema required: true schema: type: string description: Identifier of the TTL schema example: data-offeringShape.ttl example: data-offeringShape.ttl responses: "400": description: Bad Request content: application/problem+json: schema: $ref: '#/components/schemas/BadRequestProblem' examples: Bad Request Error Example: description: Bad Request Error Example value: type: urn:problem-type:simpl:validationError title: Invalid payload status: 400 detail: missing required arguments '*/*': schema: $ref: '#/components/schemas/BadRequestProblem' "500": description: Internal Server Error content: application/problem+json: schema: $ref: '#/components/schemas/InternalServerErrorProblem' examples: Internal Server Error Example: description: Internal Server Error Example value: type: urn:problem-type:simpl:internalServerError title: Internal Server Error status: 500 detail: Unexpected internal error "200": description: TTL schema file content content: text/turtle: schema: type: string examples: ttlExample: summary: Example TTL content description: ttlExample value: '@prefix ex: .' deprecated: true /policies/usage: post: tags: - Policy summary: Generate a usage policy in ODRL format description: This endpoint receives a request with usage permissions and returns an ODRL policy, which specifies how a resource can be used, by whom, and with what constraints operationId: getUsagePolicyJsonLD requestBody: content: application/json: schema: $ref: '#/components/schemas/UsagePolicyRequest' required: true responses: "400": description: Bad Request content: application/problem+json: schema: $ref: '#/components/schemas/BadRequestProblem' examples: Bad Request Error Example: description: Bad Request Error Example value: type: urn:problem-type:simpl:validationError title: Invalid payload status: 400 detail: missing required arguments '*/*': schema: $ref: '#/components/schemas/BadRequestProblem' "500": description: Internal Server Error content: application/problem+json: schema: $ref: '#/components/schemas/InternalServerErrorProblem' examples: Internal Server Error Example: description: Internal Server Error Example value: type: urn:problem-type:simpl:internalServerError title: Internal Server Error status: 500 detail: Unexpected internal error "200": description: The usage policy json-ld content: application/json: schema: $ref: '#/components/schemas/OdrlPolicy' examples: validTypes: summary: Valid sharing methods description: validTypes value: '@context': http://www.w3.org/ns/odrl.jsonld '@type': Set profile: http://www.w3.org/ns/odrl/2/odrl.jsonld target: "" assigner: uid: provider role: http://www.w3.org/ns/odrl/2/assigner uid: f5cb3167-cd29-4d1d-a0f2-4889caf7c875 permission: - target: "" assignee: uid: consumer role: http://www.w3.org/ns/odrl/2/assignee action: - http://www.w3.org/ns/odrl/2/use constraint: - leftOperand: http://www.w3.org/ns/odrl/2/count operator: http://www.w3.org/ns/odrl/2/lteq rightOperand: "10" - leftOperand: http://www.w3.org/ns/odrl/2/dateTime operator: http://www.w3.org/ns/odrl/2/gteq rightOperand: 2024-08-01T00:00:00Z - leftOperand: http://www.w3.org/ns/odrl/2/dateTime operator: http://www.w3.org/ns/odrl/2/lteq rightOperand: 2024-08-31T23:59:59Z /selfDescriptions/publications: post: tags: - Self Description summary: Publish an enriched, validated and signed self-description description: Publishes a finalized (enriched, validated and signed) SD json-LD into the federated catalogue operationId: publish requestBody: description: Request body containing SD JSON-LD object content: application/json: schema: type: object example: '@context': http://www.w3.org/ns/odrl.jsonld '@type': Set assigner: role: http://www.w3.org/ns/odrl/2/assigner uid: provider permission: - action: - http://simpl.eu/odrl/actions/search assignee: role: http://www.w3.org/ns/odrl/2/assignee uid: CONSUMER constraint: - leftOperand: http://www.w3.org/ns/odrl/2/dateTime operator: http://www.w3.org/ns/odrl/2/gteq rightOperand: 2024-08-01T00:00:00Z - leftOperand: http://www.w3.org/ns/odrl/2/dateTime operator: http://www.w3.org/ns/odrl/2/lteq rightOperand: 2024-08-31T23:59:59Z target: "" profile: http://www.w3.org/ns/odrl/2/odrl.jsonld target: "" uid: 68777919-f260-4305-9c41-d4266ac0a639 required: true responses: "400": description: Bad Request content: application/problem+json: examples: Bad Request Error Example: description: Bad Request Error Example value: type: urn:problem-type:simpl:validationError title: Parameter validation error status: 400 detail: One or more parameters are invalid instance: /selfDescriptions/publications issues: - type: urn:problem-type:simpl:invalidParameter title: Invalid parameter detail: The json-file is not valid in: body name: json-file value: invalidValue "500": description: Internal Server Error content: application/problem+json: examples: Internal Server Error Example: description: Internal Server Error Example value: type: urn:problem-type:simpl:internalServerError title: Internal Server Error status: 500 detail: Unexpected internal error instance: /selfDescriptions/publications "200": description: Successfully published content: application/json: schema: type: object examples: Registration json: description: Registration json value: id: did:web:registry.gaia-x.eu:DataOffering:3mwO1pOqDQ_fID9jc9Az1TS5JKIS_eng_0006 issuer: did:web:did.dev.simpl-europa.eu sdHash: 937295562072eb29046b8eb739eaa796144c9e9fa909b635dc5d0ce7b5ad5e27 status: active statusDatetime: 2025-03-13T09:41:11.103238436Z uploadDatetime: 2025-03-13T09:41:11.103238376Z "406": description: Not Acceptable content: application/problem+json: examples: Not Acceptable Error Example: description: Not Acceptable Error Example value: type: urn:problem-type:simpl:notAcceptable title: Not Acceptable status: 406 detail: The requested media type could not be provided instance: /selfDescriptions/publish "415": description: Unsupported Media Type content: application/problem+json: examples: Unsupported Media Type Error Example: description: Unsupported Media Type Error Example value: type: urn:problem-type:simpl:unsupportedMediaType title: Unsupported Media Type status: 415 detail: The media type in the request payload is unsupported instance: /selfDescriptions/publish /selfDescriptions/enriched: post: tags: - Self Description summary: Enriches and validates a self-description using the provided metadata and additional properties description: | **DEPRECATED: This endpoint is deprecated since v1.22.0 and will be removed in a future version.** **Please use the V2 version of this endpoint** --- Adds hashing, registers asset and policies into the provider EDC, creates a contract definition on EDC connector and validates the resulting SD json enriched with all info. Allows passing additional properties via a JSON string. operationId: enrichAndValidate parameters: - name: schemaId in: query description: schemaId required: true schema: type: string example: data-offeringShape.ttl - name: templateId in: query description: resource address template id required: true schema: type: string example: 1 requestBody: description: Request body containing SD JSON-LD content: application/json: schema: type: object example: '@context': http://www.w3.org/ns/odrl.jsonld '@type': Set assigner: role: http://www.w3.org/ns/odrl/2/assigner uid: provider permission: - action: - http://simpl.eu/odrl/actions/search assignee: role: http://www.w3.org/ns/odrl/2/assignee uid: CONSUMER constraint: - leftOperand: http://www.w3.org/ns/odrl/2/dateTime operator: http://www.w3.org/ns/odrl/2/gteq rightOperand: 2024-08-01T00:00:00Z - leftOperand: http://www.w3.org/ns/odrl/2/dateTime operator: http://www.w3.org/ns/odrl/2/lteq rightOperand: 2024-08-31T23:59:59Z target: "" profile: http://www.w3.org/ns/odrl/2/odrl.jsonld target: "" uid: 68777919-f260-4305-9c41-d4266ac0a639 required: true responses: "400": description: Bad Request content: application/problem+json: examples: Bad Request Error Example: description: Bad Request Error Example value: type: urn:problem-type:simpl:validationError title: Parameter validation error status: 400 detail: One or more parameters are invalid issues: - type: urn:problem-type:simpl:invalidParameter title: Invalid parameter detail: The schemaId parameter must meet specific criteria in: query name: schemaId value: invalidValue "500": description: Internal Server Error content: application/problem+json: examples: Internal Server Error Example: description: Internal Server Error Example value: type: urn:problem-type:simpl:internalServerError title: Internal Server Error status: 500 detail: Unexpected internal error instance: /selfDescriptions/enriched "200": description: Successfully enriched and validated SD JSON-LD content: application/json: schema: type: object examples: SD json file enriched and validated: description: SD json file enriched and validated value: '@context': http://www.w3.org/ns/odrl.jsonld '@type': Set assigner: role: http://www.w3.org/ns/odrl/2/assigner uid: provider permission: - action: - http://simpl.eu/odrl/actions/search assignee: role: http://www.w3.org/ns/odrl/2/assignee uid: CONSUMER constraint: - leftOperand: http://www.w3.org/ns/odrl/2/dateTime operator: http://www.w3.org/ns/odrl/2/gteq rightOperand: 2024-08-01T00:00:00Z - leftOperand: http://www.w3.org/ns/odrl/2/dateTime operator: http://www.w3.org/ns/odrl/2/lteq rightOperand: 2024-08-31T23:59:59Z target: "" profile: http://www.w3.org/ns/odrl/2/odrl.jsonld target: "" uid: 68777919-f260-4305-9c41-d4266ac0a639 "401": description: Unauthorized content: application/problem+json: examples: Unauthorized Error Example: description: Unauthorized Error Example value: type: urn:problem-type:simpl:unauthorized title: Unauthorized status: 401 detail: Missing or invalid Authorization header instance: /selfDescriptions/enriched "406": description: Not Acceptable content: application/problem+json: examples: Not Acceptable Error Example: description: Not Acceptable Error Example value: type: urn:problem-type:simpl:notAcceptable title: Not Acceptable status: 406 detail: The requested media type could not be provided instance: /selfDescriptions/enriched "415": description: Unsupported Media Type content: application/problem+json: examples: Unsupported Media Type Error Example: description: Unsupported Media Type Error Example value: type: urn:problem-type:simpl:unsupportedMediaType title: Unsupported Media Type status: 415 detail: The media type in the request payload is unsupported instance: /selfDescriptions/enriched deprecated: true /resourceAddresses/templates/{templateId}/schema: get: tags: - Resource Address summary: Returns a source address template schema based on templateId description: Returns a template (JSON schema) describing the fields and constraints to create the sourceAddress. operationId: getSourceAddressSchema parameters: - name: templateId in: path description: The template id required: true schema: type: string example: TPL-1 responses: "400": description: Bad Request content: application/problem+json: schema: $ref: '#/components/schemas/BadRequestProblem' examples: Bad Request Error Example: description: Bad Request Error Example value: type: urn:problem-type:simpl:validationError title: Parameter validation error status: 400 detail: One or more parameters are invalid instance: /resourceAddresses/templates/{templateId}/schema issues: - type: urn:problem-type:simpl:invalidParameter title: Invalid parameter detail: The templateId parameter must meet specific criteria in: path name: templateId value: invalidValue "500": description: Internal Server Error content: application/problem+json: schema: $ref: '#/components/schemas/InternalServerErrorProblem' examples: InternalServerError: summary: Unexpected internal error description: InternalServerError value: type: internal-error title: Unexpected internal error status: 500 detail: 'GENERAL_ERROR: Please try again later' instance: /resourceAddresses/templates/{templateId}/schema "200": description: Template (JSON schema) for the sourceAddress content: application/json: schema: type: object examples: IonosS3: summary: IonosS3 template example description: IonosS3 value: type: object properties: bucketName: type: string region: type: string required: - bucketName "404": description: Not Found content: application/problem+json: schema: $ref: '#/components/schemas/NotFoundProblem' examples: NotFound: summary: Resource not found description: NotFound value: type: resource-not-found title: RESOURCE_ADDRESS_NOT_FOUND status: 404 detail: UI schema not found instance: /resourceAddresses/templates/{templateId}/schema /resourceAddresses/assets/{assetId}: get: tags: - Resource Address summary: Retrieves the resource address associated to the given assetId description: Retrieves the resource address associated to the given assetId operationId: getResourceAddress parameters: - name: assetId in: path description: Identifier of asset within connector required: true schema: type: string example: 123 responses: "400": description: Bad Request content: application/problem+json: schema: $ref: '#/components/schemas/BadRequestProblem' examples: Bad Request Error Example: description: Bad Request Error Example value: type: urn:problem-type:simpl:validationError title: Invalid payload status: 400 detail: missing required arguments '*/*': schema: $ref: '#/components/schemas/BadRequestProblem' "500": description: Internal Server Error content: application/problem+json: schema: $ref: '#/components/schemas/InternalServerErrorProblem' examples: Internal Server Error Example: description: Internal Server Error Example value: type: urn:problem-type:simpl:internalServerError title: Internal Server Error status: 500 detail: Unexpected internal error instance: /resourceAddresses/assets/{assetId} "200": description: Successfully retrieved the resource address associated to the given assetId content: application/json: schema: $ref: '#/components/schemas/ResourceAddress' examples: Resource Address: description: Resource description address to the given assetId value: templateId: "5" value: '{"type":"MinioS3","endpoint":"https://minio01.integrated.simpl-europe.eu","bucketName":"provider-bucket","objectName":"example-s3.txt"}' "401": description: Unauthorized content: application/problem+json: schema: $ref: '#/components/schemas/UnauthorizedProblem' examples: Unauthorized: summary: Missing or invalid authorization description: Unauthorized value: type: unauthorized title: Unauthorized status: 401 detail: Missing or invalid Authorization header instance: /resourceAddresses/assets/{assetId} "404": description: Not Found content: application/problem+json: schema: $ref: '#/components/schemas/NotFoundProblem' examples: Not found Error Example: summary: AssetId Not Found description: Not found Error Example value: type: urn:problem-type:simpl:resourceAddressNotFound title: Resource Address Not Found status: 404 detail: No resource address found for assetId instance: /resourceAddresses/assets/{assetId} /policies/access: post: tags: - Policy summary: Generate an access policy in ODRL format description: This endpoint receives a request containing a list of access permissions and returns an ODRL policy. The policy defines who can access a resource, with what type of action (e.g., SEARCH, CONSUME) and within what time frame operationId: getAccessPolicyJsonLD requestBody: content: application/json: schema: $ref: '#/components/schemas/AccessPolicyRequest' required: true responses: "400": description: Bad Request content: application/problem+json: schema: $ref: '#/components/schemas/BadRequestProblem' examples: Bad Request Error Example: description: Bad Request Error Example value: type: urn:problem-type:simpl:validationError title: Invalid payload status: 400 detail: missing required arguments '*/*': schema: $ref: '#/components/schemas/BadRequestProblem' "500": description: Internal Server Error content: application/problem+json: schema: $ref: '#/components/schemas/InternalServerErrorProblem' examples: Internal Server Error Example: description: Internal Server Error Example value: type: urn:problem-type:simpl:internalServerError title: Internal Server Error status: 500 detail: Unexpected internal error "200": description: The access policy json-ld content: application/json: schema: $ref: '#/components/schemas/OdrlPolicy' examples: validTypes: summary: Valid sharing methods description: validTypes value: '@context': http://www.w3.org/ns/odrl.jsonld '@type': Set profile: http://www.w3.org/ns/odrl/2/odrl.jsonld target: "" assigner: uid: provider role: http://www.w3.org/ns/odrl/2/assigner uid: 68777919-f260-4305-9c41-d4266ac0a639 permission: - target: "" assignee: uid: CONSUMER role: http://www.w3.org/ns/odrl/2/assignee action: - http://simpl.eu/odrl/actions/search constraint: - leftOperand: http://www.w3.org/ns/odrl/2/dateTime operator: http://www.w3.org/ns/odrl/2/gteq rightOperand: 2024-08-01T00:00:00Z - leftOperand: http://www.w3.org/ns/odrl/2/dateTime operator: http://www.w3.org/ns/odrl/2/lteq rightOperand: 2024-08-31T23:59:59Z - target: "" assignee: uid: CONSUMER role: http://www.w3.org/ns/odrl/2/assignee action: - http://simpl.eu/odrl/actions/consume constraint: - leftOperand: http://www.w3.org/ns/odrl/2/dateTime operator: http://www.w3.org/ns/odrl/2/gteq rightOperand: 2024-08-01T00:00:00Z - target: "" assignee: uid: RESEARCHER role: http://www.w3.org/ns/odrl/2/assignee action: - http://simpl.eu/odrl/actions/restrictedConsume constraint: - leftOperand: http://www.w3.org/ns/odrl/2/dateTime operator: http://www.w3.org/ns/odrl/2/gteq rightOperand: 2024-09-01T00:00:00Z - leftOperand: http://www.w3.org/ns/odrl/2/dateTime operator: http://www.w3.org/ns/odrl/2/lteq rightOperand: 2024-10-30T23:59:59Z /resourceAddresses/sharingMethods: get: tags: - Resource Address summary: Returns the list of sharing methods by offer type. description: Returns the list of sharing methods mapped to the required offer type (DATA, APPLICATION, INFRASTRUCTURE). operationId: getResourceSharingMethods parameters: - name: offeringType in: query description: The offering type identifier required: true schema: type: string enum: - APPLICATION - DATA - INFRASTRUCTURE responses: "400": description: Bad Request content: application/problem+json: schema: $ref: '#/components/schemas/BadRequestProblem' examples: Bad Request Error Example: description: Bad Request Error Example value: type: urn:problem-type:simpl:validationError title: Parameter validation error status: 400 detail: One or more parameters are invalid instance: /resourceAddresses/sharingMethods issues: - type: urn:problem-type:simpl:invalidParameter title: Invalid parameter detail: The offeringType parameter must meet specific criteria in: query name: offeringType value: invalidValue "500": description: Internal Server Error content: application/problem+json: schema: $ref: '#/components/schemas/InternalServerErrorProblem' examples: InternalServerError: summary: Unexpected internal error description: InternalServerError value: type: internal-error title: Unexpected internal error status: 500 detail: 'GENERAL_ERROR: Please try again later' instance: /resourceAddresses/sharingMethods "200": description: A list of sharing methods content: application/json: schema: type: object examples: validTypes: summary: Valid sharing methods description: validTypes value: - IONOS_S3 - HTTPDATA_PUSH "401": description: Unauthorized content: application/problem+json: schema: $ref: '#/components/schemas/UnauthorizedProblem' examples: Unauthorized: summary: Missing or invalid authorization description: Unauthorized value: type: unauthorized title: Unauthorized status: 401 detail: Missing or invalid Authorization header instance: /resourceAddresses/sharingMethods "404": description: Not Found content: application/problem+json: schema: $ref: '#/components/schemas/NotFoundProblem' examples: NotFound: summary: Resource not found description: NotFound value: type: resource-not-found title: RESOURCE_ADDRESS_NOT_FOUND status: 404 detail: UI schema not found instance: /resourceAddresses/sharingMethods /resourceAddresses/sharingMethods/{sharingMethodId}/templates: get: tags: - Resource Address summary: Returns the list of source address templates by sharing method and offering type. description: Returns the list of templates mapped to the required sharing method and offering type (DATA, APPLICATION, INFRASTRUCTURE). operationId: getSourceAddressTemplates parameters: - name: offeringType in: query description: The offering type identifier required: true schema: type: string enum: - APPLICATION - DATA - INFRASTRUCTURE - name: sharingMethodId in: path description: The resource sharing method identifier required: true schema: type: string enum: - HTTPDATA_PUSH - IONOS_S3 responses: "400": description: Bad Request content: application/problem+json: schema: $ref: '#/components/schemas/BadRequestProblem' examples: Bad Request Error Example: description: Bad Request Error Example value: type: urn:problem-type:simpl:validationError title: Parameter validation error status: 400 detail: One or more parameters are invalid instance: /resourceAddresses/sharingMethods/{sharingMethodId}/templates issues: - type: urn:problem-type:simpl:invalidParameter title: Invalid parameter detail: The sharingMethodId parameter must meet specific criteria in: path name: sharingMethodId value: invalidValue "500": description: Internal Server Error content: application/problem+json: schema: $ref: '#/components/schemas/InternalServerErrorProblem' examples: InternalServerError: summary: Unexpected internal error description: InternalServerError value: type: internal-error title: Unexpected internal error status: 500 detail: 'GENERAL_ERROR: Please try again later' instance: /resourceAddresses/sharingMethods/{sharingMethodId}/templates "200": description: A list of templates content: application/json: schema: $ref: '#/components/schemas/Template' examples: templates: summary: List of templates description: templates value: - id: TPL-1 label: TPL 1 - id: TPL-2 label: TPL 2 - id: TPL-3 label: TPL 3 "401": description: Unauthorized content: application/problem+json: schema: $ref: '#/components/schemas/UnauthorizedProblem' examples: Unauthorized: summary: Missing or invalid authorization description: Unauthorized value: type: unauthorized title: Unauthorized status: 401 detail: Missing or invalid Authorization header instance: /resourceAddresses/sharingMethods/{sharingMethodId}/templates "404": description: Not Found content: application/problem+json: schema: $ref: '#/components/schemas/NotFoundProblem' examples: NotFound: summary: Resource not found description: NotFound value: type: resource-not-found title: RESOURCE_ADDRESS_NOT_FOUND status: 404 detail: Template not found instance: /resourceAddresses/sharingMethods/{sharingMethodId}/templates /resourceDescriptions/{resourceDescriptionId}: get: tags: - Resource Description summary: Return details of given resource description stored in federated catalogue operationId: getResourceDescription parameters: - name: resourceDescriptionId in: path description: Resource description identifier (credentialSubject.@id) required: true schema: type: string example: did:web:registry.gaia-x.eu:DataOffering:123 responses: "400": description: Bad Request content: application/problem+json: schema: $ref: '#/components/schemas/BadRequestProblem' examples: Bad Request Error Example: description: Bad Request Error Example value: type: urn:problem-type:simpl:validationError title: Invalid payload status: 400 detail: missing required arguments '*/*': schema: $ref: '#/components/schemas/BadRequestProblem' "500": description: Internal Server Error content: application/problem+json: schema: $ref: '#/components/schemas/InternalServerErrorProblem' examples: Internal Server Error Example: description: Internal Server Error Example value: type: urn:problem-type:simpl:internalServerError title: Internal Server Error status: 500 detail: Unexpected internal error "200": description: OK content: application/json: schema: type: string examples: returnValidResponse: description: returnValidResponse value: claimsGraphUri: - did:web:registry.gaia-x.eu:InfrastructureOffering:a94ef06c-a12d-4308-89aa-fffcd8a61126 offeringType: infrastructure name: text title for infrastructure resource. inLanguage: da description: text description serviceAccessPoint: http://serviceaccesspoint.com /resourceDescriptions/{resourceDescriptionId}/revoke: post: tags: - Resource Description summary: Revoke an already published self-description from the federated catalogue description: | Revokes a previously published resource description. After revocation, the self-description shall no longer be visible or discoverable in the federated catalogue. operationId: revokeResourceDescription parameters: - name: resourceDescriptionId in: path description: Resource description identifier (credentialSubject.@id) required: true schema: type: string example: did:web:registry.gaia-x.eu:DataOffering:123 responses: "400": description: Bad Request content: application/problem+json: schema: $ref: '#/components/schemas/BadRequestProblem' examples: BadRequestExample: description: BadRequestExample value: type: urn:problem-type:simpl:badRequest title: BadRequest status: 400 instance: /resourceDescriptions/{resourceDescriptionId}/revoke detail: Invalid resourceDescriptionId format "500": description: Internal Server Error content: application/problem+json: schema: $ref: '#/components/schemas/InternalServerErrorProblem' examples: InternalServerErrorExample: description: InternalServerErrorExample value: type: urn:problem-type:simpl:internalServerError title: Internal Server Error status: 500 instance: /resourceDescriptions/{resourceDescriptionId}/revoke detail: Unexpected internal error "200": description: Successfully revoked self-description content: application/json: schema: type: object examples: RevokeSuccess: description: RevokeSuccess value: id: did:web:registry.gaia-x.eu:DataOffering:3mwO1... status: revoked statusDatetime: 2025-03-20T10:31:00Z "404": description: Not Found content: application/problem+json: schema: $ref: '#/components/schemas/NotFoundProblem' examples: NotFoundExample: description: NotFoundExample value: type: resource-not-found title: RESOURCE_DESCRIPTION_NOT_FOUND status: 404 instance: /resourceDescriptions/{resourceDescriptionId}/revoke detail: Resource description not found or already revoked /resourceDescriptions: get: tags: - Resource Description summary: Return all resource descriptions with the participant id as defined in the Client access token. operationId: getAllResourceDescriptions parameters: - name: orderBy in: query description: Field to order the results by required: false schema: type: string description: Field to order the results by example: publicationDate default: publicationDate responses: "400": description: Bad Request content: application/problem+json: schema: $ref: '#/components/schemas/BadRequestProblem' examples: Bad Request Error Example: description: Bad Request Error Example value: type: urn:problem-type:simpl:validationError title: Invalid payload status: 400 detail: missing required arguments '*/*': schema: $ref: '#/components/schemas/BadRequestProblem' "500": description: Internal Server Error content: application/problem+json: schema: $ref: '#/components/schemas/InternalServerErrorProblem' examples: Internal Server Error Example: description: Internal Server Error Example value: type: urn:problem-type:simpl:internalServerError title: Internal Server Error status: 500 detail: Unexpected internal error "200": description: OK content: application/json: schema: type: object examples: returnValidResponse: description: returnValidResponse value: totalCount: 1 items: - "n": claimsGraphUri: - did:web:registry.gaia-x.eu:InfrastructureOffering:a94ef06c-a12d-4308-89aa-fffcd8a61126 offeringType: infrastructure name: text title for infrastructure resource. inLanguage: da description: text description serviceAccessPoint: http://serviceaccesspoint.com /resourceAddresses/templates/{templateId}/uiSchema: get: tags: - Resource Address summary: Returns a source address UI schema based in templateId. description: Returns a UI schema that defines the constraints for the form representation of the sourceAddress. operationId: getSourceAddressUiSchema parameters: - name: templateId in: path description: The template id required: true schema: type: string example: TPL-1 responses: "400": description: Bad Request content: application/problem+json: schema: $ref: '#/components/schemas/BadRequestProblem' examples: Bad Request Error Example: description: Bad Request Error Example value: type: urn:problem-type:simpl:validationError title: Parameter validation error status: 400 detail: One or more parameters are invalid instance: /resourceAddresses/templates/{templateId}/uiSchema issues: - type: urn:problem-type:simpl:invalidParameter title: Invalid parameter detail: The templateId parameter must meet specific criteria in: path name: templateId value: invalidValue "500": description: Internal Server Error content: application/problem+json: schema: $ref: '#/components/schemas/InternalServerErrorProblem' examples: InternalServerError: summary: Unexpected internal error description: InternalServerError value: type: internal-error title: Unexpected internal error status: 500 detail: 'GENERAL_ERROR: Please try again later' instance: /resourceAddresses/templates/{templateId}/uiSchema "200": description: UI schema for the sourceAddress content: application/json: schema: type: object examples: amazonS3UI: summary: UI schema example description: amazonS3UI value: ui:order: - bucketName - region "404": description: Not Found content: application/problem+json: schema: $ref: '#/components/schemas/NotFoundProblem' examples: NotFound: summary: Resource not found description: NotFound value: type: resource-not-found title: RESOURCE_ADDRESS_NOT_FOUND status: 404 detail: UI schema not found instance: /resourceAddresses/templates/{templateId}/uiSchema /policies/identityAttributes: get: tags: - Policy summary: Retrieve identity attributes for consumers description: Returns the identity attributes assigned to the CONSUMER type by the Governance Authority, useful for defining who can access a resource operationId: getIdentityAttributes responses: "400": description: Bad Request content: application/problem+json: schema: $ref: '#/components/schemas/BadRequestProblem' examples: Bad Request Error Example: description: Bad Request Error Example value: type: urn:problem-type:simpl:validationError title: Invalid payload status: 400 detail: missing required arguments '*/*': schema: $ref: '#/components/schemas/BadRequestProblem' "500": description: Internal Server Error content: application/problem+json: schema: $ref: '#/components/schemas/InternalServerErrorProblem' examples: Internal Server Error Example: description: Internal Server Error Example value: type: urn:problem-type:simpl:internalServerError title: Internal Server Error status: 500 detail: Unexpected internal error "200": description: A list of identity attributes content: application/json: schema: $ref: '#/components/schemas/IdentityAttribute' examples: validTypes: summary: Valid sharing methods description: validTypes value: - code: CONSUMER identifier: Consumer /policies/actions: get: tags: - Policy summary: List of available actions for access policies description: Returns all supported actions that can be used in the definition of an access policy, such as SEARCH, CONSUME, and RESTRICTED_CONSUME operationId: getAccessPolicyActions responses: "400": description: Bad Request content: application/problem+json: schema: $ref: '#/components/schemas/BadRequestProblem' examples: Bad Request Error Example: description: Bad Request Error Example value: type: urn:problem-type:simpl:validationError title: Invalid payload status: 400 detail: missing required arguments '*/*': schema: $ref: '#/components/schemas/BadRequestProblem' "500": description: Internal Server Error content: application/problem+json: schema: $ref: '#/components/schemas/InternalServerErrorProblem' examples: Internal Server Error Example: description: Internal Server Error Example value: type: urn:problem-type:simpl:internalServerError title: Internal Server Error status: 500 detail: Unexpected internal error "200": description: A list of access policy actions content: application/json: schema: $ref: '#/components/schemas/PolicyAction' examples: validTypes: summary: Valid sharing methods description: validTypes value: - label: search value: SEARCH - label: consume value: CONSUME - label: restrictedConsume value: RESTRICTED_CONSUME /schemas: get: tags: - Schema summary: List all available schema ids description: Returns all schema identifiers in order to allow them to be selected and initiate the self-description creation process. operationId: getSchemas responses: "400": description: Bad Request content: application/problem+json: schema: $ref: '#/components/schemas/BadRequestProblem' examples: Bad Request Error Example: description: Bad Request Error Example value: type: urn:problem-type:simpl:validationError title: Invalid payload status: 400 detail: missing required arguments '*/*': schema: $ref: '#/components/schemas/BadRequestProblem' "500": description: Internal Server Error content: application/problem+json: schema: $ref: '#/components/schemas/InternalServerErrorProblem' examples: Internal Server Error Example: description: Internal Server Error Example value: type: urn:problem-type:simpl:internalServerError title: Internal Server Error status: 500 detail: Unexpected internal error "200": description: A map of available TTL schema files content: application/json: schema: type: object examples: Available TTL files: description: Available TTL files value: simpl: contract: - contract-templateShape.ttl service: - application-offeringShape.ttl - data-offeringShape.ttl - infrastructure-offeringShape.ttl deprecated: true