diff --git a/reference/callback.json b/reference/callback.json index 65d28286fc8a833c9211a68f8516e81297c0b232..5d5d34b80a8980f151057eed88b0210e95df1213 100644 --- a/reference/callback.json +++ b/reference/callback.json @@ -2,7 +2,7 @@ "openapi": "3.0.0", "info": { "title": "Notification Callback", - "version": "0.4", + "version": "DEV", "contact": { "name": "FITKO", "url": "https://www.fitko.de/" diff --git a/reference/sender.json b/reference/sender.json index 93a0e6ef7bbda60d94a85d6add7814826d23992e..f2ccc1f9464954c49e18f52e2ad8ad0903a214b1 100644 --- a/reference/sender.json +++ b/reference/sender.json @@ -2,7 +2,7 @@ "openapi": "3.0.0", "info": { "title": "Application Sender API", - "version": "0.4", + "version": "DEV", "description": "API vom Onlineantragsdienst zum Zustelldienst", "contact": { "name": "FITKO", @@ -20,7 +20,7 @@ } ], "paths": { - "/{sourceId}/{destinationId}/{applicationId}/upload-status": { + "/{sourceId}/{destinationId}/{applicationId}": { "parameters": [ { "schema": { @@ -47,68 +47,16 @@ "required": true } ], - "get": { - "summary": "Get Application Upload Status", + "post": { + "summary": "Send Application", + "operationId": "commit-application", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { - "type": "object", - "properties": { - "data": { - "type": "object", - "properties": { - "status": { - "type": "string", - "enum": [ - "missing", - "partial", - "complete" - ] - }, - "length": { - "type": "integer", - "minimum": 0 - } - }, - "required": [ - "status", - "length" - ] - }, - "docs": { - "type": "array", - "items": { - "type": "object", - "properties": { - "docId": { - "type": "string", - "pattern": "^[-_.A-Za-z0-9]+$", - "description": "Id des Dokuments. Diese muss nur innerhalb des Antrags (Application) eindeutig sein. Es wird daher empfohlen, die IDs fortlaufend (1, 2 etc.) zu vergeben." - }, - "status": { - "type": "string", - "enum": [ - "missing", - "partial", - "complete" - ] - }, - "length": { - "type": "integer", - "minimum": 0 - } - }, - "required": [ - "docId", - "status", - "length" - ] - } - } - } + "$ref": "../models/status-overview.json" } } } @@ -152,12 +100,33 @@ } } } + }, + "413": { + "description": "Request Entity Too Large", + "content": { + "application/json": { + "schema": { + "$ref": "../models/error-body.json" + } + } + } } }, - "operationId": "get-application-upload-status", - "description": "Abfrage des Übermittlungsstatus. Listet alle Unterresourcen (data und docs) mit Übermittlungsstatus auf.", + "description": "Übertragung abschließen, Antrag absenden", + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": {} + } + } + }, + "description": "" + }, "tags": [ - "Transfer related Information" + "Application Transfer" ], "security": [ { @@ -169,7 +138,7 @@ ] } }, - "/{sourceId}/{applicationId}/status": { + "/{sourceId}/{destinationId}": { "parameters": [ { "schema": { @@ -183,32 +152,31 @@ "schema": { "type": "string" }, - "name": "applicationId", + "name": "destinationId", "in": "path", "required": true } ], - "get": { - "summary": "Get Status", - "tags": [ - "status" - ], + "post": { + "summary": "Create Application", + "operationId": "create-application", "responses": { - "200": { - "description": "OK", + "201": { + "description": "Created", "content": { "application/json": { "schema": { "type": "object", "properties": { - "current": { - "$ref": "../models/status-overview.json" - }, - "history": { - "type": "array", - "items": { - "$ref": "../models/status-overview.json" - } + "applicationId": { + "type": "string" + } + } + }, + "examples": { + "example-1": { + "value": { + "applicationId": "45bb5b95-d853-4fc5-b45d-10aa9e15287a" } } } @@ -245,8 +213,18 @@ } } }, - "404": { - "description": "Not Found", + "406": { + "description": "Not Acceptable", + "content": { + "application/json": { + "schema": { + "$ref": "../models/error-body.json" + } + } + } + }, + "413": { + "description": "Request Entity Too Large", "content": { "application/json": { "schema": { @@ -256,64 +234,177 @@ } } }, - "operationId": "get-application-status", - "description": "Ruft den aktuellen Status der Übermittlung sowie einer Übersicht der bisherigen Übertragungshistorie ab.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "../models/application/metadata-no-id.json" + }, + "examples": { + "example-1": { + "value": { + "additionalReferenceInfo": { + "subject": "Anmeldung eines Gewerbes in Musterstadt", + "caseId": "DF/8923" + }, + "contentStructure": { + "data": { + "size": 9438, + "schema": { + "mimeType": "json", + "schemaSource": "none" + } + }, + "docs": [ + { + "docId": "1", + "purpose": "form", + "size": 39273, + "mimeType": "application/pdf", + "filename": "antrag.pdf", + "description": "Das Antragsformular", + "lang": { + "lang": "de", + "region": "DE" + }, + "hash": { + "algorithm": "SHA-256", + "digest": "03ba204e50d126e4674c005e04d82e84c21366780af1f43bd54a37816b6ab340" + } + }, + { + "docId": "2", + "purpose": "attachment", + "size": 894834874, + "mimeType": "image/jpeg", + "filename": "scan.jpg", + "description": "Scan der Bescheinigung", + "hash": { + "algorithm": "SHA-256", + "digest": "e1762f14d9924e37b32f1c81dfd256410af462f5136415c96877efa8c80345d0" + } + } + ] + }, + "publicServiceType": { + "name": "Gewerbeanmeldung", + "description": "Eine Gewerbeanmeldung ist immer dann notwendig, wenn Sie einen stehenden Gewerbebetrieb beginnen.", + "leikaId": "99050012104000", + "otherIdentifiers": [ + { + "id": "8664844", + "schemeURI": "service.niedersachsen.de", + "schemeName": "Serviceportal Niedersachsen" + }, + { + "id": "354824", + "schemeURI": "buerger.thueringen.de", + "schemeName": "Zuständigkeitsfinder Thüringen" + } + ] + }, + "applicants": [ + { + "identifier": [ + { + "id": "918", + "schemeName": "Antragsportal", + "schemeId": "urn:com:example:antragsportal:user" + } + ], + "contactInfo": { + "physicalAddress": { + "street": "Kurzer Weg", + "houseNumber": 7, + "postalCode": "12345", + "city": "string", + "addressSupplement": "string" + }, + "telephone": [ + { + "number": "+49 89 32168-42", + "mobile": true, + "description": "string" + } + ], + "electronicAddresses": [ + { + "channelType": "Service-Account-Mailbox", + "address": "string" + } + ] + }, + "identityInfo": { + "gender": "m", + "nationality": "string", + "familyName": "string", + "givenName": "string", + "birthName": "string", + "doctoralDegrees": "string", + "artisticName": "string", + "dateOfBirth": "2020-04-16", + "placeOfBirth": "string", + "placeOfResidence": { + "street": "string", + "houseNumber": null, + "houseNumberSuffix": "st", + "postalCode": "strin", + "city": "string", + "addressSupplement": "string" + } + }, + "authentificationInfo": { + "timestamp": "2020-04-16T06:50:39Z", + "authentificationToken": {}, + "authentificationMethod": "string", + "assuranceLevel": "low" + } + } + ], + "payment-info": { + "reference": "TP/93/GDP", + "usage": "Gewerbeanmeldung", + "amount": 17.3, + "timestamp": "2020-03-03T12:38:23Z", + "status": "success", + "transaction": "1f77c5f9b759db9cdce59988b24974d465c7be5e462a6185485559ff6e2dea82" + } + } + } + } + } + }, + "description": "Metadaten des Antrags" + }, + "description": "Übertragung initiieren", + "tags": [ + "Application Transfer" + ], "security": [ { "API Key": [ - "{sourceId}:status:read", + "{sourceId}:application:apply", "{sourceId}:source:manage" ] } ] - } - }, - "/{sourceId}/{destinationId}/{applicationId}/data": { - "parameters": [ - { - "schema": { - "type": "string" - }, - "name": "sourceId", - "in": "path", - "required": true - }, - { - "schema": { - "type": "string" - }, - "name": "destinationId", - "in": "path", - "required": true - }, - { - "schema": { - "type": "string" - }, - "name": "applicationId", - "in": "path", - "required": true - } - ], - "put": { - "summary": "Add Application Data", - "operationId": "add-application-data", + }, + "get": { + "summary": "Get Destination Info", + "operationId": "get-destination-info", "responses": { - "202": { - "description": "Accepted" - }, - "400": { - "description": "Bad Request", + "200": { + "description": "OK", "content": { "application/json": { "schema": { - "$ref": "../models/error-body.json" + "$ref": "../models/destination.json" } } } }, - "401": { - "description": "Unauthorized", + "400": { + "description": "Bad Request", "content": { "application/json": { "schema": { @@ -322,8 +413,8 @@ } } }, - "403": { - "description": "Forbidden", + "401": { + "description": "Unauthorized", "content": { "application/json": { "schema": { @@ -332,8 +423,8 @@ } } }, - "410": { - "description": "Gone", + "403": { + "description": "Forbidden", "content": { "application/json": { "schema": { @@ -342,8 +433,8 @@ } } }, - "413": { - "description": "Request Entity Too Large", + "404": { + "description": "Not Found", "content": { "application/json": { "schema": { @@ -353,58 +444,14 @@ } } }, - "description": "Datensatz übertragen", - "requestBody": { - "content": { - "application/json": { - "schema": { - "properties": {}, - "type": "object" - }, - "examples": { - "example-1": { - "value": { - "F99000001": "string", - "G99000001": { - "F99000002": "string", - "F99000003": 42 - }, - "G99000002": [ - { - "F99000004": true, - "G99000001": { - "F99000002": "string", - "F99000003": 17 - } - }, - { - "F99000004": true, - "G99000001": { - "F99000002": "string", - "F99000003": 24 - } - } - ] - } - } - } - }, - "application/xml": { - "schema": { - "type": "object", - "properties": {} - } - } - }, - "description": "JSON oder XML Daten" - }, + "description": "Ruft die Information über eine Destination ab", "tags": [ - "Application Transfer" + "Transfer related Information" ], "security": [ { "API Key": [ - "{sourceId}:application:apply", + "{sourceId}:destination-info:read", "{sourceId}:source:manage" ] } @@ -548,7 +595,7 @@ ] } }, - "/{sourceId}/{destinationId}": { + "/{sourceId}/{destinationId}/{applicationId}/data": { "parameters": [ { "schema": { @@ -565,33 +612,22 @@ "name": "destinationId", "in": "path", "required": true + }, + { + "schema": { + "type": "string" + }, + "name": "applicationId", + "in": "path", + "required": true } ], - "post": { - "summary": "Create Application", - "operationId": "create-application", + "put": { + "summary": "Add Application Data", + "operationId": "add-application-data", "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "applicationId": { - "type": "string" - } - } - }, - "examples": { - "example-1": { - "value": { - "applicationId": "45bb5b95-d853-4fc5-b45d-10aa9e15287a" - } - } - } - } - } + "202": { + "description": "Accepted" }, "400": { "description": "Bad Request", @@ -623,8 +659,8 @@ } } }, - "406": { - "description": "Not Acceptable", + "410": { + "description": "Gone", "content": { "application/json": { "schema": { @@ -643,150 +679,52 @@ } } } - }, - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "../models/application/metadata-no-id.json" - }, - "examples": { - "example-1": { - "value": { - "additionalReferenceInfo": { - "subject": "Anmeldung eines Gewerbes in Musterstadt", - "caseId": "DF/8923" - }, - "contentStructure": { - "data": { - "size": 9438, - "schema": { - "mimeType": "json", - "schemaSource": "none" - } - }, - "docs": [ - { - "docId": "1", - "purpose": "form", - "size": 39273, - "mimeType": "application/pdf", - "filename": "antrag.pdf", - "description": "Das Antragsformular", - "lang": { - "lang": "de", - "region": "DE" - }, - "hash": { - "algorithm": "SHA-256", - "digest": "03ba204e50d126e4674c005e04d82e84c21366780af1f43bd54a37816b6ab340" - } - }, - { - "docId": "2", - "purpose": "attachment", - "size": 894834874, - "mimeType": "image/jpeg", - "filename": "scan.jpg", - "description": "Scan der Bescheinigung", - "hash": { - "algorithm": "SHA-256", - "digest": "e1762f14d9924e37b32f1c81dfd256410af462f5136415c96877efa8c80345d0" - } - } - ] + }, + "description": "Datensatz übertragen", + "requestBody": { + "content": { + "application/json": { + "schema": { + "properties": {}, + "type": "object" + }, + "examples": { + "example-1": { + "value": { + "F99000001": "string", + "G99000001": { + "F99000002": "string", + "F99000003": 42 }, - "publicServiceType": { - "name": "Gewerbeanmeldung", - "description": "Eine Gewerbeanmeldung ist immer dann notwendig, wenn Sie einen stehenden Gewerbebetrieb beginnen.", - "leikaId": "99050012104000", - "otherIdentifiers": [ - { - "id": "8664844", - "schemeURI": "service.niedersachsen.de", - "schemeName": "Serviceportal Niedersachsen" - }, - { - "id": "354824", - "schemeURI": "buerger.thueringen.de", - "schemeName": "Zuständigkeitsfinder Thüringen" + "G99000002": [ + { + "F99000004": true, + "G99000001": { + "F99000002": "string", + "F99000003": 17 } - ] - }, - "applicants": [ + }, { - "identifier": [ - { - "id": "918", - "schemeName": "Antragsportal", - "schemeId": "urn:com:example:antragsportal:user" - } - ], - "contactInfo": { - "physicalAddress": { - "street": "Kurzer Weg", - "houseNumber": 7, - "postalCode": "12345", - "city": "string", - "addressSupplement": "string" - }, - "telephone": [ - { - "number": "+49 89 32168-42", - "mobile": true, - "description": "string" - } - ], - "electronicAddresses": [ - { - "channelType": "Service-Account-Mailbox", - "address": "string" - } - ] - }, - "identityInfo": { - "gender": "m", - "nationality": "string", - "familyName": "string", - "givenName": "string", - "birthName": "string", - "doctoralDegrees": "string", - "artisticName": "string", - "dateOfBirth": "2020-04-16", - "placeOfBirth": "string", - "placeOfResidence": { - "street": "string", - "houseNumber": null, - "houseNumberSuffix": "st", - "postalCode": "strin", - "city": "string", - "addressSupplement": "string" - } - }, - "authentificationInfo": { - "timestamp": "2020-04-16T06:50:39Z", - "authentificationToken": {}, - "authentificationMethod": "string", - "assuranceLevel": "low" + "F99000004": true, + "G99000001": { + "F99000002": "string", + "F99000003": 24 } } - ], - "payment-info": { - "reference": "TP/93/GDP", - "usage": "Gewerbeanmeldung", - "amount": 17.3, - "timestamp": "2020-03-03T12:38:23Z", - "status": "success", - "transaction": "1f77c5f9b759db9cdce59988b24974d465c7be5e462a6185485559ff6e2dea82" - } + ] } } } + }, + "application/xml": { + "schema": { + "type": "object", + "properties": {} + } } }, - "description": "Metadaten des Antrags" + "description": "JSON oder XML Daten" }, - "description": "Übertragung initiieren", "tags": [ "Application Transfer" ], @@ -798,17 +736,50 @@ ] } ] - }, + } + }, + "/{sourceId}/{applicationId}/status": { + "parameters": [ + { + "schema": { + "type": "string" + }, + "name": "sourceId", + "in": "path", + "required": true + }, + { + "schema": { + "type": "string" + }, + "name": "applicationId", + "in": "path", + "required": true + } + ], "get": { - "summary": "Get Destination Info", - "operationId": "get-destination-info", + "summary": "Get Status", + "tags": [ + "status" + ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { - "$ref": "../models/destination.json" + "type": "object", + "properties": { + "current": { + "$ref": "../models/status-overview.json" + }, + "history": { + "type": "array", + "items": { + "$ref": "../models/status-overview.json" + } + } + } } } } @@ -854,21 +825,19 @@ } } }, - "description": "Ruft die Information über eine Destination ab", - "tags": [ - "Transfer related Information" - ], + "operationId": "get-application-status", + "description": "Ruft den aktuellen Status der Übermittlung sowie einer Übersicht der bisherigen Übertragungshistorie ab.", "security": [ { "API Key": [ - "{sourceId}:destination-info:read", + "{sourceId}:status:read", "{sourceId}:source:manage" ] } ] } }, - "/{sourceId}/{destinationId}/{applicationId}": { + "/{sourceId}/{destinationId}/{applicationId}/upload-status": { "parameters": [ { "schema": { @@ -895,16 +864,68 @@ "required": true } ], - "post": { - "summary": "Send Application", - "operationId": "commit-application", + "get": { + "summary": "Get Application Upload Status", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { - "$ref": "../models/status-overview.json" + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "status": { + "type": "string", + "enum": [ + "missing", + "partial", + "complete" + ] + }, + "length": { + "type": "integer", + "minimum": 0 + } + }, + "required": [ + "status", + "length" + ] + }, + "docs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "docId": { + "type": "string", + "pattern": "^[-_.A-Za-z0-9]+$", + "description": "Id des Dokuments. Diese muss nur innerhalb des Antrags (Application) eindeutig sein. Es wird daher empfohlen, die IDs fortlaufend (1, 2 etc.) zu vergeben." + }, + "status": { + "type": "string", + "enum": [ + "missing", + "partial", + "complete" + ] + }, + "length": { + "type": "integer", + "minimum": 0 + } + }, + "required": [ + "docId", + "status", + "length" + ] + } + } + } } } } @@ -948,33 +969,12 @@ } } } - }, - "413": { - "description": "Request Entity Too Large", - "content": { - "application/json": { - "schema": { - "$ref": "../models/error-body.json" - } - } - } } }, - "description": "Übertragung abschließen, Antrag absenden", - "parameters": [], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": {} - } - } - }, - "description": "" - }, + "operationId": "get-application-upload-status", + "description": "Abfrage des Übermittlungsstatus. Listet alle Unterresourcen (data und docs) mit Übermittlungsstatus auf.", "tags": [ - "Application Transfer" + "Transfer related Information" ], "security": [ { @@ -1006,10 +1006,10 @@ "clientCredentials": { "tokenUrl": "beispieltokenURL.de", "scopes": { - "{sourceId}:application:apply": "Dieser Zugriffsbereich erlaubt es Anträge anzulegen, diesen zu aktualisieren und abzusenden.", - "{sourceId}:status:read": "Dieser Zufriffsbereich erlaubt es auf Statusmitteilungen zu einem übersendeten Antrag abzurufen.", + "{sourceId}:source:manage": "Dieser Zufriffsbereich erlaubt es alle Endpunkte einer ", "{sourceId}:destination-info:read": "Dieser Zufriffsbereich erlaubt es Informationen von existierenden Destinationsabzurufen", - "{sourceId}:source:manage": "Dieser Zufriffsbereich erlaubt es alle Endpunkte einer " + "{sourceId}:status:read": "Dieser Zufriffsbereich erlaubt es auf Statusmitteilungen zu einem übersendeten Antrag abzurufen.", + "{sourceId}:application:apply": "Dieser Zugriffsbereich erlaubt es Anträge anzulegen, diesen zu aktualisieren und abzusenden." }, "refreshUrl": "beispielrefreshURL.de" } diff --git a/reference/subscriber.json b/reference/subscriber.json index 0713dbffb4ba932c1ef1f0091e9a8684a37cda47..5f4e5759983a6335b5e6783018b084eca2aeb7a1 100644 --- a/reference/subscriber.json +++ b/reference/subscriber.json @@ -2,7 +2,7 @@ "openapi": "3.0.0", "info": { "title": "Application Subscriber API", - "version": "0.4", + "version": "DEV", "description": "API vom Fachverfahren zum Zustelldienst", "contact": { "name": "FITKO", @@ -20,16 +20,8 @@ } ], "paths": { - "/{subscriberId}/destinations/{destinationId}": { + "/{subscriberId}/destinations": { "parameters": [ - { - "schema": { - "type": "string" - }, - "name": "destinationId", - "in": "path", - "required": true - }, { "schema": { "type": "string" @@ -40,41 +32,46 @@ } ], "get": { - "summary": "Get Destination", + "summary": "List Destinations", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { - "$ref": "../models/destination.json" + "type": "array", + "items": { + "$ref": "../models/destination.json" + } }, "examples": { "example-1": { - "value": { - "destination-id": "83578", - "public-organization": { - "organizationName": "Gewerbeamt Musterhausen" - }, - "technicalContact": [ - { - "firstName": "Werner", - "lastName": "Mustermann", - "contact": { - "telephone": [ - { - "number": "+49 89 32168-42", - "mobile": false, - "description": "Dienstliches Festnetz" - } - ] + "value": [ + { + "destination-id": "83578", + "public-organization": { + "organizationName": "Gewerbeamt Musterhausen" + }, + "technicalContact": [ + { + "firstName": "Werner", + "lastName": "Mustermann", + "contact": { + "telephone": [ + { + "number": "+49 89 32168-42", + "mobile": false, + "description": "Dienstliches Festnetz" + } + ] + } } + ], + "callback": { + "callbackURI": "https://www.example.com/callback" } - ], - "callback": { - "callbackURI": "https://www.example.com/callback" } - } + ] } } } @@ -109,20 +106,10 @@ } } } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "$ref": "../models/error-body.json" - } - } - } } }, - "operationId": "get-destination", - "description": "Übertragungsziel abfragen", + "operationId": "list-destinations", + "description": "Ruft die Liste aller Destinations dieses Accounts auf.", "tags": [ "Destination Management" ], @@ -130,32 +117,43 @@ { "API Key": [ "{subscriberId}:destination:read", - "{subscriberId}:destination:manage", "{subscriberId}:manage", - "{subscriberId}:destination:{destinationId}:read" + "{subscriberId}:destination:manage" ] } ] }, - "put": { - "summary": "Update Destination", - "operationId": "update-destination", + "post": { + "summary": "Create Destination", + "operationId": "create-destination", "responses": { - "200": { - "description": "OK" - }, - "400": { - "description": "Bad Request", + "201": { + "description": "Created", "content": { "application/json": { "schema": { - "$ref": "../models/error-body.json" + "type": "object", + "properties": { + "destinationId": { + "type": "string" + } + }, + "required": [ + "destinationId" + ] + }, + "examples": { + "example-1": { + "value": { + "destinationId": "e15fc92e-c286-424b-9802-39c6b6bc441d" + } + } } } } }, - "401": { - "description": "Unauthorized", + "400": { + "description": "Bad Request", "content": { "application/json": { "schema": { @@ -164,8 +162,8 @@ } } }, - "403": { - "description": "Forbidden", + "401": { + "description": "Unauthorized", "content": { "application/json": { "schema": { @@ -174,8 +172,8 @@ } } }, - "404": { - "description": "Not Found", + "403": { + "description": "Forbidden", "content": { "application/json": { "schema": { @@ -185,17 +183,16 @@ } } }, - "description": "Übertragungsziel aktualisieren", + "description": "Legt eine neue Destination an.", "requestBody": { "content": { "application/json": { "schema": { - "$ref": "../models/destination.json" + "$ref": "../models/destination-no-id.json" }, "examples": { "example-1": { "value": { - "destination-id": "83578", "public-organization": { "organizationName": "Gewerbeamt Musterhausen" }, @@ -221,7 +218,8 @@ } } } - } + }, + "description": "Anzulegende Destination" }, "tags": [ "Destination Management" @@ -230,19 +228,71 @@ { "API Key": [ "{subscriberId}:manage", - "{subscriberId}:destination:update", "{subscriberId}:destination:manage", - "{subscriberId}:destination:{destinationId}:update" + "{subscriberId}:destination:create" ] } ] - }, - "delete": { - "summary": "Delete Destination", - "operationId": "delete-destination", + } + }, + "/{subscriberId}/destinations/{destinationId}/applications/{applicationId}/data": { + "parameters": [ + { + "schema": { + "type": "string" + }, + "name": "subscriberId", + "in": "path", + "required": true + }, + { + "schema": { + "type": "string" + }, + "name": "destinationId", + "in": "path", + "required": true + }, + { + "schema": { + "type": "string" + }, + "name": "applicationId", + "in": "path", + "required": true + } + ], + "get": { + "summary": "Get Application Data", "responses": { "200": { - "description": "OK" + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": {} + }, + "examples": { + "example-1": { + "value": { + "F99000001": "Eins", + "G99000001": { + "F99000002": "Zwei", + "F99000003": "Drei" + } + } + } + } + }, + "application/xml": { + "schema": { + "type": "object", + "properties": {} + }, + "examples": {} + } + } }, "400": { "description": "Bad Request", @@ -285,23 +335,23 @@ } } }, - "description": "Übertragungsziel löschen", + "operationId": "get-application-data", + "description": "Ruft die Fachdaten der Application ab.\n\nBeispiele:\n#### JSON\n```json\n{\n \"F99000001\": \"Eins\",\n \"G99000001\": {\n \"F99000002\": \"Zwei\",\n \"F99000003\": \"Drei\"\n }\n}\n```\n\n#### XML\n```xml\n<S99000001>\n <F99000001>Eins</F99000001>\n <G99000001>\n <F99000002>Zwei</F99000002>\n <F99000003>Drei</F99000003>\n </G99000001>\n</S99000001>\n```", "tags": [ - "Destination Management" + "Application Retrieval" ], "security": [ { "API Key": [ "{subscriberId}:manage", - "{subscriberId}:destination:manage", - "{subscriberId}:destination:delete", - "{subscriberId}:destination:{destinationId}:delete" + "{subscriberId}:application:receive", + "{subscriberId}:destination:{destinationId}:application:receive" ] } ] } }, - "/{subscriberId}/destinations/{destinationId}/applications": { + "/{subscriberId}/destinations/{destinationId}/applications/{applicationId}/docs/{docId}": { "parameters": [ { "schema": { @@ -318,159 +368,34 @@ "name": "destinationId", "in": "path", "required": true - } - ], - "get": { - "summary": "List Applications", - "operationId": "list-applications", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "../models/application/metadata.json" - } - }, - "examples": { - "example-1": { - "value": [] - }, - "example-2": { - "value": [ - { - "applicationId": "7236", - "additionalReferenceInfo": { - "subject": "Anmeldung eines Gewerbes in Musterstadt", - "caseId": "DF/8923" - }, - "contentStructure": { - "data": { - "size": 9438, - "schema": { - "mimeType": "json", - "schemaSource": "none" - } - }, - "docs": [ - { - "docId": "1", - "purpose": "form", - "size": 39273, - "mimeType": "application/pdf", - "filename": "antrag.pdf", - "description": "Das Antragsformular", - "lang": { - "lang": "de", - "region": "DE" - }, - "hash": { - "algorithm": "SHA-256", - "digest": "03ba204e50d126e4674c005e04d82e84c21366780af1f43bd54a37816b6ab340" - } - }, - { - "docId": "2", - "purpose": "attachment", - "size": 894834874, - "mimeType": "image/jpeg", - "filename": "scan.jpg", - "description": "Scan der Bescheinigung", - "hash": { - "algorithm": "SHA-256", - "digest": "e1762f14d9924e37b32f1c81dfd256410af462f5136415c96877efa8c80345d0" - } - } - ] - }, - "publicServiceType": { - "name": "Gewerbeanmeldung", - "description": "Eine Gewerbeanmeldung ist immer dann notwendig, wenn Sie einen stehenden Gewerbebetrieb beginnen.", - "leikaId": "99050012104000", - "otherIdentifiers": [ - { - "id": "8664844", - "schemeURI": "service.niedersachsen.de", - "schemeName": "Serviceportal Niedersachsen" - }, - { - "id": "354824", - "schemeURI": "buerger.thueringen.de", - "schemeName": "Zuständigkeitsfinder Thüringen" - } - ] - }, - "applicants": [ - { - "identifier": [ - { - "id": "918", - "schemeName": "Antragsportal", - "schemeId": "urn:com:example:antragsportal:user" - } - ], - "contactInfo": { - "physicalAddress": { - "street": "Kurzer Weg", - "houseNumber": 7, - "postalCode": "12345", - "city": "string", - "addressSupplement": "string" - }, - "telephone": [ - { - "number": "+49 89 32168-42", - "mobile": true, - "description": "string" - } - ], - "electronicAddresses": [ - { - "channelType": "Service-Account-Mailbox", - "address": "string" - } - ] - }, - "identityInfo": { - "gender": "m", - "nationality": "string", - "familyName": "string", - "givenName": "string", - "birthName": "string", - "doctoralDegrees": "string", - "artisticName": "string", - "dateOfBirth": "2020-04-16", - "placeOfBirth": "string", - "placeOfResidence": { - "street": "string", - "houseNumber": null, - "houseNumberSuffix": "st", - "postalCode": "strin", - "city": "string", - "addressSupplement": "string" - } - }, - "authentificationInfo": { - "timestamp": "2020-04-16T06:50:39Z", - "authentificationToken": {}, - "authentificationMethod": "string", - "assuranceLevel": "low" - } - } - ], - "payment-info": { - "reference": "TP/93/GDP", - "usage": "Gewerbeanmeldung", - "amount": 17.3, - "timestamp": "2020-03-03T12:38:23Z", - "status": "success", - "transaction": "1f77c5f9b759db9cdce59988b24974d465c7be5e462a6185485559ff6e2dea82" - } - } - ] - } + }, + { + "schema": { + "type": "string" + }, + "name": "applicationId", + "in": "path", + "required": true + }, + { + "schema": { + "type": "string" + }, + "name": "docId", + "in": "path", + "required": true + } + ], + "get": { + "summary": "Get Application Document", + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "type": "string", + "format": "binary" } } } @@ -516,7 +441,8 @@ } } }, - "description": "Ruft die Liste der wartenden Applications ab.", + "operationId": "get-application-document", + "description": "Ruf ein Dokument (Formular oder Anlage) der Application ab.", "tags": [ "Application Retrieval" ], @@ -849,113 +775,7 @@ ] } }, - "/{subscriberId}/destinations/{destinationId}/applications/{applicationId}/docs/{docId}": { - "parameters": [ - { - "schema": { - "type": "string" - }, - "name": "subscriberId", - "in": "path", - "required": true - }, - { - "schema": { - "type": "string" - }, - "name": "destinationId", - "in": "path", - "required": true - }, - { - "schema": { - "type": "string" - }, - "name": "applicationId", - "in": "path", - "required": true - }, - { - "schema": { - "type": "string" - }, - "name": "docId", - "in": "path", - "required": true - } - ], - "get": { - "summary": "Get Application Document", - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "type": "string", - "format": "binary" - } - } - } - }, - "400": { - "description": "Bad Request", - "content": { - "application/json": { - "schema": { - "$ref": "../models/error-body.json" - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "$ref": "../models/error-body.json" - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/json": { - "schema": { - "$ref": "../models/error-body.json" - } - } - } - }, - "404": { - "description": "Not Found", - "content": { - "application/json": { - "schema": { - "$ref": "../models/error-body.json" - } - } - } - } - }, - "operationId": "get-application-document", - "description": "Ruf ein Dokument (Formular oder Anlage) der Application ab.", - "tags": [ - "Application Retrieval" - ], - "security": [ - { - "API Key": [ - "{subscriberId}:manage", - "{subscriberId}:application:receive", - "{subscriberId}:destination:{destinationId}:application:receive" - ] - } - ] - } - }, - "/{subscriberId}/destinations/{destinationId}/applications/{applicationId}/data": { + "/{subscriberId}/destinations/{destinationId}/applications": { "parameters": [ { "schema": { @@ -972,45 +792,160 @@ "name": "destinationId", "in": "path", "required": true - }, - { - "schema": { - "type": "string" - }, - "name": "applicationId", - "in": "path", - "required": true } ], "get": { - "summary": "Get Application Data", + "summary": "List Applications", + "operationId": "list-applications", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { - "type": "object", - "properties": {} + "type": "array", + "items": { + "$ref": "../models/application/metadata.json" + } }, "examples": { "example-1": { - "value": { - "F99000001": "Eins", - "G99000001": { - "F99000002": "Zwei", - "F99000003": "Drei" + "value": [] + }, + "example-2": { + "value": [ + { + "applicationId": "7236", + "additionalReferenceInfo": { + "subject": "Anmeldung eines Gewerbes in Musterstadt", + "caseId": "DF/8923" + }, + "contentStructure": { + "data": { + "size": 9438, + "schema": { + "mimeType": "json", + "schemaSource": "none" + } + }, + "docs": [ + { + "docId": "1", + "purpose": "form", + "size": 39273, + "mimeType": "application/pdf", + "filename": "antrag.pdf", + "description": "Das Antragsformular", + "lang": { + "lang": "de", + "region": "DE" + }, + "hash": { + "algorithm": "SHA-256", + "digest": "03ba204e50d126e4674c005e04d82e84c21366780af1f43bd54a37816b6ab340" + } + }, + { + "docId": "2", + "purpose": "attachment", + "size": 894834874, + "mimeType": "image/jpeg", + "filename": "scan.jpg", + "description": "Scan der Bescheinigung", + "hash": { + "algorithm": "SHA-256", + "digest": "e1762f14d9924e37b32f1c81dfd256410af462f5136415c96877efa8c80345d0" + } + } + ] + }, + "publicServiceType": { + "name": "Gewerbeanmeldung", + "description": "Eine Gewerbeanmeldung ist immer dann notwendig, wenn Sie einen stehenden Gewerbebetrieb beginnen.", + "leikaId": "99050012104000", + "otherIdentifiers": [ + { + "id": "8664844", + "schemeURI": "service.niedersachsen.de", + "schemeName": "Serviceportal Niedersachsen" + }, + { + "id": "354824", + "schemeURI": "buerger.thueringen.de", + "schemeName": "Zuständigkeitsfinder Thüringen" + } + ] + }, + "applicants": [ + { + "identifier": [ + { + "id": "918", + "schemeName": "Antragsportal", + "schemeId": "urn:com:example:antragsportal:user" + } + ], + "contactInfo": { + "physicalAddress": { + "street": "Kurzer Weg", + "houseNumber": 7, + "postalCode": "12345", + "city": "string", + "addressSupplement": "string" + }, + "telephone": [ + { + "number": "+49 89 32168-42", + "mobile": true, + "description": "string" + } + ], + "electronicAddresses": [ + { + "channelType": "Service-Account-Mailbox", + "address": "string" + } + ] + }, + "identityInfo": { + "gender": "m", + "nationality": "string", + "familyName": "string", + "givenName": "string", + "birthName": "string", + "doctoralDegrees": "string", + "artisticName": "string", + "dateOfBirth": "2020-04-16", + "placeOfBirth": "string", + "placeOfResidence": { + "street": "string", + "houseNumber": null, + "houseNumberSuffix": "st", + "postalCode": "strin", + "city": "string", + "addressSupplement": "string" + } + }, + "authentificationInfo": { + "timestamp": "2020-04-16T06:50:39Z", + "authentificationToken": {}, + "authentificationMethod": "string", + "assuranceLevel": "low" + } + } + ], + "payment-info": { + "reference": "TP/93/GDP", + "usage": "Gewerbeanmeldung", + "amount": 17.3, + "timestamp": "2020-03-03T12:38:23Z", + "status": "success", + "transaction": "1f77c5f9b759db9cdce59988b24974d465c7be5e462a6185485559ff6e2dea82" + } } - } + ] } } - }, - "application/xml": { - "schema": { - "type": "object", - "properties": {} - }, - "examples": {} } } }, @@ -1055,8 +990,7 @@ } } }, - "operationId": "get-application-data", - "description": "Ruft die Fachdaten der Application ab.\n\nBeispiele:\n#### JSON\n```json\n{\n \"F99000001\": \"Eins\",\n \"G99000001\": {\n \"F99000002\": \"Zwei\",\n \"F99000003\": \"Drei\"\n }\n}\n```\n\n#### XML\n```xml\n<S99000001>\n <F99000001>Eins</F99000001>\n <G99000001>\n <F99000002>Zwei</F99000002>\n <F99000003>Drei</F99000003>\n </G99000001>\n</S99000001>\n```", + "description": "Ruft die Liste der wartenden Applications ab.", "tags": [ "Application Retrieval" ], @@ -1071,8 +1005,16 @@ ] } }, - "/{subscriberId}/destinations": { + "/{subscriberId}/destinations/{destinationId}": { "parameters": [ + { + "schema": { + "type": "string" + }, + "name": "destinationId", + "in": "path", + "required": true + }, { "schema": { "type": "string" @@ -1083,46 +1025,41 @@ } ], "get": { - "summary": "List Destinations", + "summary": "Get Destination", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "../models/destination.json" - } + "$ref": "../models/destination.json" }, "examples": { "example-1": { - "value": [ - { - "destination-id": "83578", - "public-organization": { - "organizationName": "Gewerbeamt Musterhausen" - }, - "technicalContact": [ - { - "firstName": "Werner", - "lastName": "Mustermann", - "contact": { - "telephone": [ - { - "number": "+49 89 32168-42", - "mobile": false, - "description": "Dienstliches Festnetz" - } - ] - } + "value": { + "destination-id": "83578", + "public-organization": { + "organizationName": "Gewerbeamt Musterhausen" + }, + "technicalContact": [ + { + "firstName": "Werner", + "lastName": "Mustermann", + "contact": { + "telephone": [ + { + "number": "+49 89 32168-42", + "mobile": false, + "description": "Dienstliches Festnetz" + } + ] } - ], - "callback": { - "callbackURI": "https://www.example.com/callback" } + ], + "callback": { + "callbackURI": "https://www.example.com/callback" } - ] + } } } } @@ -1157,10 +1094,20 @@ } } } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "../models/error-body.json" + } + } + } } }, - "operationId": "list-destinations", - "description": "Ruft die Liste aller Destinations dieses Accounts auf.", + "operationId": "get-destination", + "description": "Übertragungsziel abfragen", "tags": [ "Destination Management" ], @@ -1168,40 +1115,19 @@ { "API Key": [ "{subscriberId}:destination:read", + "{subscriberId}:destination:manage", "{subscriberId}:manage", - "{subscriberId}:destination:manage" + "{subscriberId}:destination:{destinationId}:read" ] } ] }, - "post": { - "summary": "Create Destination", - "operationId": "create-destination", + "put": { + "summary": "Update Destination", + "operationId": "update-destination", "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "destinationId": { - "type": "string" - } - }, - "required": [ - "destinationId" - ] - }, - "examples": { - "example-1": { - "value": { - "destinationId": "e15fc92e-c286-424b-9802-39c6b6bc441d" - } - } - } - } - } + "200": { + "description": "OK" }, "400": { "description": "Bad Request", @@ -1232,18 +1158,29 @@ } } } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "../models/error-body.json" + } + } + } } }, - "description": "Legt eine neue Destination an.", + "description": "Übertragungsziel aktualisieren", "requestBody": { "content": { "application/json": { "schema": { - "$ref": "../models/destination-no-id.json" + "$ref": "../models/destination.json" }, "examples": { "example-1": { "value": { + "destination-id": "83578", "public-organization": { "organizationName": "Gewerbeamt Musterhausen" }, @@ -1269,9 +1206,71 @@ } } } + } + }, + "tags": [ + "Destination Management" + ], + "security": [ + { + "API Key": [ + "{subscriberId}:manage", + "{subscriberId}:destination:update", + "{subscriberId}:destination:manage", + "{subscriberId}:destination:{destinationId}:update" + ] + } + ] + }, + "delete": { + "summary": "Delete Destination", + "operationId": "delete-destination", + "responses": { + "200": { + "description": "OK" + }, + "400": { + "description": "Bad Request", + "content": { + "application/json": { + "schema": { + "$ref": "../models/error-body.json" + } + } + } }, - "description": "Anzulegende Destination" + "401": { + "description": "Unauthorized", + "content": { + "application/json": { + "schema": { + "$ref": "../models/error-body.json" + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "../models/error-body.json" + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "../models/error-body.json" + } + } + } + } }, + "description": "Übertragungsziel löschen", "tags": [ "Destination Management" ], @@ -1280,7 +1279,8 @@ "API Key": [ "{subscriberId}:manage", "{subscriberId}:destination:manage", - "{subscriberId}:destination:create" + "{subscriberId}:destination:delete", + "{subscriberId}:destination:{destinationId}:delete" ] } ] @@ -1304,17 +1304,17 @@ "tokenUrl": "", "refreshUrl": "", "scopes": { - "{subscriberId}:destination:delete": "Dieser Zugriffsbereich erlaubt die Löschung von Destinations eines Accounts.", - "{subscriberId}:destination:{destinationId}:delete": "Dieser Zugriffsbereich erlaubt es, eine spezifische Destination zu löschen.", - "{subscriberId}:destination:{destinationId}:application:receive": "Dieser Zugriffsbereich erlaubt es, Anträge einer spezifischen Destination abzuholen.", - "{subscriberId}:manage": "Dieser Zugriffsbereich die vollständige Nutzung aller Endpunkte eines Subscribers.", - "{subscriberId}:destination:{destinationId}:update": "Mit diesem Zugriffsbereich wird ein schreibende Zugriff auf eine spezifische Destination ermöglicht.", - "{subscriberId}:application:receive": "Dieser Zugriffsbereich erlaubt es, Anträge für allen Destinations abzuholen.", - "{subscriberId}:destination:{destinationId}:read": "Mit diesem Zugriffsbereich wird ein lesender Zugriff auf eine spezifische Destination ermöglicht.", - "{subscriberId}:destination:read": "Dieser Zugriffsbereich erlaubt bei allen Destination-Informationen ein lesender Zugriff.", - "{subscriberId}:destination:create": "Der Zugriffsbereich erlaubt Destinations neu anzulegen und zu verändern.", + "{subscriberId}:destination:manage": "Dieser Zugriffsbereich alle Destination Endpunkte eines Subscriber genutzt werden.", "{subscriberId}:destination:update": "Dieser Zugriffsbereich erlaubt es, bestehende Destinations zu verändern.", - "{subscriberId}:destination:manage": "Dieser Zugriffsbereich alle Destination Endpunkte eines Subscriber genutzt werden." + "{subscriberId}:destination:create": "Der Zugriffsbereich erlaubt Destinations neu anzulegen und zu verändern.", + "{subscriberId}:destination:read": "Dieser Zugriffsbereich erlaubt bei allen Destination-Informationen ein lesender Zugriff.", + "{subscriberId}:destination:{destinationId}:read": "Mit diesem Zugriffsbereich wird ein lesender Zugriff auf eine spezifische Destination ermöglicht.", + "{subscriberId}:application:receive": "Dieser Zugriffsbereich erlaubt es, Anträge für allen Destinations abzuholen.", + "{subscriberId}:destination:{destinationId}:update": "Mit diesem Zugriffsbereich wird ein schreibende Zugriff auf eine spezifische Destination ermöglicht.", + "{subscriberId}:manage": "Dieser Zugriffsbereich die vollständige Nutzung aller Endpunkte eines Subscribers.", + "{subscriberId}:destination:{destinationId}:application:receive": "Dieser Zugriffsbereich erlaubt es, Anträge einer spezifischen Destination abzuholen.", + "{subscriberId}:destination:{destinationId}:delete": "Dieser Zugriffsbereich erlaubt es, eine spezifische Destination zu löschen.", + "{subscriberId}:destination:delete": "Dieser Zugriffsbereich erlaubt die Löschung von Destinations eines Accounts." } } },