diff --git a/models/application/applicant-contact-info.json b/models/application/applicant-contact-info.json index 017e3211b76ffa9c8a40cd1c842a0537c3721914..20d3e9bc9b97af8b62399d7d80e98021b8c742d6 100644 --- a/models/application/applicant-contact-info.json +++ b/models/application/applicant-contact-info.json @@ -3,14 +3,32 @@ "type": "object", "description": "Kontaktdaten des Antragstellers", "properties": { - "electronic-adresses": { + "physicalAddress": { + "oneOf": [ + { + "$ref": "../common/address-national.json" + }, + { + "$ref": "../common/address-international.json" + } + ], + "description": "Physikalische (Post-)Adresse" + }, + "telephone": { + "type": "array", + "description": "Liste der Telefonnummern, außer Fax", + "items": { + "$ref": "../common/phone.json" + } + }, + "electronicAddresses": { "type": "array", "description": "Elektronische Kontaktmöglkichkeiten, z.B. E-Mail", "items": { "type": "object", "description": "", "properties": { - "channel-type": { + "channelType": { "type": "string", "enum": [ "Service-Account-Mailbox", @@ -26,24 +44,6 @@ } } } - }, - "physical-adress": { - "oneOf": [ - { - "$ref": "../common/address-national.json" - }, - { - "$ref": "../common/address-international.json" - } - ], - "description": "Physikalische (Post-)Adresse" - }, - "telephone": { - "type": "array", - "description": "Liste der Telefonnummern, außer Fax", - "items": { - "$ref": "../common/phone.json" - } } } } \ No newline at end of file diff --git a/models/application/applicant-organization.json b/models/application/applicant-organization.json index c3d76bb66b3a752d877f6c64b281fa268050c2f8..5f7f3c7d12c8738be1617fe343e7b6371fe1c61f 100644 --- a/models/application/applicant-organization.json +++ b/models/application/applicant-organization.json @@ -10,44 +10,49 @@ "$ref": "../common/identifier.json" } }, - "org-validation": { - "type": "object", - "description": "Informationen, ob diese Organisation vom sendenden System identifiziert wurde", - "properties": { - "method": { - "type": "string", - "description": "Identifizierungsmethode" + "contactInfo": { + "$ref": "./applicant-contact-info.json" + }, + "actingPerson": { + "type": "array", + "description": "Im Namen der Organisation auftretende natürliche Personen, wie z.B. Geschäftsführer, Vorstände oder Prokuristen", + "items": { + "type": "object", + "properties": { + "identityInfo": { + "$ref": "../common/eID-natural-person.json" + }, + "authentificationInfo": { + "$ref": "../common/authentification-info.json" + } } - }, - "required": [ - "method" - ] + } }, - "organization-info": { + "organizationInfo": { "type": "object", "description": "Informationen über die Organisation", "properties": { - "legal-name": { + "legalName": { "type": "string", "description": "Name oder Bezeichnung - Der rechtliche Name einer Organisation. Der Name ist nicht zwingend eindeutig, um die Organisation zu identifizieren." }, - "organization-type": { + "organizationType": { "type": "string", "description": "Rechtsform der Organisation" }, - "registry-court": { + "registryCourt": { "type": "string", "description": "Registergericht" }, - "registry-type": { + "registryType": { "type": "string", "description": "Registerart - Die Registerart macht die Registernummer zur Identifizierung der Organisation innerhalb des Registergerichts eindeutig (z. B. HRA und HRB als Registerarten für das Handelsregister)." }, - "registry-number": { + "registryNumber": { "type": "string", "description": "Registernummer, z.B. vom Handelsregister" }, - "legal-address": { + "legalAddress": { "oneOf": [ { "$ref": "../common/address-national.json" @@ -58,7 +63,7 @@ ], "description": "Offizielle Adresse" }, - "legal-representatives": { + "legalRepresentatives": { "type": "array", "description": "Namen der Mitglieder des Vertretungsorgans oder der gesetzlichen Vertreter", "items": { @@ -67,23 +72,18 @@ } } }, - "acting-person": { - "type": "array", - "description": "Im Namen der Organisation auftretende natürliche Personen, wie z.B. Geschäftsführer, Vorstände oder Prokuristen", - "items": { - "type": "object", - "properties": { - "identity-info": { - "$ref": "../common/eID-natural-person.json" - }, - "authentification-info": { - "$ref": "../common/authentification-info.json" - } + "orgValidation": { + "type": "object", + "description": "Informationen, ob diese Organisation vom sendenden System identifiziert wurde", + "properties": { + "method": { + "type": "string", + "description": "Identifizierungsmethode" } - } - }, - "contact-info": { - "$ref": "./applicant-contact-info.json" + }, + "required": [ + "method" + ] } } } \ No newline at end of file diff --git a/models/application/applicant-person.json b/models/application/applicant-person.json index 5c196924fb954d54f350e7973447592d3a08c741..3b5a780f9017d075bcde51c3d0f6334b9e9707e2 100644 --- a/models/application/applicant-person.json +++ b/models/application/applicant-person.json @@ -10,14 +10,72 @@ "$ref": "../common/identifier.json" } }, - "authentification-info": { + "authentificationInfo": { "$ref": "../common/authentification-info.json" }, - "identity-info": { + "identityInfo": { "$ref": "../common/eID-natural-person.json" }, - "contact-info": { + "contactInfo": { "$ref": "./applicant-contact-info.json" } + }, + "x-examples": { + "example-1": { + "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" + } + } } } \ No newline at end of file diff --git a/models/application/document.json b/models/application/document.json index ba845ce19838c1900ffcc085902598b6ec9357d2..82321023b07265dea00dd1f664c6cb63d79b6add 100644 --- a/models/application/document.json +++ b/models/application/document.json @@ -4,10 +4,10 @@ "description": "Ein im Antrag (Application) enthaltenes Dokument (z.B. Antragsformular oder hochgeladene Anlage)", "x-examples": { "example-1": { - "doc-id": "1", + "docId": "1", "purpose": "form", "size": 39273, - "mime": "application/pdf", + "mimeType": "application/pdf", "filename": "antrag.pdf", "description": "Das Antragsformular", "lang": { @@ -20,10 +20,10 @@ } }, "example-2": { - "doc-id": "2", + "docId": "2", "purpose": "attachment", "size": 894834874, - "mime": "image/jpeg", + "mimeType": "image/jpeg", "filename": "scan.jpg", "description": "Scan der Bescheinigung", "hash": { @@ -33,11 +33,6 @@ } }, "properties": { - "doc-id": { - "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." - }, "purpose": { "type": "string", "enum": [ @@ -51,9 +46,6 @@ "type": "integer", "description": "Größe des Dokuments in Bytes" }, - "mime-type": { - "$ref": "../common/mime-type.json" - }, "filename": { "type": "string", "description": "Ursprünglicher Dateiname bei Erzeugung oder Upload" @@ -95,11 +87,19 @@ }, "type": "string", "description": "Sofern der Antragstellers dieses Dokument signiert hat, wird die Signatur hier base64url-encoded eingebettet" + }, + "mimeType": { + "$ref": "../common/mime-type.json" + }, + "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." } }, "required": [ "purpose", "size", - "mime-type" + "mimeType" ] } \ No newline at end of file diff --git a/models/application/metadata-no-id.json b/models/application/metadata-no-id.json index 7dff3c7d122bcd5bb4a94c4ac5a6e3630546332f..e133c27ea2af2ffd442de8f62e560c5151b66691 100644 --- a/models/application/metadata-no-id.json +++ b/models/application/metadata-no-id.json @@ -4,21 +4,24 @@ "description": "Metadaten eines Antrags noch ohne ID, zum Anlegen eines neuen Antrags. Nach dem Zuweisen der `application-id` wird das Modell [Application Metadata](metadata.json) verwendet.", "x-examples": { "example-1": { - "additional-reference-info": { + "additionalReferenceInfo": { "subject": "Anmeldung eines Gewerbes in Musterstadt", - "case-id": "DF/8923" + "caseId": "DF/8923" }, - "content-structure": { + "contentStructure": { "data": { - "schema-id": "742", - "mime-type": "json" + "size": 9438, + "schema": { + "mimeType": "json", + "schemaSource": "none" + } }, "docs": [ { - "doc-id": "1", + "docId": "1", "purpose": "form", "size": 39273, - "mime": "application/pdf", + "mimeType": "application/pdf", "filename": "antrag.pdf", "description": "Das Antragsformular", "lang": { @@ -31,10 +34,10 @@ } }, { - "doc-id": "2", + "docId": "2", "purpose": "attachment", "size": 894834874, - "mime": "image/jpeg", + "mimeType": "image/jpeg", "filename": "scan.jpg", "description": "Scan der Bescheinigung", "hash": { @@ -44,11 +47,11 @@ } ] }, - "public-service-type": { + "publicServiceType": { "name": "Gewerbeanmeldung", "description": "Eine Gewerbeanmeldung ist immer dann notwendig, wenn Sie einen stehenden Gewerbebetrieb beginnen.", - "leika-id": "99050012104000", - "other-identifiers": [ + "leikaId": "99050012104000", + "otherIdentifiers": [ { "id": "8664844", "schemeURI": "service.niedersachsen.de", @@ -63,28 +66,59 @@ }, "applicants": [ { - "person": { - "form-of-address": "Herr", - "academic-title": "Dr.", - "first-name": "Werner", - "last-name": "Mustermann" - }, - "identification": { - "authentication": { - "assurance-level": "high", - "authentification-method": "eID", - "timestamp": "2020-03-03T12:38:23Z" + "identifier": [ + { + "id": "918", + "schemeName": "Antragsportal", + "schemeId": "urn:com:example:antragsportal:user" + } + ], + "contactInfo": { + "physicalAddress": { + "street": "Kurzer Weg", + "houseNumber": 7, + "postalCode": "12345", + "city": "string", + "addressSupplement": "string" }, - "authenticated-data": { - "family-name": "MUSTERMANN", - "given-name": "WERNER", - "date-of-birth": "13091970", - "place-of-resicence": { - "street": "KURZER WEG 7", - "postal-code": "12345", - "city": "ANKH-MORPORK" + "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" } } ], @@ -99,18 +133,19 @@ } }, "properties": { - "additional-reference-info": { - "type": "object", - "properties": { - "subject": { - "type": "string" - }, - "case-id": { - "type": "string" - } + "applicants": { + "type": "array", + "items": { + "$ref": "./applicant.json" } }, - "content-structure": { + "paymentInfo": { + "$ref": "./payment-info.json" + }, + "publicServiceType": { + "$ref": "./public-service-type.json" + }, + "contentStructure": { "type": "object", "required": [ "data", @@ -120,7 +155,6 @@ "data": { "type": "object", "required": [ - "mime-type", "schema" ], "properties": { @@ -128,13 +162,6 @@ "type": "integer", "description": "Größe des Dokuments in Bytes" }, - "mime-type": { - "type": "string", - "enum": [ - "json", - "xml" - ] - }, "schema": { "$ref": "./schema.json" } @@ -148,20 +175,19 @@ } } }, - "public-service-type": { - "$ref": "./public-service-type.json" - }, - "applicants": { - "type": "array", - "items": { - "$ref": "./applicant.json" + "additionalReferenceInfo": { + "type": "object", + "properties": { + "subject": { + "type": "string" + }, + "caseId": { + "type": "string" + } } - }, - "payment-info": { - "$ref": "./payment-info.json" } }, "required": [ - "content-structure" + "contentStructure" ] } \ No newline at end of file diff --git a/models/application/metadata.json b/models/application/metadata.json index be404f05b0f64ba8b73b349951d434bbf77df774..b39c1ae363952c3bc4064d0abbaaa817339aa3aa 100644 --- a/models/application/metadata.json +++ b/models/application/metadata.json @@ -4,14 +4,14 @@ { "type": "object", "properties": { - "application-id": { + "applicationId": { "type": "string", "pattern": "^[-_.A-Za-z0-9]+$", "description": "ID des Antrags" } }, "required": [ - "application-id" + "applicationId" ] }, { @@ -21,22 +21,25 @@ "description": "Metadaten zu einem Antrag.", "x-examples": { "example-1": { - "application-id": "7236", - "additional-reference-info": { + "applicationId": "7236", + "additionalReferenceInfo": { "subject": "Anmeldung eines Gewerbes in Musterstadt", - "case-id": "DF/8923" + "caseId": "DF/8923" }, - "content-structure": { + "contentStructure": { "data": { - "schema-id": "742", - "mime-type": "json" + "size": 9438, + "schema": { + "mimeType": "json", + "schemaSource": "none" + } }, "docs": [ { - "doc-id": "1", + "docId": "1", "purpose": "form", "size": 39273, - "mime": "application/pdf", + "mimeType": "application/pdf", "filename": "antrag.pdf", "description": "Das Antragsformular", "lang": { @@ -49,10 +52,10 @@ } }, { - "doc-id": "2", + "docId": "2", "purpose": "attachment", "size": 894834874, - "mime": "image/jpeg", + "mimeType": "image/jpeg", "filename": "scan.jpg", "description": "Scan der Bescheinigung", "hash": { @@ -62,11 +65,11 @@ } ] }, - "public-service-type": { + "publicServiceType": { "name": "Gewerbeanmeldung", "description": "Eine Gewerbeanmeldung ist immer dann notwendig, wenn Sie einen stehenden Gewerbebetrieb beginnen.", - "leika-id": "99050012104000", - "other-identifiers": [ + "leikaId": "99050012104000", + "otherIdentifiers": [ { "id": "8664844", "schemeURI": "service.niedersachsen.de", @@ -81,28 +84,59 @@ }, "applicants": [ { - "person": { - "form-of-address": "Herr", - "academic-title": "Dr.", - "first-name": "Werner", - "last-name": "Mustermann" - }, - "identification": { - "authentication": { - "assurance-level": "high", - "authentification-method": "eID", - "timestamp": "2020-03-03T12:38:23Z" + "identifier": [ + { + "id": "918", + "schemeName": "Antragsportal", + "schemeId": "urn:com:example:antragsportal:user" + } + ], + "contactInfo": { + "physicalAddress": { + "street": "Kurzer Weg", + "houseNumber": 7, + "postalCode": "12345", + "city": "string", + "addressSupplement": "string" }, - "authenticated-data": { - "family-name": "MUSTERMANN", - "given-name": "WERNER", - "date-of-birth": "13091970", - "place-of-resicence": { - "street": "KURZER WEG 7", - "postal-code": "12345", - "city": "ANKH-MORPORK" + "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" } } ], diff --git a/models/application/public-service-type.json b/models/application/public-service-type.json index b0f254d899c0da4c7c7a32f67b4305376d347d86..b6db00df2e77e53ff8aaea8da17f580888ef1ef6 100644 --- a/models/application/public-service-type.json +++ b/models/application/public-service-type.json @@ -6,13 +6,13 @@ "x-examples": { "example-1": { "name": "Gewerbeanmeldung", - "leika-id": "99050012104000" + "leikaId": "99050012104000" }, "example-2": { "name": "Gewerbeanmeldung", "description": "Eine Gewerbeanmeldung ist immer dann notwendig, wenn Sie einen stehenden Gewerbebetrieb beginnen.", - "leika-id": "99050012104000", - "other-identifiers": [ + "leikaId": "99050012104000", + "otherIdentifiers": [ { "id": "8664844", "schemeURI": "service.niedersachsen.de", @@ -35,17 +35,17 @@ "type": "string", "description": "(Kurz-)Beschreibung der behördlichen Leistung" }, - "leika-id": { - "type": "string", - "pattern": "^[0-9]{2}([0-9]{3}){1,4}$", - "description": "ID aus dem Leistungskatalog (Leika)" - }, - "other-identifiers": { + "otherIdentifiers": { "type": "array", "description": "Weitere Identifikatioren. Die ID wird in `content` abgelegt, zusätzlich sollten die Schema-Attribute zur Spezifikation des Gültigkeitsraumes verwendet werden.", "items": { "$ref": "../common/identifier.json" } + }, + "leikaId": { + "type": "string", + "pattern": "^[0-9]{2}([0-9]{3}){1,4}$", + "description": "ID aus dem Leistungskatalog (Leika)" } }, "required": [ diff --git a/models/application/schema.json b/models/application/schema.json index f9859a37834f72982af56858f0d6e619b86a5971..b5d7ea288dd9141c2bccf56581245a2956cca374 100644 --- a/models/application/schema.json +++ b/models/application/schema.json @@ -4,15 +4,11 @@ "description": "Strukturinformationen zu übertragbaren oder übertragenen Daten.", "additionalProperties": false, "properties": { - "mime-type": { + "schemaId": { "type": "string", - "enum": [ - "json", - "xml" - ], - "description": "Gibt das zulässige Format (JSON oder XML) der Fachdaten an." + "description": "ID des Schemas, abhängig von der ausgewählten Quelle." }, - "schema-source": { + "schemaSource": { "type": "string", "enum": [ "fim", @@ -20,13 +16,32 @@ ], "description": "Quelle, von der das Schema bezogen werden kann." }, - "schema-id": { + "mimeType": { "type": "string", - "description": "ID des Schemas, abhängig von der ausgewählten Quelle." + "enum": [ + "json", + "xml" + ], + "description": "Gibt das zulässige Format (JSON oder XML) der Fachdaten an." } }, "required": [ - "mime-type", - "schema-source" - ] + "schemaSource", + "mimeType" + ], + "x-examples": { + "example-1": { + "mimeType": "json", + "schemaSource": "none" + }, + "example-2": { + "mimeType": "xml", + "schemaSource": "none" + }, + "example-3": { + "mimeType": "xml", + "schemaSource": "fim", + "schemaId": "S99000001V1.0" + } + } } \ No newline at end of file diff --git a/models/common/address-national.json b/models/common/address-national.json index a5b1bf9fc3730aa848cd6c1bf07cdbd5c0d0fb1e..6dd957511040b4547f9d318fb46a5333a579db7e 100644 --- a/models/common/address-national.json +++ b/models/common/address-national.json @@ -4,8 +4,8 @@ "x-examples": { "example-1": { "street": "Kurzer Weg", - "house-number": "7", - "postal-code": "12345", + "houseNumber": 7, + "postalCode": "12345", "city": "Ankh-Morpork" } }, @@ -18,7 +18,7 @@ "description": "Straße", "maxLength": 55 }, - "house-number": { + "houseNumber": { "type": [ "string", "integer" @@ -28,13 +28,13 @@ "pattern": "^[1-9][0-9]{0,3}(-[1-9][0-9]{0,3})?$", "minimum": 1 }, - "house-number-suffix": { + "houseNumberSuffix": { "type": "string", "description": "Hausnummerzusatz", "maxLength": 2, "pattern": "^[\\p{L}0-9. ]*$" }, - "postal-code": { + "postalCode": { "type": "string", "description": "Postleitzahl", "minLength": 5, @@ -46,25 +46,25 @@ "description": "Ort", "maxLength": 50 }, - "address-supplement": { + "addressSupplement": { "type": "string", "description": "Adresszusatz" } }, "required": [ "street", - "postal-code", + "postalCode", "city" ] }, { "additionalProperties": false, "properties": { - "post-office-box": { + "postOfficeBox": { "type": "string", "description": "Postfach" }, - "postal-code": { + "postalCode": { "type": "string", "description": "Postleitzahl", "minLength": 5, @@ -78,7 +78,7 @@ } }, "required": [ - "postal-code", + "postalCode", "city" ] } diff --git a/models/common/authentification-info.json b/models/common/authentification-info.json index 75d89e3db5aa7e6e75bc2f133edb1341a4f498d1..69665660f20d3c0efe97935ab60f6b9b65197870 100644 --- a/models/common/authentification-info.json +++ b/models/common/authentification-info.json @@ -2,7 +2,7 @@ "title": "authentification-info", "type": "object", "properties": { - "assurance-level": { + "assuranceLevel": { "type": "string", "enum": [ "low", @@ -10,10 +10,10 @@ "high" ] }, - "authentification-method": { + "authentificationMethod": { "type": "string" }, - "authentification-token": { + "authentificationToken": { "type": "object" }, "timestamp": { @@ -22,7 +22,7 @@ } }, "required": [ - "assurance-level", - "authentification-method" + "assuranceLevel", + "authentificationMethod" ] } \ No newline at end of file diff --git a/models/common/eID-natural-person.json b/models/common/eID-natural-person.json index f3bc1e130c2793a1abf5a0325e7bb67be4c07e66..429d6ce6a34158eb66c2563c6b2203cb6d378975 100644 --- a/models/common/eID-natural-person.json +++ b/models/common/eID-natural-person.json @@ -8,7 +8,7 @@ { "type": "object", "properties": { - "place-of-residence": { + "placeOfResidence": { "$ref": "./address-national.json" } } diff --git a/models/common/eID-org-acting-person.json b/models/common/eID-org-acting-person.json index 97bd6040bcf605c6ecbae63796dd8cd883e43005..ce2545555cbecc53314dfe5f74df4c1cd10b6196 100644 --- a/models/common/eID-org-acting-person.json +++ b/models/common/eID-org-acting-person.json @@ -2,11 +2,11 @@ "title": "Identity Information without Address", "type": "object", "properties": { - "place-of-birth": { + "placeOfBirth": { "type": "string", "description": "Geburtsort" }, - "date-of-birth": { + "dateOfBirth": { "type": "string", "format": "date", "description": "Geburtsdatum" @@ -25,23 +25,23 @@ "type": "string", "description": "Nationalität" }, - "artistic-name": { + "artisticName": { "type": "string", "description": "Künstler- oder Ordensname" }, - "doctoral-degrees": { + "doctoralDegrees": { "type": "string", "description": "Akademischer Titel, z.B. \"Dr.\" oder \"Prof.\"" }, - "birth-name": { + "birthName": { "type": "string", "description": "Geburtsname" }, - "given-name": { + "givenName": { "type": "string", "description": "Vorname(n)" }, - "family-name": { + "familyName": { "type": "string", "description": "Familienname" } diff --git a/models/common/identifier.json b/models/common/identifier.json index 2f3e7a2a2c2179e9887a40781a0491331deef375..25caf8da6d61b43412b2de520db4013a629563e5 100644 --- a/models/common/identifier.json +++ b/models/common/identifier.json @@ -5,16 +5,16 @@ "x-examples": { "example-1": { "id": "978-1-894049-23-8", - "schemeID": "ISBN" + "schemeId": "ISBN" }, "example-2": { "id": "99050012104000", "schemeURI": "https://www.xrepository.de/details/urn:de:gkleika:leika:leistung", "schemeDataURI": "https://www.xrepository.de/details/urn:de:gkleika:leika:leistung_20180705#version", - "schemeVersionID": "urn:de:gkleika:leika:leistung_20180705", + "schemeVersionId": "urn:de:gkleika:leika:leistung_20180705", "schemeAgencyName": "Geschäfts- und Koordinierungsstelle LeiKa beim Ministerium der Finanzen des Landes Sachsen-Anhalt (GK_LEIKA)", "schemeName": "Leistungen des LeiKa", - "schemeID": "urn:de:gkleika:leika:leistung" + "schemeId": "urn:de:gkleika:leika:leistung" } }, "properties": { @@ -32,7 +32,7 @@ "format": "uri", "description": "Link to the location of the list" }, - "schemeVersionID": { + "schemeVersionId": { "type": "string", "description": "Version of the scheme" }, @@ -40,7 +40,7 @@ "type": "string", "description": "Specifies the name of the ID issuer" }, - "schemeAgencyID": { + "schemeAgencyId": { "type": "string", "description": "Specifies the ID of the ID issuer" }, @@ -48,7 +48,7 @@ "type": "string", "description": "Name of the scheme" }, - "schemeID": { + "schemeId": { "type": "string", "description": "Identifices the ID type" } diff --git a/models/common/individual.json b/models/common/individual.json index 8bff8f18eda7863f7e06b5951f7183eb4b3f6b95..123e4cf7a80988145200bea3e1a5ef9cd4545c37 100644 --- a/models/common/individual.json +++ b/models/common/individual.json @@ -1,20 +1,38 @@ { "title": "Individual", "type": "object", + "description": "Natürliche Person", + "x-examples": { + "example-1": { + "formOfAddress": "Herr", + "academicTitle": "Dr.", + "firstName": "Werner", + "lastName": "Mustermann", + "contact": { + "telephone": [ + { + "number": "+49 89 32168-42", + "mobile": false, + "description": "Dienstliche Telefonnummer" + } + ] + } + } + }, "properties": { - "form-of-address": { + "formOfAddress": { "type": "string", "description": "Anrede der Person wie \"Herr\" oder \"Frau\"" }, - "academic-title": { + "academicTitle": { "type": "string", "description": "Titel der Person wie \"Dr.\" oder \"Prof.\"" }, - "first-name": { + "firstName": { "type": "string", "description": "Vorname der Person" }, - "last-name": { + "lastName": { "type": "string", "description": "Nachname der Person" }, @@ -62,23 +80,5 @@ } } } - }, - "description": "Natürliche Person", - "x-examples": { - "example-1": { - "form-of-address": "Herr", - "academic-title": "Dr.", - "first-name": "Werner", - "last-name": "Mustermann", - "contact": { - "telephone": [ - { - "number": "+49 89 32168-42", - "mobile": false, - "type": "work" - } - ] - } - } } } \ No newline at end of file diff --git a/models/destination-no-id.json b/models/destination-no-id.json index 6c08ac36ccb1c805cd556c50eb6d9a08b310ea38..8e9860a2eb02be8f745b9fdc278673e053930e1f 100644 --- a/models/destination-no-id.json +++ b/models/destination-no-id.json @@ -5,33 +5,33 @@ "x-examples": { "example-1": { "public-organization": { - "organization-name": "Gewerbeamt Musterhausen" + "organizationName": "Gewerbeamt Musterhausen" }, - "technical-contact": [ + "technicalContact": [ { - "first-name": "Werner", - "last-name": "Mustermann", + "firstName": "Werner", + "lastName": "Mustermann", "contact": { "telephone": [ { "number": "+49 89 32168-42", "mobile": false, - "type": "work" + "description": "Dienstliches Festnetz" } ] } } ], "callback": { - "callback-url": "https://www.example.com/callback" + "callbackURI": "https://www.example.com/callback" } } }, "properties": { - "public-organization": { + "publicOrganization": { "type": "object", "properties": { - "organization-name": { + "organizationName": { "type": "string" }, "address": { @@ -80,7 +80,7 @@ } } }, - "technical-contact": { + "technicalContact": { "type": "array", "description": "Technischer Ansprechpartner", "items": { @@ -98,14 +98,14 @@ "type": "object", "description": "Callback zur Benachrichtigung bei neuen Anträgen", "properties": { - "callback-url": { + "callbackURI": { "type": "string", "description": "URL auf die der Callback als POST durchgeführt wird", "format": "uri" } }, "required": [ - "callback-url" + "callbackURI" ] } } diff --git a/models/destination.json b/models/destination.json index 2c9bf0536dc33158c110020bc59a9a625033a9d7..763bb63ab1cb837242daa40035a1d4a36eadd500 100644 --- a/models/destination.json +++ b/models/destination.json @@ -4,14 +4,14 @@ { "type": "object", "properties": { - "destination-id": { + "destinationId": { "description": "Vom Zustelldienst für dieses Ziel vergebene ID. Wird beim Anlegen eines neuen Ziels leer gelassen.", "pattern": "^[-_.A-Za-z0-9]+$", "type": "string" } }, "required": [ - "destination-id" + "destinationId" ] }, { @@ -22,26 +22,26 @@ "x-examples": { "example-1": { "destination-id": "83578", - "organization": { - "organization-name": "Gewerbeamt Musterhausen" + "public-organization": { + "organizationName": "Gewerbeamt Musterhausen" }, - "technical-contact": [ + "technicalContact": [ { - "first-name": "Werner", - "last-name": "Mustermann", + "firstName": "Werner", + "lastName": "Mustermann", "contact": { "telephone": [ { "number": "+49 89 32168-42", "mobile": false, - "type": "work" + "description": "Dienstliches Festnetz" } ] } } ], "callback": { - "callback-url": "https://www.example.com/callback" + "callbackURI": "https://www.example.com/callback" } } } diff --git a/reference/callback.json b/reference/callback.json index 11f73e7e8bbe23332acbe8e186b0e4f763b222d7..4cac8683c37ae31842947617cc7d273b19882763 100644 --- a/reference/callback.json +++ b/reference/callback.json @@ -15,20 +15,19 @@ }, "servers": [ { - "url": "{callback-host}" + "url": "{callbackHost}" } ], "paths": { - "/{callback-path}": { + "/{callbackPath}": { "parameters": [ { "schema": { "type": "string" }, - "name": "callback-path", + "name": "callbackPath", "in": "path", - "required": true, - "description": "Dies ist nur ein Platzhalter. Die ganze Callback-URL ergibt sich aus der Angabe in der Destiantion." + "required": true } ], "post": { @@ -46,7 +45,7 @@ "schema": { "type": "object", "properties": { - "destination-id": { + "destinationId": { "type": "string" }, "applications": { @@ -54,7 +53,7 @@ "items": { "type": "object", "properties": { - "application-id": { + "applicationId": { "type": "string" } } @@ -65,10 +64,10 @@ "examples": { "example-1": { "value": { - "destination-id": "821", + "destinationId": "821", "applications": [ { - "application-id": "98472" + "applicationId": "98472" } ] } diff --git a/reference/sender.json b/reference/sender.json index 665e9994ce4e13f21f5e531439eba7b285ecb9c2..62d95e6a929b5f3ba5801588a8c00e5a83f9b11a 100644 --- a/reference/sender.json +++ b/reference/sender.json @@ -20,13 +20,13 @@ } ], "paths": { - "/{source-id}/{destination-id}/{application-id}/data": { + "/{sourceId}/{destinationId}/{applicationId}": { "parameters": [ { "schema": { "type": "string" }, - "name": "source-id", + "name": "sourceId", "in": "path", "required": true }, @@ -34,7 +34,7 @@ "schema": { "type": "string" }, - "name": "destination-id", + "name": "destinationId", "in": "path", "required": true }, @@ -42,17 +42,24 @@ "schema": { "type": "string" }, - "name": "application-id", + "name": "applicationId", "in": "path", "required": true } ], - "put": { - "summary": "Add Application Data", - "operationId": "add-application-data", + "post": { + "summary": "Send Application", + "operationId": "commit-application", "responses": { - "202": { - "description": "Accepted" + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "../models/status-overview.json" + } + } + } }, "400": { "description": "Bad Request", @@ -95,7 +102,7 @@ } }, "413": { - "description": "Request Entity Too Large - Übertragung zu groß", + "description": "Request Entity Too Large", "content": { "application/json": { "schema": { @@ -105,50 +112,18 @@ } } }, - "description": "Datensatz übertragen", + "description": "Übertragung abschließen, Antrag absenden", + "parameters": [], "requestBody": { "content": { "application/json": { - "schema": { - "type": "object", - "properties": {} - }, - "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": "" }, "tags": [ "Application Transfer" @@ -156,36 +131,20 @@ "security": [ { "API Key": [ - "{source-id}:application:apply", - "{source-id}:source:manage" + "{sourceId}:application:apply", + "{sourceId}:source:manage" ] } ] } }, - "/{source-id}/{destination-id}/{application-id}/docs/{doc-id}": { + "/{sourceId}/{destinationId}": { "parameters": [ { "schema": { "type": "string" }, - "name": "source-id", - "in": "path", - "required": true - }, - { - "schema": { - "type": "string" - }, - "name": "destination-id", - "in": "path", - "required": true - }, - { - "schema": { - "type": "string" - }, - "name": "application-id", + "name": "sourceId", "in": "path", "required": true }, @@ -193,30 +152,39 @@ "schema": { "type": "string" }, - "name": "doc-id", + "name": "destinationId", "in": "path", "required": true } ], - "put": { - "summary": "Add Application Document", - "operationId": "add-application-doc", + "post": { + "summary": "Create Application", + "operationId": "create-application", "responses": { - "202": { - "description": "Accepted" - }, - "400": { - "description": "Bad Request", + "201": { + "description": "Created", "content": { "application/json": { "schema": { - "$ref": "../models/error-body.json" + "type": "object", + "properties": { + "applicationId": { + "type": "string" + } + } + }, + "examples": { + "example-1": { + "value": { + "applicationId": "45bb5b95-d853-4fc5-b45d-10aa9e15287a" + } + } } } } }, - "401": { - "description": "Unauthorized", + "400": { + "description": "Bad Request", "content": { "application/json": { "schema": { @@ -225,8 +193,8 @@ } } }, - "403": { - "description": "Forbidden", + "401": { + "description": "Unauthorized", "content": { "application/json": { "schema": { @@ -235,8 +203,8 @@ } } }, - "404": { - "description": "Not Acceptable - Falsche doc-id", + "403": { + "description": "Forbidden", "content": { "application/json": { "schema": { @@ -245,8 +213,8 @@ } } }, - "410": { - "description": "Gone - Application-ID ungültig/Transfer-Timeout", + "406": { + "description": "Not Acceptable", "content": { "application/json": { "schema": { @@ -256,17 +224,7 @@ } }, "413": { - "description": "Request Entity Too Large - Attachment zu groß oder Gesamtübertragung zu groß", - "content": { - "application/json": { - "schema": { - "$ref": "../models/error-body.json" - } - } - } - }, - "415": { - "description": "Unsupported Media Type - Nicht unterstützter oder falscher Datentyp", + "description": "Request Entity Too Large", "content": { "application/json": { "schema": { @@ -276,72 +234,171 @@ } } }, - "description": "Lädt ein Antragsformuar oder einen Anhang hoch, um ihn dem Antrag hinzuzufügen.", "requestBody": { "content": { - "*/*": { + "application/json": { "schema": { - "type": "string", - "format": "binary" + "$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": [ - "{source-id}:application:apply", - "{source-id}:source:manage" + "{sourceId}:application:apply", + "{sourceId}:source:manage" ] } ] - } - }, - "/{source-id}/{application-id}/status": { - "parameters": [ - { - "schema": { - "type": "string" - }, - "name": "source-id", - "in": "path", - "required": true - }, - { - "schema": { - "type": "string" - }, - "name": "application-id", - "in": "path", - "required": true - } - ], + }, "get": { - "summary": "Get Status", - "tags": [ - "status" - ], + "summary": "Get Destination Info", + "operationId": "get-destination-info", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { - "type": "object", - "properties": { - "current": { - "$ref": "../models/status-overview.json" - }, - "history": { - "type": "array", - "items": { - "$ref": "../models/status-overview.json" - } - } - } + "$ref": "../models/destination.json" } } } @@ -387,25 +444,35 @@ } } }, - "operationId": "get-application-status", - "description": "Ruft den aktuellen Status der Übermittlung sowie einer Übersicht der bisherigen Übertragungshistorie ab.", + "description": "Ruft die Information über eine Destination ab", + "tags": [ + "Transfer related Information" + ], "security": [ { "API Key": [ - "{source-id}:status:read", - "{source-id}:source:manage" + "{sourceId}:destination-info:read", + "{sourceId}:source:manage" ] } ] } }, - "/{source-id}/{destination-id}/{application-id}/upload-status": { + "/{sourceId}/{destinationId}/{applicationId}/docs/{docId}": { "parameters": [ { "schema": { "type": "string" }, - "name": "source-id", + "name": "sourceId", + "in": "path", + "required": true + }, + { + "schema": { + "type": "string" + }, + "name": "destinationId", "in": "path", "required": true }, @@ -413,7 +480,7 @@ "schema": { "type": "string" }, - "name": "destination-id", + "name": "applicationId", "in": "path", "required": true }, @@ -421,76 +488,17 @@ "schema": { "type": "string" }, - "name": "application-id", + "name": "docId", "in": "path", "required": true } ], - "get": { - "summary": "Get Application Upload Status", + "put": { + "summary": "Add Application Document", + "operationId": "add-application-doc", "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": { - "doc-id": { - "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": [ - "doc-id", - "status", - "length" - ] - } - } - } - } - } - } + "202": { + "description": "Accepted" }, "400": { "description": "Bad Request", @@ -522,6 +530,16 @@ } } }, + "404": { + "description": "Not Acceptable", + "content": { + "application/json": { + "schema": { + "$ref": "../models/error-body.json" + } + } + } + }, "410": { "description": "Gone", "content": { @@ -531,30 +549,67 @@ } } } + }, + "413": { + "description": "Request Entity Too Large", + "content": { + "application/json": { + "schema": { + "$ref": "../models/error-body.json" + } + } + } + }, + "415": { + "description": "Unsupported Media Type", + "content": { + "application/json": { + "schema": { + "$ref": "../models/error-body.json" + } + } + } + } + }, + "description": "Lädt ein Antragsformuar oder einen Anhang hoch, um ihn dem Antrag hinzuzufügen.", + "requestBody": { + "content": { + "*/*": { + "schema": { + "type": "string", + "format": "binary" + } + } } }, - "operationId": "get-application-upload-status", - "description": "Abfrage des Übermittlungsstatus. Listet alle Unterresourcen (data und docs) mit Übermittlungsstatus auf.", "tags": [ - "Transfer related Information" + "Application Transfer" ], "security": [ { "API Key": [ - "{source-id}:application:apply", - "{source-id}:source:manage" + "{sourceId}:application:apply", + "{sourceId}:source:manage" ] } ] } }, - "/{source-id}/{destination-id}": { + "/{sourceId}/{destinationId}/{applicationId}/data": { "parameters": [ { "schema": { "type": "string" }, - "name": "source-id", + "name": "sourceId", + "in": "path", + "required": true + }, + { + "schema": { + "type": "string" + }, + "name": "destinationId", "in": "path", "required": true }, @@ -562,36 +617,17 @@ "schema": { "type": "string" }, - "name": "destination-id", + "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": { - "application-id": { - "type": "string" - } - } - }, - "examples": { - "example-1": { - "value": { - "application-id": "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": { @@ -644,142 +680,106 @@ } } }, + "description": "Datensatz übertragen", "requestBody": { "content": { "application/json": { "schema": { - "$ref": "../models/application/metadata-no-id.json" + "type": "object", + "properties": {} }, "examples": { "example-1": { "value": { - "additional-reference-info": { - "subject": "Anmeldung eines Gewerbes in Musterstadt", - "case-id": "DF/8923" - }, - "content-structure": { - "data": { - "schema": { - "mime-type": "json", - "schema-source": "none" - }, - "mime-type": "json" - }, - "docs": [ - { - "doc-id": "1", - "purpose": "form", - "size": 39273, - "mime": "application/pdf", - "filename": "antrag.pdf", - "description": "Das Antragsformular", - "lang": { - "lang": "de", - "region": "DE" - }, - "hash": { - "algorithm": "SHA-256", - "digest": "03ba204e50d126e4674c005e04d82e84c21366780af1f43bd54a37816b6ab340" - } - } - ] + "F99000001": "string", + "G99000001": { + "F99000002": "string", + "F99000003": 42 }, - "public-service-type": { - "name": "Gewerbeanmeldung", - "description": "Eine Gewerbeanmeldung ist immer dann notwendig, wenn Sie einen stehenden Gewerbebetrieb beginnen.", - "leika-id": "99050012104000", - "other-identifiers": [ - { - "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": [ + }, { - "authentification-info": { - "assurance-level": "high", - "authentification-method": "eID", - "timestamp": "2020-03-03T12:38:23Z" - }, - "identity-info": { - "date-of-birth": "1970-09-13", - "gender": "m", - "given-name": "WERNER", - "family-name": "MUSTERMANN", - "place-of-residence": { - "street": "KURZER WEG 7", - "postal-code": "12345", - "city": "ANKH-MORPORK" - } - }, - "contact-info": { - "electronic-adresses": [ - { - "channel-type": "Service-Account-Mailbox", - "address": "3b0c9c8c-0801-45f0-a331-2abfc9db78d0" - } - ], - "physical-adress": { - "street": "Kurzer Weg", - "house-number": "7", - "postal-code": "12345", - "city": "Ankh-Morpork" - }, - "telephone": [ - { - "number": "+49 89 32168-42", - "mobile": true, - "type": "work" - } - ] + "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" ], "security": [ { "API Key": [ - "{source-id}:application:apply", - "{source-id}:source:manage" + "{sourceId}:application:apply", + "{sourceId}:source:manage" ] } ] - }, + } + }, + "/{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" + } + } + } } } } @@ -825,27 +825,25 @@ } } }, - "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": [ - "{source-id}:destination-info:read", - "{source-id}:source:manage" + "{sourceId}:status:read", + "{sourceId}:source:manage" ] } ] } }, - "/{source-id}/{destination-id}/{application-id}": { + "/{sourceId}/{destinationId}/{applicationId}/upload-status": { "parameters": [ { "schema": { "type": "string" }, - "name": "source-id", + "name": "sourceId", "in": "path", "required": true }, @@ -853,7 +851,7 @@ "schema": { "type": "string" }, - "name": "destination-id", + "name": "destinationId", "in": "path", "required": true }, @@ -861,21 +859,73 @@ "schema": { "type": "string" }, - "name": "application-id", + "name": "applicationId", "in": "path", "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" + ] + } + } + } } } } @@ -911,17 +961,7 @@ } }, "410": { - "description": "Gone - Application-ID ungültig/Transfer-Timeout", - "content": { - "application/json": { - "schema": { - "$ref": "../models/error-body.json" - } - } - } - }, - "413": { - "description": "Request Entity Too Large - Gesamtübertragung zu groß", + "description": "Gone", "content": { "application/json": { "schema": { @@ -931,27 +971,16 @@ } } }, - "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": [ { "API Key": [ - "{source-id}:application:apply", - "{source-id}:source:manage" + "{sourceId}:application:apply", + "{sourceId}:source:manage" ] } ] @@ -977,10 +1006,10 @@ "clientCredentials": { "tokenUrl": "beispieltokenURL.de", "scopes": { - "{source-id}:application:apply": "Dieser Zugriffsbereich erlaubt es Anträge anzulegen, diesen zu aktualisieren und abzusenden.", - "{source-id}:status:read": "Dieser Zufriffsbereich erlaubt es auf Statusmitteilungen zu einem übersendeten Antrag abzurufen.", - "{source-id}:destination-info:read": "Dieser Zufriffsbereich erlaubt es Informationen von existierenden Destinationsabzurufen", - "{source-id}:source:manage": "Dieser Zufriffsbereich erlaubt es alle Endpunkte einer " + "{sourceId}:source:manage": "Dieser Zufriffsbereich erlaubt es alle Endpunkte einer ", + "{sourceId}:destination-info:read": "Dieser Zufriffsbereich erlaubt es Informationen von existierenden Destinationsabzurufen", + "{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 82e78946eb352d758697f1c7df8f09012c9b76cb..0db803b443935eb8289d2920ab5639c3c700d039 100644 --- a/reference/subscriber.json +++ b/reference/subscriber.json @@ -20,51 +20,59 @@ } ], "paths": { - "/{subscriber-id}/destinations/{destination-id}/applications/{application-id}/docs/{doc-id}": { + "/{subscriberId}/destinations": { "parameters": [ { "schema": { "type": "string" }, - "name": "subscriber-id", - "in": "path", - "required": true - }, - { - "schema": { - "type": "string" - }, - "name": "destination-id", - "in": "path", - "required": true - }, - { - "schema": { - "type": "string" - }, - "name": "application-id", - "in": "path", - "required": true - }, - { - "schema": { - "type": "string" - }, - "name": "doc-id", + "name": "subscriberId", "in": "path", "required": true } ], "get": { - "summary": "Get Application Document", + "summary": "List Destinations", "responses": { "200": { "description": "OK", "content": { - "*/*": { + "application/json": { "schema": { - "type": "string", - "format": "binary" + "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" + } + ] + } + } + ], + "callback": { + "callbackURI": "https://www.example.com/callback" + } + } + ] + } } } } @@ -98,9 +106,74 @@ } } } + } + }, + "operationId": "list-destinations", + "description": "Ruft die Liste aller Destinations dieses Accounts auf.", + "tags": [ + "Destination Management" + ], + "security": [ + { + "API Key": [ + "{subscriberId}:destination:read", + "{subscriberId}:manage", + "{subscriberId}:destination:manage" + ] + } + ] + }, + "post": { + "summary": "Create Destination", + "operationId": "create-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" + } + } + } + } + } }, - "404": { - "description": "Not Found", + "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": { @@ -110,29 +183,65 @@ } } }, - "operationId": "get-application-document", - "description": "Ruf ein Dokument (Formular oder Anlage) der Application ab.", + "description": "Legt eine neue Destination an.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "../models/destination-no-id.json" + }, + "examples": { + "example-1": { + "value": { + "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" + } + } + } + } + } + }, + "description": "Anzulegende Destination" + }, "tags": [ - "Application Retrieval" + "Destination Management" ], "security": [ { "API Key": [ - "{subscriber-id}:manage", - "{subscriber-id}:application:receive", - "{subscriber-id}:destination:{destination-id}:application:receive" + "{subscriberId}:manage", + "{subscriberId}:destination:manage", + "{subscriberId}:destination:create" ] } ] } }, - "/{subscriber-id}/destinations/{destination-id}/applications/{application-id}/data": { + "/{subscriberId}/destinations/{destinationId}/applications/{applicationId}/data": { "parameters": [ { "schema": { "type": "string" }, - "name": "subscriber-id", + "name": "subscriberId", "in": "path", "required": true }, @@ -140,7 +249,7 @@ "schema": { "type": "string" }, - "name": "destination-id", + "name": "destinationId", "in": "path", "required": true }, @@ -148,7 +257,7 @@ "schema": { "type": "string" }, - "name": "application-id", + "name": "applicationId", "in": "path", "required": true } @@ -234,21 +343,21 @@ "security": [ { "API Key": [ - "{subscriber-id}:manage", - "{subscriber-id}:application:receive", - "{subscriber-id}:destination:{destination-id}:application:receive" + "{subscriberId}:manage", + "{subscriberId}:application:receive", + "{subscriberId}:destination:{destinationId}:application:receive" ] } ] } }, - "/{subscriber-id}/destinations/{destination-id}/applications/{application-id}": { + "/{subscriberId}/destinations/{destinationId}/applications/{applicationId}/docs/{docId}": { "parameters": [ { "schema": { "type": "string" }, - "name": "subscriber-id", + "name": "subscriberId", "in": "path", "required": true }, @@ -256,7 +365,7 @@ "schema": { "type": "string" }, - "name": "destination-id", + "name": "destinationId", "in": "path", "required": true }, @@ -264,7 +373,113 @@ "schema": { "type": "string" }, - "name": "application-id", + "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}": { + "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 } @@ -282,22 +497,25 @@ "examples": { "example-1": { "value": { - "application-id": "7236", - "additional-reference-info": { + "applicationId": "7236", + "additionalReferenceInfo": { "subject": "Anmeldung eines Gewerbes in Musterstadt", - "case-id": "DF/8923" + "caseId": "DF/8923" }, - "content-structure": { + "contentStructure": { "data": { - "schema-id": "742", - "mime-type": "json" + "size": 9438, + "schema": { + "mimeType": "json", + "schemaSource": "none" + } }, "docs": [ { - "doc-id": "1", + "docId": "1", "purpose": "form", "size": 39273, - "mime": "application/pdf", + "mimeType": "application/pdf", "filename": "antrag.pdf", "description": "Das Antragsformular", "lang": { @@ -310,10 +528,10 @@ } }, { - "doc-id": "2", + "docId": "2", "purpose": "attachment", "size": 894834874, - "mime": "image/jpeg", + "mimeType": "image/jpeg", "filename": "scan.jpg", "description": "Scan der Bescheinigung", "hash": { @@ -323,11 +541,11 @@ } ] }, - "public-service-type": { + "publicServiceType": { "name": "Gewerbeanmeldung", "description": "Eine Gewerbeanmeldung ist immer dann notwendig, wenn Sie einen stehenden Gewerbebetrieb beginnen.", - "leika-id": "99050012104000", - "other-identifiers": [ + "leikaId": "99050012104000", + "otherIdentifiers": [ { "id": "8664844", "schemeURI": "service.niedersachsen.de", @@ -342,28 +560,59 @@ }, "applicants": [ { - "person": { - "form-of-address": "Herr", - "academic-title": "Dr.", - "first-name": "Werner", - "last-name": "Mustermann" - }, - "identification": { - "authentication": { - "assurance-level": "high", - "authentification-method": "eID", - "timestamp": "2020-03-03T12:38:23Z" + "identifier": [ + { + "id": "918", + "schemeName": "Antragsportal", + "schemeId": "urn:com:example:antragsportal:user" + } + ], + "contactInfo": { + "physicalAddress": { + "street": "Kurzer Weg", + "houseNumber": 7, + "postalCode": "12345", + "city": "string", + "addressSupplement": "string" }, - "authenticated-data": { - "family-name": "MUSTERMANN", - "given-name": "WERNER", - "date-of-birth": "13091970", - "place-of-resicence": { - "street": "KURZER WEG 7", - "postal-code": "12345", - "city": "ANKH-MORPORK" + "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" } } ], @@ -430,9 +679,9 @@ "security": [ { "API Key": [ - "{subscriber-id}:manage", - "{subscriber-id}:application:receive", - "{subscriber-id}:destination:{destination-id}:application:receive" + "{subscriberId}:manage", + "{subscriberId}:application:receive", + "{subscriberId}:destination:{destinationId}:application:receive" ] } ] @@ -485,7 +734,7 @@ } }, "417": { - "description": "Expectation Failed - Status passt nicht", + "description": "Expectation Failed", "content": { "application/json": { "schema": { @@ -518,21 +767,21 @@ "security": [ { "API Key": [ - "{subscriber-id}:manage", - "{subscriber-id}:application:receive", - "{subscriber-id}:destination:{destination-id}:application:receive" + "{subscriberId}:manage", + "{subscriberId}:application:receive", + "{subscriberId}:destination:{destinationId}:application:receive" ] } ] } }, - "/{subscriber-id}/destinations/{destination-id}/applications": { + "/{subscriberId}/destinations/{destinationId}/applications": { "parameters": [ { "schema": { "type": "string" }, - "name": "subscriber-id", + "name": "subscriberId", "in": "path", "required": true }, @@ -540,7 +789,7 @@ "schema": { "type": "string" }, - "name": "destination-id", + "name": "destinationId", "in": "path", "required": true } @@ -566,22 +815,25 @@ "example-2": { "value": [ { - "application-id": "7236", - "additional-reference-info": { + "applicationId": "7236", + "additionalReferenceInfo": { "subject": "Anmeldung eines Gewerbes in Musterstadt", - "case-id": "DF/8923" + "caseId": "DF/8923" }, - "content-structure": { + "contentStructure": { "data": { - "schema-id": "742", - "mime-type": "json" + "size": 9438, + "schema": { + "mimeType": "json", + "schemaSource": "none" + } }, "docs": [ { - "doc-id": "1", + "docId": "1", "purpose": "form", "size": 39273, - "mime": "application/pdf", + "mimeType": "application/pdf", "filename": "antrag.pdf", "description": "Das Antragsformular", "lang": { @@ -594,10 +846,10 @@ } }, { - "doc-id": "2", + "docId": "2", "purpose": "attachment", "size": 894834874, - "mime": "image/jpeg", + "mimeType": "image/jpeg", "filename": "scan.jpg", "description": "Scan der Bescheinigung", "hash": { @@ -607,11 +859,11 @@ } ] }, - "public-service-type": { + "publicServiceType": { "name": "Gewerbeanmeldung", "description": "Eine Gewerbeanmeldung ist immer dann notwendig, wenn Sie einen stehenden Gewerbebetrieb beginnen.", - "leika-id": "99050012104000", - "other-identifiers": [ + "leikaId": "99050012104000", + "otherIdentifiers": [ { "id": "8664844", "schemeURI": "service.niedersachsen.de", @@ -626,28 +878,59 @@ }, "applicants": [ { - "person": { - "form-of-address": "Herr", - "academic-title": "Dr.", - "first-name": "Werner", - "last-name": "Mustermann" - }, - "identification": { - "authentication": { - "assurance-level": "high", - "authentification-method": "eID", - "timestamp": "2020-03-03T12:38:23Z" + "identifier": [ + { + "id": "918", + "schemeName": "Antragsportal", + "schemeId": "urn:com:example:antragsportal:user" + } + ], + "contactInfo": { + "physicalAddress": { + "street": "Kurzer Weg", + "houseNumber": 7, + "postalCode": "12345", + "city": "string", + "addressSupplement": "string" }, - "authenticated-data": { - "family-name": "MUSTERMANN", - "given-name": "WERNER", - "date-of-birth": "13091970", - "place-of-resicence": { - "street": "KURZER WEG 7", - "postal-code": "12345", - "city": "ANKH-MORPORK" + "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" } } ], @@ -714,21 +997,21 @@ "security": [ { "API Key": [ - "{subscriber-id}:manage", - "{subscriber-id}:application:receive", - "{subscriber-id}:destination:{destination-id}:application:receive" + "{subscriberId}:manage", + "{subscriberId}:application:receive", + "{subscriberId}:destination:{destinationId}:application:receive" ] } ] } }, - "/{subscriber-id}/destinations/{destination-id}": { + "/{subscriberId}/destinations/{destinationId}": { "parameters": [ { "schema": { "type": "string" }, - "name": "destination-id", + "name": "destinationId", "in": "path", "required": true }, @@ -736,7 +1019,7 @@ "schema": { "type": "string" }, - "name": "subscriber-id", + "name": "subscriberId", "in": "path", "required": true } @@ -754,36 +1037,27 @@ "examples": { "example-1": { "value": { - "destination-id": "52", - "organization": { - "organization-name": "Umweltamt Ankh-Morpork", - "address": { - "street": "Kurzer Weg", - "houseNr": "7", - "postalCode": "12345", - "city": "Ankh-Morpork" - }, - "contact": { - "telephone": { - "number": "+49 89 32168-0", - "type": "work" - }, - "email": "behoerde@example.com" - } + "destination-id": "83578", + "public-organization": { + "organizationName": "Gewerbeamt Musterhausen" }, - "technical-contact": { - "formOfAddress": "Herr", - "academicTitle": "Dr.", - "firstName": "Kunibert", - "lastName": "Vonundzu", - "contact": { - "telephone": { - "number": "+49 89 32168-42", - "mobile": "+49 123 456789", - "type": "work" - }, - "email": "kunibert.vonundzu@example.com" + "technicalContact": [ + { + "firstName": "Werner", + "lastName": "Mustermann", + "contact": { + "telephone": [ + { + "number": "+49 89 32168-42", + "mobile": false, + "description": "Dienstliches Festnetz" + } + ] + } } + ], + "callback": { + "callbackURI": "https://www.example.com/callback" } } } @@ -840,10 +1114,10 @@ "security": [ { "API Key": [ - "{subscriber-id}:destination:read", - "{subscriber-id}:destination:manage", - "{subscriber-id}:manage", - "{subscriber-id}:destination:{destination-id}:read" + "{subscriberId}:destination:read", + "{subscriberId}:destination:manage", + "{subscriberId}:manage", + "{subscriberId}:destination:{destinationId}:read" ] } ] @@ -907,26 +1181,26 @@ "example-1": { "value": { "destination-id": "83578", - "organization": { - "organization-name": "Gewerbeamt Musterhausen" + "public-organization": { + "organizationName": "Gewerbeamt Musterhausen" }, - "technical-contact": [ + "technicalContact": [ { - "first-name": "Werner", - "last-name": "Mustermann", + "firstName": "Werner", + "lastName": "Mustermann", "contact": { "telephone": [ { "number": "+49 89 32168-42", "mobile": false, - "type": "work" + "description": "Dienstliches Festnetz" } ] } } ], "callback": { - "callback-url": "https://www.example.com/callback" + "callbackURI": "https://www.example.com/callback" } } } @@ -940,10 +1214,10 @@ "security": [ { "API Key": [ - "{subscriber-id}:manage", - "{subscriber-id}:destination:update", - "{subscriber-id}:destination:manage", - "{subscriber-id}:destination:{destination-id}:update" + "{subscriberId}:manage", + "{subscriberId}:destination:update", + "{subscriberId}:destination:manage", + "{subscriberId}:destination:{destinationId}:update" ] } ] @@ -1003,251 +1277,10 @@ "security": [ { "API Key": [ - "{subscriber-id}:manage", - "{subscriber-id}:destination:manage", - "{subscriber-id}:destination:delete", - "{subscriber-id}:destination:{destination-id}:delete" - ] - } - ] - } - }, - "/{subscriber-id}/destinations": { - "parameters": [ - { - "schema": { - "type": "string" - }, - "name": "subscriber-id", - "in": "path", - "required": true - } - ], - "get": { - "summary": "List Destinations", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "../models/destination.json" - } - }, - "examples": { - "example-1": { - "value": [ - { - "destination-id": "83578", - "organization": { - "organization-name": "Gewerbeamt Musterhausen" - }, - "technical-contact": [ - { - "first-name": "Werner", - "last-name": "Mustermann", - "contact": { - "telephone": [ - { - "number": "+49 89 32168-42", - "mobile": false, - "type": "work" - } - ] - } - } - ], - "callback": { - "callback-url": "https://www.example.com/callback" - } - } - ] - } - } - } - } - }, - "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" - } - } - } - } - }, - "operationId": "list-destinations", - "description": "Ruft die Liste aller Destinations dieses Accounts auf.", - "tags": [ - "Destination Management" - ], - "security": [ - { - "API Key": [ - "{subscriber-id}:destination:read", - "{subscriber-id}:manage", - "{subscriber-id}:destination:manage" - ] - } - ] - }, - "post": { - "summary": "Create Destination", - "operationId": "create-destination", - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "destination-id": { - "type": "string" - } - }, - "required": [ - "destination-id" - ] - }, - "examples": { - "example-1": { - "value": { - "destination-id": "e15fc92e-c286-424b-9802-39c6b6bc441d" - } - } - } - } - } - }, - "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" - } - } - } - } - }, - "description": "Legt eine neue Destination an.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "../models/destination-no-id.json" - }, - "examples": { - "example-1": { - "value": { - "public-organization": { - "organization-name": "Gewerbeamt Musterstadt", - "address": { - "street": "Kurzer Weg", - "houseNr": "7", - "postalCode": "12345", - "city": "Ankh-Morpork" - }, - "contact": { - "telephone": { - "number": "+49 89 32168-0", - "mobile": false, - "type": "work" - }, - "email": "behoerde@example.com" - } - }, - "technical-contact": { - "formOfAddress": "Herr", - "academicTitle": "Dr.", - "firstName": "Kunibert", - "lastName": "Vonundzu", - "contact": { - "telephone": [ - { - "number": "+49 89 32168-42", - "mobile": false, - "type": "work" - }, - { - "number": "+49 123 456789", - "mobile": true, - "type": "work" - } - ], - "email": "kunibert.vonundzu@example.com" - } - }, - "schemas": [ - { - "mime-type": "json", - "schema-source": "none" - } - ], - "callback": { - "callback-url": "https://www.example.com/callback" - } - } - } - } - } - }, - "description": "Anzulegende Destination" - }, - "tags": [ - "Destination Management" - ], - "security": [ - { - "API Key": [ - "{subscriber-id}:manage", - "{subscriber-id}:destination:manage", - "{subscriber-id}:destination:create" + "{subscriberId}:manage", + "{subscriberId}:destination:manage", + "{subscriberId}:destination:delete", + "{subscriberId}:destination:{destinationId}:delete" ] } ] @@ -1271,17 +1304,17 @@ "tokenUrl": "", "refreshUrl": "", "scopes": { - "{subscriber-id}:destination:read": "Dieser Zugriffsbereich erlaubt bei allen Destination-Informationen ein lesender Zugriff.", - "{subscriber-id}:destination:create": "Der Zugriffsbereich erlaubt Destinations neu anzulegen und zu verändern.", - "{subscriber-id}:destination:update": "Dieser Zugriffsbereich erlaubt es, bestehende Destinations zu verändern.", - "{subscriber-id}:destination:manage": "Dieser Zugriffsbereich alle Destination Endpunkte eines Subscriber genutzt werden.", - "{subscriber-id}:destination:{destination-id}:read": "Mit diesem Zugriffsbereich wird ein lesender Zugriff auf eine spezifische Destination ermöglicht.", - "{subscriber-id}:destination:{destination-id}:update": "Mit diesem Zugriffsbereich wird ein schreibende Zugriff auf eine spezifische Destination ermöglicht.", - "{subscriber-id}:application:receive": "Dieser Zugriffsbereich erlaubt es, Anträge für allen Destinations abzuholen.", - "{subscriber-id}:destination:{destination-id}:application:receive": "Dieser Zugriffsbereich erlaubt es, Anträge einer spezifischen Destination abzuholen.", - "{subscriber-id}:manage": "Dieser Zugriffsbereich die vollständige Nutzung aller Endpunkte eines Subscribers.", - "{subscriber-id}:destination:delete": "Dieser Zugriffsbereich erlaubt die Löschung von Destinations eines Accounts.", - "{subscriber-id}:destination:{destination-id}:delete": "Dieser Zugriffsbereich erlaubt es, eine spezifische Destination zu löschen." + "{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: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." } } },