1802 lines
64 KiB
YAML
1802 lines
64 KiB
YAML
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: <http://example.org/> .'
|
|
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
|