ovpay/src/openapi/pad/padp-poc-openapi.yaml

761 lines
20 KiB
YAML

openapi: 3.0.1
info:
title: PadpReferenceApi
version: '1.0'
paths:
/poc/encrypt-decrypt-poc:
get:
tags:
- Encrypt/decrypt POC
summary: Encrypt/Decrypt POC
operationId: EncryptDecryptPoc
parameters:
- name: textToEncrypt
in: header
required: true
schema:
type: string
- name: encryptedEphemeralKey
in: query
required: true
schema:
type: string
responses:
'200':
description: OK
content:
text/plain:
schema:
type: string
/poc/encrypt-poc:
get:
tags:
- Encrypt/decrypt POC
summary: Encrypt POC
operationId: EncryptPoc
parameters:
- name: textToEncrypt
in: header
required: true
schema:
type: string
- name: encryptedEphemeralKey
in: query
required: true
schema:
type: string
responses:
'200':
description: OK
content:
text/plain:
schema:
type: string
/poc/decrypt-poc:
get:
tags:
- Encrypt/decrypt POC
summary: Decrypt POC
operationId: DecryptPoc
parameters:
- name: textToDecrypt
in: header
required: true
schema:
type: string
- name: encryptedEphemeralKey
in: query
required: true
schema:
type: string
responses:
'200':
description: OK
content:
text/plain:
schema:
type: string
/idp/b2b-access-token:
get:
tags:
- PADP Reference API
summary: API 1020 - Get B2B Access Token
description: Returns a client access token, needed for most other PADP APIs.
operationId: GetB2bAccessToken
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/B2bAccessToken'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
/get-image-from-base64:
get:
tags:
- PADP Reference API
summary: Get rendered image from Base64 encoded String
operationId: GetImageFromBase64
parameters:
- name: base64String
in: header
required: true
schema:
type: string
responses:
'200':
description: OK
content:
image/jpeg:
schema:
$ref: '#/components/schemas/FileContentHttpResult'
/personal-data/{xtat}:
post:
tags:
- PADP Reference API
summary: API 1201 - Create Personal Data - First create an ephemeral key using API 1210!
description: First create an ephemeral key using API 1210!
operationId: CreatePersonalData
parameters:
- name: xtat
in: path
required: true
schema:
type: string
- name: email
in: query
description: Email address to be used for OTP challenges
required: true
schema:
type: string
- name: name
in: query
description: Should be at least two words (first name and last name)
schema:
type: string
- name: birthDate
in: query
description: Should be a date between 1900-01-01 and now, in the format YYYY-MM-DD
schema:
type: string
requestBody:
content:
multipart/form-data:
schema:
type: object
properties:
photo:
type: string
description: Should be a JPG image, of max. 512KB and resolution between 520x520 and 720x720
format: binary
encoding:
photo:
style: form
responses:
'201':
description: Created
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
get:
tags:
- PADP Reference API
summary: API 1202 - Get Personal Data- First perform an OTP challenge using API 1206 and 1207!
description: First perform an OTP challenge using API 1206 and 1207!
operationId: GetPersonalData
parameters:
- name: xtat
in: path
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/PersonalData'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
delete:
tags:
- PADP Reference API
summary: API 1204 - Delete Personal Data - First perform an OTP challenge using API 1206 and 1207!
description: First perform an OTP challenge using API 1206 and 1207!
operationId: DeletePersonalData
parameters:
- name: xtat
in: path
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/DeletePersonalDataResponse'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
put:
tags:
- PADP Reference API
summary: API 1205 - Update Personal Data - First perform an OTP challenge using API 1206 and 1207!
description: First perform an OTP challenge using API 1206 and 1207!Performs a complete replacement; empty request parameters will result in the corresponding PADP attribute being deleted.
operationId: UpdatePersonalData
parameters:
- name: xtat
in: path
required: true
schema:
type: string
- name: skipUpdateCounter
in: query
required: true
schema:
type: boolean
- name: name
in: query
description: Should be at least two words (first name and last name)
schema:
type: string
- name: birthDate
in: query
description: Should be a date between 1900-01-01 and now, in the format YYYY-MM-DD
schema:
type: string
requestBody:
content:
multipart/form-data:
schema:
type: object
properties:
photo:
type: string
description: Should be a JPG image, of max. 512KB and resolution between 520x520 and 720x720
format: binary
encoding:
photo:
style: form
responses:
'200':
description: OK
/personal-data/{xtat}/decrypted:
get:
tags:
- PADP Reference API
summary: API 1202 - Get Personal Data AND decrypt response - First perform an OTP challenge using API 1206 and 1207!
description: First perform an OTP challenge using API 1206 and 1207!
operationId: GetDecryptedPersonalData
parameters:
- name: xtat
in: path
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/DecryptedPersonalData'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
/personal-data/{xtat}/generate-otp:
get:
tags:
- PADP Reference API
summary: API 1206 - Generate OTP
operationId: GenerateOtp
parameters:
- name: xtat
in: path
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/OtpResponse'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
/personal-data/{xtat}/validate-otp:
get:
tags:
- PADP Reference API
summary: API 1207 - Validate OTP
operationId: ValidateOtp
parameters:
- name: xtat
in: path
required: true
schema:
type: string
- name: otp
in: query
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/UserAccessToken'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
/personal-data/{xtat}/encrypted-update-init:
get:
tags:
- PADP Reference API
summary: API 1210 - Create Ephemeral Key
operationId: CreateEphemeralKey
parameters:
- name: xtat
in: path
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/EphemeralKey'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
/personal-data/{xtat}/administrative-data:
get:
tags:
- PADP Reference API
summary: API 1211 - Get Administrative Data
operationId: GetAdministrativeData
parameters:
- name: xtat
in: path
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/AdministrativeData'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
components:
schemas:
AdministrativeData:
type: object
properties:
name:
$ref: '#/components/schemas/AdministrativeDataElement'
photo:
$ref: '#/components/schemas/AdministrativeDataElement'
birthdate:
$ref: '#/components/schemas/AdministrativeDataElement'
additionalProperties: false
AdministrativeDataElement:
type: object
properties:
inaccuracyFlag:
type: boolean
inaccuracyFlagReason:
type: string
nullable: true
inaccuracyFlagCounter:
type: integer
format: int32
changeCounter:
type: integer
format: int32
maxUpdatesVerificationCount:
type: integer
format: int32
lastChangeDate:
type: string
format: date-time
isValidated:
type: boolean
additionalProperties: false
B2bAccessToken:
type: object
properties:
access_token:
type: string
nullable: true
expires_in:
type: integer
format: int32
refresh_expires_in:
type: integer
format: int32
refresh_token:
type: string
nullable: true
token_type:
type: string
nullable: true
not-before-policy:
type: integer
format: int32
scope:
type: string
nullable: true
BE_ID:
type: string
nullable: true
additionalProperties: false
ByteReadOnlyMemory:
type: object
properties:
length:
type: integer
format: int32
readOnly: true
isEmpty:
type: boolean
readOnly: true
span:
$ref: '#/components/schemas/ByteReadOnlySpan'
additionalProperties: false
ByteReadOnlySpan:
type: object
properties:
length:
type: integer
format: int32
readOnly: true
isEmpty:
type: boolean
readOnly: true
additionalProperties: false
Data:
type: object
properties:
name:
type: string
nullable: true
birthdate:
type: string
nullable: true
photo:
type: string
nullable: true
additionalProperties: false
DecryptedData:
type: object
properties:
decryptedName:
type: string
nullable: true
decryptedBirthdate:
type: string
nullable: true
decryptedPhoto:
type: string
description: Base64 encoded photo
format: byte
nullable: true
additionalProperties: false
DecryptedPersonalData:
type: object
properties:
decryptedData:
$ref: '#/components/schemas/DecryptedData'
encryptedData:
$ref: '#/components/schemas/PersonalData'
additionalProperties: false
DeletePersonalDataResponse:
type: object
properties:
deletedAttributes:
type: array
items:
type: string
nullable: true
additionalProperties: false
EntityTagHeaderValue:
type: object
properties:
tag:
$ref: '#/components/schemas/StringSegment'
isWeak:
type: boolean
readOnly: true
additionalProperties: false
EphemeralKey:
type: object
properties:
ephemeralKeyAlias:
type: string
nullable: true
encryptedEphemeralKey:
type: string
nullable: true
additionalProperties: false
Error:
type: object
properties:
code:
type: string
nullable: true
data:
type: array
items:
type: string
nullable: true
message:
type: string
nullable: true
additionalProperties: false
ErrorResponse:
type: object
properties:
errors:
type: array
items:
$ref: '#/components/schemas/Error'
nullable: true
exceptionClassName:
type: string
nullable: true
exceptionStackTrace:
type: string
nullable: true
additionalProperties: false
FileContentHttpResult:
type: object
properties:
contentType:
type: string
nullable: true
readOnly: true
fileDownloadName:
type: string
nullable: true
readOnly: true
lastModified:
type: string
format: date-time
nullable: true
readOnly: true
entityTag:
$ref: '#/components/schemas/EntityTagHeaderValue'
enableRangeProcessing:
type: boolean
readOnly: true
fileLength:
type: integer
format: int64
nullable: true
readOnly: true
fileContents:
$ref: '#/components/schemas/ByteReadOnlyMemory'
additionalProperties: false
Metadata:
type: object
properties:
encryptedEphemeralKey:
type: string
nullable: true
additionalProperties: false
OtpResponse:
type: object
properties:
maskedEmailAddress:
type: string
nullable: true
additionalProperties: false
PersonalData:
type: object
properties:
metadata:
$ref: '#/components/schemas/Metadata'
data:
$ref: '#/components/schemas/Data'
additionalProperties: false
StringSegment:
type: object
properties:
buffer:
type: string
nullable: true
offset:
type: integer
format: int32
readOnly: true
length:
type: integer
format: int32
readOnly: true
value:
type: string
nullable: true
readOnly: true
hasValue:
type: boolean
readOnly: true
additionalProperties: false
UserAccessToken:
type: object
properties:
accessToken:
type: string
nullable: true
additionalProperties: false