openapi: 3.0.3 info: title: Trusted Issuers List description: Maintain a list of trusted issuers of verifiable credentials version: 4.0.0 tags: - name: verfication - name: issuer paths: /issuer: post: tags: - issuer operationId: createTrustedIssuer summary: Create a trusted issuer and its credentials description: create trusted issuer requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/TrustedIssuer' responses: '201': description: Successfully created the issuer. '400': description: Invalid issuer provided content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '409': description: Issuer with the given did already exists. content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' /issuer/{did}: get: tags: - issuer parameters: - $ref: '#/components/parameters/Id' description: Get a single issuer operationId: getIssuer responses: '200': description: Successfully retrieved the issuer. content: application/json: schema: $ref: '#/components/schemas/TrustedIssuer' '404': description: No such issuer exists. content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' delete: tags: - issuer parameters: - $ref: '#/components/parameters/Id' operationId: deleteIssuerById description: Delete a single issuer responses: '204': description: Successfully deleted '404': description: No such issuer exists. put: tags: - issuer parameters: - $ref: '#/components/parameters/Id' description: Update a single issuer operationId: updateIssuer requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/TrustedIssuer' responses: '200': description: Successfully updated the issuer. content: application/json: schema: $ref: '#/components/schemas/TrustedIssuer' '404': description: No such issuer exists. content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '400': description: Invalid issuer provided content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' components: parameters: Id: name: did in: path required: true schema: type: string example: did:elsi:happypets schemas: TimeRange: type: object properties: from: type: string format: date-time example: '2017-07-21T17:32:28Z' to: type: string format: date-time example: '2023-07-21T17:32:28Z' Credentials: type: object properties: validFor: $ref: '#/components/schemas/TimeRange' credentialsType: type: string example: "CustomerCredential" claims: type: array items: $ref: '#/components/schemas/Claim' TrustedIssuer: type: object properties: did: type: string example: did:elsi:happypets credentials: type: array items: $ref: '#/components/schemas/Credentials' Claim: type: object properties: name: type: string example: roles path: type: string description: json path to the restricted claim example: "$.roles[*].names[*]" allowedValues: type: array items: type: object example: - true - 12 - "GOLD_CUSTOMER" - "STANDARD_CUSTOMER" ProblemDetails: type: object properties: type: description: An absolute URI that identifies the problem type. When dereferenced, it SHOULD provide human-readable documentation for the problem type. type: string format: uri ##default: about:blank title: description: A short summary of the problem type. type: string example: Internal Server Error status: description: The HTTP status code generated by the origin server for this occurrence of the problem. type: integer example: 500 detail: description: A human readable explanation specific to this occurrence of the problem. type: string example: Connection timeout instance: description: An absolute URI that identifies the specific occurrence of the problem. It may or may not yield further information if dereferenced. type: string format: uri