develop #38
760
src/openapi/pad/padp-poc-openapi.yaml
Normal file
760
src/openapi/pad/padp-poc-openapi.yaml
Normal file
@ -0,0 +1,760 @@
|
||||
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
|
||||
Loading…
Reference in New Issue
Block a user