openapi: 3.2.0
info:
version: 2.2.2
title: BoB.participantMetadata. Interface Endpoint API
description: The Participant Metadata API provides an interface for participants to manage metadata coordinated by an Administering Body (AB).
servers:
- url: /api/v2
tags:
- name: interfaceEndpoint
description: 'A participant API implementation is made accessible to other participants through interface endpoints. A general description of each type of endpoint can be found in the BoB documentation: How does it work → BoB-API and API endpoints.'
paths:
/participantMetadata/{pid}/interfaceEndpoint:
get:
tags:
- interfaceEndpoint
summary: Get interface endpoints by participant identifier
operationId: getInterfaceEndpoints
parameters:
- name: pid
in: path
description: Participant identifier
required: true
schema:
type: integer
format: int64
security:
- Pop: []
responses:
'200':
description: successful operation
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/endpoint'
'401':
description: unauthorised
'404':
description: pid not found
post:
tags:
- interfaceEndpoint
summary: Add interface endpoint to participants object
operationId: addInterfaceEndpoint
parameters:
- name: pid
in: path
description: Participant identifier
required: true
schema:
type: integer
format: int64
security:
- Pop: []
responses:
'201':
description: successful operation
headers:
Location:
description: URL of created endpoint
schema:
type: string
content:
application/json:
schema:
$ref: '#/components/schemas/endpoint'
'401':
description: unauthorised
'404':
description: pid not found
'422':
description: unprocessable entity
content:
application/json:
schema:
description: Description of why the request entity could not be processed
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/endpointCall'
description: interfaceEndpoint object
required: true
/participantMetadata/{pid}/interfaceEndpoint/{endpointId}:
get:
tags:
- interfaceEndpoint
summary: Get interface endpoint by endpoint identifier
operationId: getInterfaceEndpoint
parameters:
- name: pid
in: path
description: Participant identifier
required: true
schema:
type: integer
format: int64
- name: endpointId
in: path
description: Endpoint identifier
required: true
schema:
type: integer
format: int64
security:
- Pop: []
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/endpoint'
'401':
description: unauthorised
'404':
description: pid/endpointId not found
put:
tags:
- interfaceEndpoint
summary: Update interface endpoint by endpoint identifier
operationId: updateInterfaceEndpoint
parameters:
- name: pid
in: path
description: Participant identifier
required: true
schema:
type: integer
format: int64
- name: endpointId
in: path
description: Endpoint identifier
required: true
schema:
type: integer
format: int64
security:
- Pop: []
responses:
'204':
description: successful operation
'401':
description: unauthorised
'404':
description: pid/endpointId not found
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/endpoint'
description: interfaceEndpoint object
required: true
delete:
tags:
- interfaceEndpoint
summary: Delete interface endpoint by endpoint identifier
operationId: deleteInterfaceEndpoint
parameters:
- name: pid
in: path
description: Participant identifier
required: true
schema:
type: integer
format: int64
- name: endpointId
in: path
description: Endpoint identifier
required: true
schema:
type: integer
format: int64
security:
- Pop: []
responses:
'204':
description: successful operation
'401':
description: unauthorised
'404':
description: pid/endpointId not found
components:
schemas:
endpoint:
allOf:
- required:
- endpointId
- properties:
endpointId:
type: integer
format: int64
example: 1
- $ref: '#/components/schemas/endpointCall'
endpointCall:
type: object
required:
- version
- type
- uri
properties:
version:
type: integer
format: int32
description: A positive integer
example: 1
type:
type: string
enum:
- account
- authentication
- booking
- device
- inspection
- product
- resource
- ticket
- token
- traveller
- validation
example: ticket
uri:
type: string
example: https://bob.linkon.se/sj/api/v1
tlsa:
description: TLSA (RFC 6698) parameters for endpoint. More information about TLSA can be found in the BoB Manual: Implementer considerations → Network Infrastructure and Gateways.
type: object
properties:
usage:
type: integer
format: int32
minimum: 0
maximum: 255
selector:
type: integer
format: int32
minimum: 0
maximum: 255
type:
type: integer
format: int32
minimum: 0
maximum: 255
data:
type: string
pattern: ^(([0-9A-Fa-f]){2})+$
securitySchemes:
Pop:
description: OAuth 2.0 Proof-of-possession (pop) Token
type: apiKey
name: Authorization
in: header