@lap v0.3
# Machine-readable API spec. Each @endpoint block is one API call.
@api ID4i API
@base https://backend.id4i.de/
@version 1.0.2
@auth ApiKey Authorization in header
@endpoints 107
@hint download_for_search
@toc account(5), api(99), go(1), login(1), whois(1)

@group account
@endpoint POST /account/password
@required {resetRequest: map}
@returns(200)
@returns(201)
@returns(202)
@errors {400, 401, 403, 404, 405, 406, 409, 415, 500}

@endpoint PUT /account/password
@required {verificationRequest: map}
@returns(200)
@returns(202)
@errors {400, 401, 403, 404, 405, 406, 409, 415, 500}

@endpoint POST /account/registration
@required {userRegistration: map}
@returns(200)
@returns(201)
@returns(202)
@errors {400, 401, 403, 404, 405, 406, 409, 415, 500}

@endpoint PUT /account/registration
@required {completeRegistration: map}
@returns(200)
@returns(202)
@errors {400, 401, 403, 404, 405, 406, 409, 415, 500}

@endpoint POST /account/verification
@required {token: map}
@returns(200)
@returns(201)
@returns(202)
@errors {400, 401, 403, 404, 405, 406, 409, 415, 500}

@endgroup

@group api
@endpoint GET /api/v1/apikeys
@optional {organizationId: any, offset: any, limit: any}
@returns(200)
@returns(202)
@errors {401, 403, 404, 405, 406, 415, 500}

@endpoint POST /api/v1/apikeys
@required {creationRequest: map}
@returns(200)
@returns(201)
@returns(202)
@errors {400, 401, 403, 404, 405, 406, 409, 415, 500}

@endpoint GET /api/v1/apikeys/privileges
@optional {id4nConcerning: any, offset: any, limit: any}
@returns(200)
@returns(202)
@errors {401, 403, 404, 405, 406, 415, 500}

@endpoint GET /api/v1/apikeys/{key}
@required {key: any}
@returns(200)
@returns(202)
@errors {401, 403, 404, 405, 406, 415, 500}

@endpoint PUT /api/v1/apikeys/{key}
@required {key: any, apiKeyChange: map}
@returns(200)
@returns(202)
@errors {400, 401, 403, 404, 405, 406, 409, 415, 500}

@endpoint DELETE /api/v1/apikeys/{key}
@required {key: any}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint GET /api/v1/apikeys/{key}/privileges
@required {key: any}
@optional {offset: any, limit: any}
@returns(200)
@returns(202)
@errors {401, 403, 404, 405, 406, 415, 500}

@endpoint POST /api/v1/apikeys/{key}/privileges
@required {key: any, addApiKeyPrivilegeRequest: map}
@returns(200)
@returns(201)
@returns(202)
@errors {400, 401, 403, 404, 405, 406, 409, 415, 500}

@endpoint DELETE /api/v1/apikeys/{key}/privileges
@required {key: any, removeApiKeyPrivilegeRequest: map}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint GET /api/v1/apikeys/{key}/privileges/{privilege}/id4ns
@required {key: any, privilege: any}
@optional {offset: any, limit: any}
@returns(200)
@returns(202)
@errors {401, 403, 404, 405, 406, 415, 500}

@endpoint POST /api/v1/apikeys/{key}/privileges/{privilege}/id4ns
@required {key: any, privilege: any, id4ns: map}
@returns(200)
@returns(201)
@returns(202)
@errors {400, 401, 403, 404, 405, 406, 409, 415, 500}

@endpoint DELETE /api/v1/apikeys/{key}/privileges/{privilege}/id4ns
@required {key: any, privilege: any, id4ns: map}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint GET /api/v1/billing/{organizationId}
@required {organizationId: any}
@optional {fromDate: any, toDate: any}
@returns(200)
@returns(202)
@errors {401, 403, 404, 405, 406, 415, 500}

@endpoint GET /api/v1/billing/{organizationId}/positions
@required {organizationId: any}
@optional {fromDate: any, toDate: any}
@returns(200)
@returns(202)
@errors {401, 403, 404, 405, 406, 415, 500}

@endpoint GET /api/v1/changelog/organization/{organizationId}/
@required {organizationId: any}
@optional {messageMimeType: any, fromDate: any, toDate: any, offset: any, limit: any}
@returns(200)
@returns(202)
@errors {401, 403, 404, 405, 406, 415, 500}

@endpoint POST /api/v1/collections
@required {createInfo: map}
@returns(200)
@returns(201)
@returns(202)
@errors {400, 401, 403, 404, 405, 406, 409, 415, 500}

@endpoint GET /api/v1/collections/{id4n}
@required {id4n: any}
@returns(200)
@returns(202)
@errors {401, 403, 404, 405, 406, 415, 500}

@endpoint DELETE /api/v1/collections/{id4n}
@required {id4n: any}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint PATCH /api/v1/collections/{id4n}
@required {id4n: any, request: map}
@returns(200)
@returns(204)
@errors {401, 403}

@endpoint GET /api/v1/collections/{id4n}/elements
@required {id4n: any}
@optional {offset: any, limit: any, organizationId: any}
@returns(200)
@returns(202)
@errors {401, 403, 404, 405, 406, 415, 500}

@endpoint POST /api/v1/collections/{id4n}/elements
@required {id4n: any, listOfGuids: map}
@returns(200)
@returns(201)
@returns(202)
@errors {400, 401, 403, 404, 405, 406, 409, 415, 500}

@endpoint DELETE /api/v1/collections/{id4n}/elements
@required {id4n: any, listOfGuids: map}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint GET /api/v1/countries
@optional {offset: any, limit: any}
@returns(200)
@returns(202)
@errors {401, 403, 404, 405, 406, 415, 500}

@endpoint GET /api/v1/documents/{id4n}
@required {id4n: any}
@optional {owner: any, offset: any, limit: any}
@returns(200)
@returns(202)
@errors {401, 403, 404, 405, 406, 415, 500}

@endpoint GET /api/v1/documents/{id4n}/{organizationId}
@required {organizationId: any, id4n: any}
@optional {owner: any, offset: any, limit: any}
@returns(200)
@returns(202)
@errors {401, 403, 404, 405, 406, 415, 500}

@endpoint POST /api/v1/documents/{id4n}/{organizationId}
@required {organizationId: any, id4n: any, content: any}
@returns(200)
@returns(201)
@returns(202)
@errors {400, 401, 403, 404, 405, 406, 409, 415, 500}

@endpoint PUT /api/v1/documents/{id4n}/{organizationId}
@required {organizationId: any, id4n: any, content: any}
@returns(200)
@returns(202)
@errors {400, 401, 403, 404, 405, 406, 409, 415, 500}

@endpoint GET /api/v1/documents/{id4n}/{organizationId}/{fileName}
@required {organizationId: any, id4n: any, fileName: any}
@returns(200)
@returns(202)
@errors {401, 403, 404, 405, 406, 415, 500}

@endpoint DELETE /api/v1/documents/{id4n}/{organizationId}/{fileName}
@required {organizationId: any, id4n: any, fileName: any}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint GET /api/v1/documents/{id4n}/{organizationId}/{fileName}/metadata
@required {organizationId: any, id4n: any, fileName: any}
@returns(200)
@returns(202)
@errors {401, 403, 404, 405, 406, 415, 500}

@endpoint PATCH /api/v1/documents/{id4n}/{organizationId}/{fileName}/metadata
@required {organizationId: any, id4n: any, fileName: any, document: map}
@returns(200)
@returns(204)
@errors {401, 403}

@endpoint POST /api/v1/guids
@required {createGUIDInfo: map}
@returns(200)
@returns(201)
@returns(202)
@errors {400, 401, 403, 404, 405, 406, 409, 415, 500}

@endpoint GET /api/v1/guids/withoutCollection
@required {organizationId: any}
@optional {offset: any, limit: any}
@returns(200)
@returns(202)
@errors {401, 403, 404, 405, 406, 415, 500}

@endpoint GET /api/v1/guids/{id4n}
@required {id4n: any}
@optional {organizationId: any}
@returns(200)
@returns(202)
@errors {401, 403, 404, 405, 406, 415, 500}

@endpoint PATCH /api/v1/guids/{id4n}
@required {id4n: any, request: map}
@returns(200)
@returns(204)
@errors {401, 403}

@endpoint GET /api/v1/history/{id4n}
@required {id4n: any}
@optional {includePrivate: any, organization: any, type: any, qualifier: any, fromDate: any, toDate: any, offset: any, limit: any}
@returns(200)
@returns(202)
@errors {401, 403, 404, 405, 406, 415, 500}

@endpoint POST /api/v1/history/{id4n}
@required {id4n: any, historyItem: map}
@returns(200)
@returns(201)
@returns(202)
@errors {400, 401, 403, 404, 405, 406, 409, 415, 500}

@endpoint GET /api/v1/history/{id4n}/{organizationId}
@required {id4n: any, organizationId: any}
@optional {includePrivate: any, offset: any, limit: any}
@returns(200)
@returns(202)
@errors {401, 403, 404, 405, 406, 415, 500}

@endpoint GET /api/v1/history/{id4n}/{organizationId}/{sequenceId}
@required {id4n: any, organizationId: any, sequenceId: any}
@returns(200)
@returns(202)
@errors {401, 403, 404, 405, 406, 415, 500}

@endpoint PATCH /api/v1/history/{id4n}/{organizationId}/{sequenceId}
@required {id4n: any, organizationId: any, sequenceId: any, update: map}
@returns(200)
@returns(204)
@errors {401, 403}

@endpoint PUT /api/v1/history/{id4n}/{organizationId}/{sequenceId}/visibility
@required {id4n: any, organizationId: any, sequenceId: any, visibility: map}
@returns(200)
@returns(202)
@errors {400, 401, 403, 404, 405, 406, 409, 415, 500}

@endpoint GET /api/v1/id4ns/{id4n}
@required {id4n: any}
@optional {organizationId: any}
@returns(200)
@returns(202)
@errors {401, 403, 404, 405, 406, 415, 500}

@endpoint GET /api/v1/id4ns/{id4n}/alias
@required {id4n: any}
@returns(200)
@returns(202)
@errors {401, 403, 404, 405, 406, 415, 500}

@endpoint POST /api/v1/id4ns/{id4n}/alias/{aliasType}
@required {id4n: any, aliasType: any, alias: map}
@returns(200)
@returns(201)
@returns(202)
@errors {400, 401, 403, 404, 405, 406, 409, 415, 500}

@endpoint DELETE /api/v1/id4ns/{id4n}/alias/{aliasType}
@required {id4n: any, aliasType: any}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint GET /api/v1/id4ns/{id4n}/collections
@required {id4n: any}
@optional {organizationId: any, offset: any, limit: any}
@returns(200)
@returns(202)
@errors {401, 403, 404, 405, 406, 415, 500}

@endpoint GET /api/v1/id4ns/{id4n}/properties
@required {id4n: any}
@optional {organizationId: any}
@returns(200)
@returns(202)
@errors {401, 403, 404, 405, 406, 415, 500}

@endpoint DELETE /api/v1/id4ns/{id4n}/properties
@required {id4n: any, organizationId: any, properties: [str]}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint PATCH /api/v1/id4ns/{id4n}/properties
@required {id4n: any, organizationId: any, properties: map}
@returns(200)
@returns(204)
@errors {401, 403}

@endpoint POST /api/v1/import/gs1
@required {importGS1CodesRequest: map}
@returns(200)
@returns(201)
@returns(202)
@errors {400, 401, 403, 404, 405, 406, 409, 415, 500}

@endpoint GET /api/v1/info
@returns(200)
@returns(202)
@errors {401, 403, 404, 405, 406, 415, 500}

@endpoint GET /api/v1/microstorage/{id4n}/{organization}
@required {organization: any, id4n: any}
@returns(200)
@returns(202)
@errors {401, 403, 404, 405, 406, 415, 500}

@endpoint PUT /api/v1/microstorage/{id4n}/{organization}
@required {organization: any, id4n: any}
@optional {Content-Type: any, Content-Length: any, body: str(byte)}
@returns(200)
@returns(202)
@errors {400, 401, 403, 404, 405, 406, 409, 415, 500}

@endpoint GET /api/v1/multiple/id4ns/properties
@required {id4ns: any}
@optional {organizationId: any}
@returns(200)
@returns(202)
@errors {401, 403, 404, 405, 406, 415, 500}

@endpoint POST /api/v1/organizations
@required {organization: map}
@returns(200)
@returns(201)
@returns(202)
@errors {400, 401, 403, 404, 405, 406, 409, 415, 500}

@endpoint GET /api/v1/organizations/{organizationId}
@required {organizationId: any}
@returns(200)
@returns(202)
@errors {401, 403, 404, 405, 406, 415, 500}

@endpoint PUT /api/v1/organizations/{organizationId}
@required {organizationId: any, organizationUpdate: map}
@returns(200)
@returns(202)
@errors {400, 401, 403, 404, 405, 406, 409, 415, 500}

@endpoint DELETE /api/v1/organizations/{organizationId}
@required {organizationId: any}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint GET /api/v1/organizations/{organizationId}/addresses/billing
@required {organizationId: any}
@returns(200)
@returns(202)
@errors {401, 403, 404, 405, 406, 415, 500}

@endpoint PUT /api/v1/organizations/{organizationId}/addresses/billing
@required {organizationId: any, addressResource: map}
@returns(200)
@returns(202)
@errors {400, 401, 403, 404, 405, 406, 409, 415, 500}

@endpoint DELETE /api/v1/organizations/{organizationId}/addresses/billing
@required {organizationId: any}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint GET /api/v1/organizations/{organizationId}/addresses/default
@required {organizationId: any}
@returns(200)
@returns(202)
@errors {401, 403, 404, 405, 406, 415, 500}

@endpoint PUT /api/v1/organizations/{organizationId}/addresses/default
@required {organizationId: any, addressResource: map}
@returns(200)
@returns(202)
@errors {400, 401, 403, 404, 405, 406, 409, 415, 500}

@endpoint GET /api/v1/organizations/{organizationId}/collections
@required {organizationId: any}
@optional {offset: any, limit: any, type: any, label: any, labelPrefix: any, property: any}
@returns(200)
@returns(202)
@errors {401, 403, 404, 405, 406, 415, 500}

@endpoint POST /api/v1/organizations/{organizationId}/logo
@required {organizationId: any, file: any}
@returns(200)
@returns(201)
@returns(202)
@errors {400, 401, 403, 404, 405, 406, 409, 415, 500}

@endpoint DELETE /api/v1/organizations/{organizationId}/logo
@required {organizationId: any}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint GET /api/v1/organizations/{organizationId}/messaging
@required {organizationId: any}
@returns(200)
@returns(202)
@errors {401, 403, 404, 405, 406, 415, 500}

@endpoint PATCH /api/v1/organizations/{organizationId}/messaging
@required {organizationId: any, request: map}
@returns(200)
@returns(204)
@errors {401, 403}

@endpoint POST /api/v1/organizations/{organizationId}/messaging/enqueueCustomMessage
@required {organizationId: any, request: map}
@returns(200)
@returns(201)
@returns(202)
@errors {400, 401, 403, 404, 405, 406, 409, 415, 500}

@endpoint GET /api/v1/organizations/{organizationId}/partner
@required {organizationId: any}
@optional {offset: any, limit: any}
@returns(200)
@returns(202)
@errors {401, 403, 404, 405, 406, 415, 500}

@endpoint PUT /api/v1/organizations/{organizationId}/partner
@required {organizationId: any, request: map}
@returns(200)
@returns(202)
@errors {400, 401, 403, 404, 405, 406, 409, 415, 500}

@endpoint DELETE /api/v1/organizations/{organizationId}/partner
@required {organizationId: any, request: map}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint GET /api/v1/organizations/{organizationId}/privileges
@required {organizationId: any}
@returns(200)
@returns(202)
@errors {401, 403, 404, 405, 406, 415, 500}

@endpoint GET /api/v1/organizations/{organizationId}/roles
@required {organizationId: any}
@optional {offset: any, limit: any}
@returns(200)
@returns(202)
@errors {401, 403, 404, 405, 406, 415, 500}

@endpoint GET /api/v1/organizations/{organizationId}/users
@required {organizationId: any}
@optional {offset: any, limit: any}
@returns(200)
@returns(202)
@errors {401, 403, 404, 405, 406, 415, 500}

@endpoint POST /api/v1/organizations/{organizationId}/users/invite
@required {organizationId: any, invitationList: map}
@returns(200)
@returns(201)
@returns(202)
@errors {400, 401, 403, 404, 405, 406, 409, 415, 500}

@endpoint GET /api/v1/organizations/{organizationId}/users/{username}/roles
@required {organizationId: any, username: any}
@optional {offset: any, limit: any}
@returns(200)
@returns(202)
@errors {401, 403, 404, 405, 406, 415, 500}

@endpoint POST /api/v1/organizations/{organizationId}/users/{username}/roles
@required {organizationId: any, username: any, changeRoleRequest: map}
@returns(200)
@returns(201)
@returns(202)
@errors {400, 401, 403, 404, 405, 406, 409, 415, 500}

@endpoint DELETE /api/v1/organizations/{organizationId}/users/{username}/roles
@required {organizationId: any, username: any, changeRoleRequest: map}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint GET /api/v1/public/documents/{id4n}
@required {id4n: any}
@optional {organizationId: any, owner: any, offset: any, limit: any}
@returns(200)
@returns(202)
@errors {401, 403, 404, 405, 406, 415, 500}

@endpoint GET /api/v1/public/documents/{id4n}/{organizationId}/{fileName}
@required {organizationId: any, id4n: any, fileName: any}
@returns(200)
@returns(202)
@errors {401, 403, 404, 405, 406, 415, 500}

@endpoint GET /api/v1/public/documents/{id4n}/{organizationId}/{fileName}/metadata
@required {organizationId: any, id4n: any, fileName: any}
@returns(200)
@returns(202)
@errors {401, 403, 404, 405, 406, 415, 500}

@endpoint GET /api/v1/public/history/{id4n}
@required {id4n: any}
@optional {offset: any, limit: any}
@returns(200)
@returns(202)
@errors {401, 403, 404, 405, 406, 415, 500}

@endpoint GET /api/v1/public/image/{imageID}
@required {imageID: any}
@returns(200)
@returns(202)
@errors {401, 403, 404, 405, 406, 415, 500}

@endpoint GET /api/v1/public/organizations/{organizationId}
@required {organizationId: any}
@returns(200)
@returns(202)
@errors {401, 403, 404, 405, 406, 415, 500}

@endpoint GET /api/v1/public/routes/{id4n}
@required {id4n: any, type: any}
@optional {interpolate: any}
@returns(200)
@returns(202)
@errors {401, 403, 404, 405, 406, 415, 500}

@endpoint GET /api/v1/roles
@optional {privilege: any, offset: any, limit: any}
@returns(200)
@returns(202)
@errors {401, 403, 404, 405, 406, 415, 500}

@endpoint GET /api/v1/routingfiles/{id4n}
@required {id4n: any}
@optional {organizationId: any}
@returns(200)
@returns(202)
@errors {401, 403, 404, 405, 406, 415, 500}

@endpoint PUT /api/v1/routingfiles/{id4n}
@required {rfr: map, id4n: any}
@returns(200)
@returns(202)
@errors {400, 401, 403, 404, 405, 406, 409, 415, 500}

@endpoint GET /api/v1/routingfiles/{id4n}/route/{type}
@required {id4n: any, type: any}
@optional {privateRoutes: any, publicRoutes: any, interpolate: any}
@returns(200)
@returns(202)
@errors {401, 403, 404, 405, 406, 415, 500}

@endpoint GET /api/v1/routingfiles/{id4n}/routes/{type}
@required {id4n: any, type: any}
@optional {organizationId: any, interpolate: any}
@returns(200)
@returns(202)
@errors {401, 403, 404, 405, 406, 415, 500}

@endpoint GET /api/v1/search/guids
@required {alias: any, aliasType: any}
@optional {offset: any, limit: any}
@returns(200)
@returns(202)
@errors {401, 403, 404, 405, 406, 415, 500}

@endpoint GET /api/v1/search/guids/aliases/types
@returns(200)
@returns(202)
@errors {401, 403, 404, 405, 406, 415, 500}

@endpoint PUT /api/v1/transfers/{id4n}/receiveInfo
@required {id4n: any, request: map}
@returns(200)
@returns(202)
@errors {400, 401, 403, 404, 405, 406, 409, 415, 500}

@endpoint GET /api/v1/transfers/{id4n}/sendInfo
@required {id4n: any}
@returns(200)
@returns(202)
@errors {401, 403, 404, 405, 406, 415, 500}

@endpoint PUT /api/v1/transfers/{id4n}/sendInfo
@required {id4n: any, request: map}
@returns(200)
@returns(202)
@errors {400, 401, 403, 404, 405, 406, 409, 415, 500}

@endpoint GET /api/v1/user/organizations
@optional {role: any, offset: any, limit: any}
@returns(200)
@returns(202)
@errors {401, 403, 404, 405, 406, 415, 500}

@endpoint GET /api/v1/users
@optional {usernamePrefix: any, offset: any, limit: any}
@returns(200)
@returns(202)
@errors {401, 403, 404, 405, 406, 415, 500}

@endpoint GET /api/v1/users/{username}
@required {username: any}
@returns(200)
@returns(202)
@errors {401, 403, 404, 405, 406, 415, 500}

@endgroup

@group go
@endpoint GET /go/{guid}
@required {guid: any}
@returns(200)
@returns(202)
@errors {401, 403, 404, 405, 406, 415, 500}

@endgroup

@group login
@endpoint POST /login
@required {account-credentials: map}
@returns(200)
@errors {401}

@endgroup

@group whois
@endpoint GET /whois/{id4n}
@required {id4n: any}
@returns(200)
@returns(202)
@errors {401, 403, 404, 405, 406, 415, 500}

@endgroup

@end
