From e7a05b733f35bad057729b5fdcef960dc2001472 Mon Sep 17 00:00:00 2001 From: Marcus Fey Date: Mon, 22 Jan 2024 12:09:35 +0100 Subject: [PATCH 01/13] fix links from idp.adoc to internal requirements documents --- docs/IDP/idp.adoc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/IDP/idp.adoc b/docs/IDP/idp.adoc index fb1f4172..40934010 100644 --- a/docs/IDP/idp.adoc +++ b/docs/IDP/idp.adoc @@ -24,8 +24,8 @@ Der zentrale *IDP-Dienst* der gematik (*[gemSpec_IDP_Dienst]*) ermöglicht die s Der zentrale *IDP-Dienst* der gematik wird im Rahmen des *TI-Messenger-Dienstes* in den folgenden Anwendungsfällen benötigt: -* link:https://github.com/gematik/api-ti-messenger/blob/feature/C_11306/docs/anwendungsfaelle/MS-AF10103-authentisieren-organisation.adoc[AF_10103 - Authentisieren einer Organisation am TI-Messenger-Dienst] -* link:https://github.com/gematik/api-ti-messenger/blob/feature/C_11306/docs/anwendungsfaelle/VZD-AF10058-practitioner-hinzufuegen.adoc[AF_10058 - Akteur (User-HBA) im Verzeichnisdienst hinzufügen] +* link:https://github.com/gematik/api-ti-messenger/blob/main/docs/anwendungsfaelle/MS-AF10103-authentisieren-organisation.adoc[AF_10103 - Authentisieren einer Organisation am TI-Messenger-Dienst] +* link:https://github.com/gematik/api-ti-messenger/blob/main/docs/anwendungsfaelle/VZD-AF10058-practitioner-hinzufuegen.adoc[AF_10058 - Akteur (User-HBA) im Verzeichnisdienst hinzufügen] In den folgenden Kapiteln werden die notwendigen Maßnahmen / Abläufe beschrieben, um die in den Anwendungsfällen geforderte Authentifizierung via OpenID Connect durchführen zu können. @@ -321,7 +321,7 @@ TIP: Der Token-Endpunkt DARF `ID_TOKEN` mit einer Gültigkeitsdauer von mehr als Im ersten Schritt entschlüsselt die *Relying Party* das `ID_TOKEN` mit seinem selbst erzeugten 256-Bit AES-Schlüssel (`Token-Key`). Anschließend erfolgt die Signaturprüfung mit dem `PuK_IDP_SIG` des *IDP-Dienstes*. == Authorization Code Flow -In dem folgenden Sequenzdiagramm ist beispielhaft der Ablauf des Authorization Code Flow für den Anwendungsfall link:https://github.com/gematik/api-ti-messenger/blob/feature/C_11306/docs/anwendungsfaelle/MS-AF10103-authentisieren-organisation.adoc[AF_10103 - Authentisieren einer Organisation am TI-Messenger-Dienst] dargestellt. Im Kontext des *TI-Messenger-Dienstes* ist der *Registrierungs-Diens* die *Relying Party*. Als *Authenticator* wird der von der gematik bereitgestellte *Authenticator* verwendet. +In dem folgenden Sequenzdiagramm ist beispielhaft der Ablauf des Authorization Code Flow für den Anwendungsfall link:https://github.com/gematik/api-ti-messenger/blob/main/docs/anwendungsfaelle/MS-AF10103-authentisieren-organisation.adoc[AF_10103 - Authentisieren einer Organisation am TI-Messenger-Dienst] dargestellt. Im Kontext des *TI-Messenger-Dienstes* ist der *Registrierungs-Diens* die *Relying Party*. Als *Authenticator* wird der von der gematik bereitgestellte *Authenticator* verwendet. CAUTION: Der von der gematik bereitgestellte Authenticator wird nicht in Verbindung mit einer Web-Anwendung empfohlen, da vom Authenticator ein neuer Browser Tab geöffnet wird. Entsprechend der Fachanwendung wird im Browser eine HTML-Seite oder ein Json-Objekt(VZD-FHIR Response) angezeigt. From 6f7d025cae6be907a58453e2309067cd015611bc Mon Sep 17 00:00:00 2001 From: Beff42 <83531917+Beff42@users.noreply.github.com> Date: Fri, 16 Feb 2024 10:48:47 +0100 Subject: [PATCH 02/13] =?UTF-8?q?Adds=20better=20documentation=20of=20wher?= =?UTF-8?q?e=20the=20mxid=20is=20required=20in=20its=20url=20fo=E2=80=A6?= =?UTF-8?q?=20(#228)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Adds better documentation of where the mxid is required in its url format --------- Co-authored-by: TVRiddle <44850999+TVRiddle@users.noreply.github.com> --- ReleaseNotes.md | 6 ++++++ src/openapi/TiMessengerTestTreiber.yaml | 16 ++++++++++------ 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/ReleaseNotes.md b/ReleaseNotes.md index 2033c104..f673c00b 100644 --- a/ReleaseNotes.md +++ b/ReleaseNotes.md @@ -2,6 +2,12 @@ # Release Notes api-ti-messenger +## Hotfix 1.1.1-5 + +### added + +- Additional examples and documentation for using the uri scheme of the matrix id (see https://spec.matrix.org/v1.3/appendices/#matrix-uri-scheme) in the FHIR directory. + ## Hotfix 1.1.1-4 ### changed diff --git a/src/openapi/TiMessengerTestTreiber.yaml b/src/openapi/TiMessengerTestTreiber.yaml index b8e45864..08fa41ba 100644 --- a/src/openapi/TiMessengerTestTreiber.yaml +++ b/src/openapi/TiMessengerTestTreiber.yaml @@ -786,6 +786,7 @@ paths: description: "MxId of account" schema: type: string + example: @someone:gematik.de responses: "200": @@ -844,9 +845,10 @@ paths: type: string - name: contactMxid in: query - description: "MXID of the Organization.contact." + description: "MXID of the Organization.contact in uri scheme." schema: type: string + example: matrix:u/someone:gematik.de - name: contactName in: query description: "Name of the Organization.contact." @@ -892,9 +894,10 @@ paths: type: string - name: mxId in: query - description: "MxId standing in address field of the endpoint" + description: "MxId (in uri scheme) standing in address field of the endpoint" schema: type: string + example: matrix:u/someone:gematik.de responses: "200": @@ -948,9 +951,10 @@ paths: type: string - name: mxid in: query - description: "MXID of the Practitioner." + description: "MXID of the Practitioner in uri scheme." schema: type: string + example: matrix:u/someone:gematik.de responses: "200": @@ -2316,7 +2320,7 @@ components: $ref: "#/components/schemas/HomeserverSearchResult" HomeserverSearchResult: - description: "A flat description of an endpoint with belonging healthcare-serviceand organization" + description: "A flat description of an endpoint with belonging healthcare-service and organization" readOnly: true type: object properties: @@ -2562,9 +2566,9 @@ components: example: "active" enum: [ active, suspended, inactive ] address: - description: "For endpoint in tim context the mxid" + description: "For endpoint in tim context the mxid in uri scheme" type: string - example: "@test:gematik.de" + example: "matrix:u/test:gematik.de" connectionType: $ref: "#/components/schemas/FhirConnectionType" payloadType: From 2e999ca40079945ede0c23bdeeb934d8b59f5d03 Mon Sep 17 00:00:00 2001 From: "stefanie.boxhorn" Date: Tue, 27 Feb 2024 09:23:12 +0100 Subject: [PATCH 03/13] Fixes issue with code generation --- ReleaseNotes.md | 6 ++++++ src/openapi/TiMessengerTestTreiber.yaml | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/ReleaseNotes.md b/ReleaseNotes.md index f673c00b..75a35680 100644 --- a/ReleaseNotes.md +++ b/ReleaseNotes.md @@ -2,6 +2,12 @@ # Release Notes api-ti-messenger +## Hotfix 1.1.1-6 + +### fixed + +- Fixed formatting issue in the api yaml, that prevented automated code generation. + ## Hotfix 1.1.1-5 ### added diff --git a/src/openapi/TiMessengerTestTreiber.yaml b/src/openapi/TiMessengerTestTreiber.yaml index 08fa41ba..31142bf1 100644 --- a/src/openapi/TiMessengerTestTreiber.yaml +++ b/src/openapi/TiMessengerTestTreiber.yaml @@ -786,7 +786,7 @@ paths: description: "MxId of account" schema: type: string - example: @someone:gematik.de + example: "@someone:gematik.de" responses: "200": From bdc43ca67c8c2fc3feb788953a580a4bb6302f13 Mon Sep 17 00:00:00 2001 From: "andre.wagner" Date: Thu, 28 Mar 2024 10:04:52 +0100 Subject: [PATCH 04/13] new tags in TiMessengerTestTreiber.yaml --- ReleaseNotes.md | 6 + src/openapi/TiMessengerTestTreiber.yaml | 511 ++++++++++++++---------- 2 files changed, 310 insertions(+), 207 deletions(-) diff --git a/ReleaseNotes.md b/ReleaseNotes.md index 75a35680..a72063ae 100644 --- a/ReleaseNotes.md +++ b/ReleaseNotes.md @@ -2,6 +2,12 @@ # Release Notes api-ti-messenger +## Hotfix 1.1.1-7 + +### changed + + - new tags in TiMessengerTestTreiber.yaml + ## Hotfix 1.1.1-6 ### fixed diff --git a/src/openapi/TiMessengerTestTreiber.yaml b/src/openapi/TiMessengerTestTreiber.yaml index 31142bf1..6285a5e9 100644 --- a/src/openapi/TiMessengerTestTreiber.yaml +++ b/src/openapi/TiMessengerTestTreiber.yaml @@ -2,7 +2,7 @@ openapi: 3.0.3 info: title: TiMessengerTestDriver description: REST interface to automate the test of a TI-Messenger client implementation. - version: 0.9.4 + version: 0.9.5 contact: name: gematik GmbH email: software-development@gematik.de @@ -65,11 +65,19 @@ tags: description: contact management operations - name: media description: media file upload and download + - name: authorizationManagement + description: authorization management operations + - name: TI-M Pro + description: all operations used in TI-Messenger Pro and TI-Messenger Version 1.1.x + - name: TI-M_ePA + description: all operations used in TI-Messenger ePA paths: /: get: tags: + - TI-M Pro + - TI-M_ePA - info description: Returns the meta data of this interface. operationId: getInfo @@ -87,6 +95,8 @@ paths: post: tags: + - TI-M Pro + - TI-M_ePA - signalTestStart description: Implementation is optional! Testsuite sends a request to the org-admin endpoint of each involved homeserver (even if the org-admin is not named in the feature-file). There will be no claiming attempt before triggering this endpoint. After getting any response the testcase starts. This is an opportunity for the org-admin to clean user/rooms/FHIR-VZD etc. Even if errorcode returned the testsuite will start the test. operationId: cleanUp @@ -103,6 +113,8 @@ paths: /devices: get: tags: + - TI-M Pro + - TI-M_ePA - devices description: "Returns the connected devices and the information of the deposited HBA/SMC-B if existing" operationId: getDevices @@ -123,6 +135,8 @@ paths: post: tags: + - TI-M Pro + - TI-M_ePA - devices description: "Claims a device for exclusive use." operationId: claimDevice @@ -153,6 +167,8 @@ paths: post: tags: + - TI-M Pro + - TI-M_ePA - devices description: "Unclaims a previously claimed device." operationId: unclaimDevice @@ -172,6 +188,36 @@ paths: default: $ref: "#/components/responses/DefaultResponse" + /devices/{deviceId}/account: + parameters: + - $ref: "#/components/parameters/deviceId" + - $ref: "#/components/parameters/transactionIdHeader" + + get: + tags: + - TI-M Pro + - TI-M_ePA + - account + description: "Returns the account data or if no account is registered returns the authentication flows supported by the homeserver." + operationId: readAccount + responses: + "200": + description: "account data of the logged in account" + content: + application/json: + schema: + $ref: "#/components/schemas/Account" + "400": + $ref: "#/components/responses/BadRequest" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + default: + $ref: "#/components/responses/DefaultResponse" + /devices/{deviceId}/login: parameters: - $ref: "#/components/parameters/deviceId" @@ -180,6 +226,8 @@ paths: get: description: "Retrieve list of possible authentication flows" tags: + - TI-M Pro + - TI-M_ePA - login/logout operationId: getLoginOptions responses: @@ -203,6 +251,8 @@ paths: post: description: "login to an account. If no login data is provided, a preconfigured account should be used. In case the device has a HBA/SMC-B its data should be used" tags: + - TI-M Pro + - TI-M_ePA - login/logout operationId: login requestBody: @@ -236,6 +286,8 @@ paths: post: description: "logout" tags: + - TI-M Pro + - TI-M_ePA - login/logout operationId: logout responses: @@ -250,34 +302,6 @@ paths: default: $ref: "#/components/responses/DefaultResponse" - /devices/{deviceId}/account: - parameters: - - $ref: "#/components/parameters/deviceId" - - $ref: "#/components/parameters/transactionIdHeader" - - get: - tags: - - account - description: "Returns the account data or if no account is registered returns the authentication flows supported by the homeserver." - operationId: readAccount - responses: - "200": - description: "account data of the logged in account" - content: - application/json: - schema: - $ref: "#/components/schemas/Account" - "400": - $ref: "#/components/responses/BadRequest" - "401": - $ref: "#/components/responses/Unauthorized" - "403": - $ref: "#/components/responses/Forbidden" - "404": - $ref: "#/components/responses/NotFound" - default: - $ref: "#/components/responses/DefaultResponse" - /devices/{deviceId}/account/key: parameters: - $ref: "#/components/parameters/deviceId" @@ -285,6 +309,8 @@ paths: get: tags: + - TI-M Pro + - TI-M_ePA - keyExchange description: "Exports secret key for device synchronization. The key could be in any format but has to be understood by every provided test-driver-api per distributor!" operationId: keyExport @@ -304,6 +330,8 @@ paths: post: tags: + - TI-M Pro + - TI-M_ePA - keyExchange description: "Imports secret key and execute synchronization" operationId: keyImport @@ -322,38 +350,14 @@ paths: default: $ref: "#/components/responses/DefaultResponse" - - /devices/{deviceId}/fhir/fhirAuthenticate: - parameters: - - $ref: "#/components/parameters/deviceId" - - $ref: "#/components/parameters/transactionIdHeader" - - post: - tags: - #- orgAdminFhirAdministration - - practitionerFhirAdministration - description: "This request starts the OIDC authentication for getting access to change the own FHIR entry." - operationId: authenticateOnFhirDirectory - responses: - "200": - description: "OIDC flow with IDP successfully completed" - "401": - $ref: "#/components/responses/Unauthorized" - "403": - $ref: "#/components/responses/Forbidden" - "404": - $ref: "#/components/responses/NotFound" - "501": - description: "Unimplemented - if the underlying client does not support FHIR-VZD authentication" - default: - $ref: "#/components/responses/DefaultResponse" - /devices/{deviceId}/fhir/org: parameters: - $ref: "#/components/parameters/deviceId" - $ref: "#/components/parameters/transactionIdHeader" get: tags: + - TI-M Pro + - TI-M_ePA - orgAdminFhirOrganization description: "Get organization from the selected device" operationId: getOrganization @@ -374,6 +378,7 @@ paths: get: tags: + - TI-M Pro - orgAdminFhirHealthcareService description: "Get healthcareServices regarding the organization that belongs to the claimed device (the search result could also contain all other resources that are related with it. @@ -391,6 +396,7 @@ paths: post: tags: + - TI-M Pro - orgAdminFhirHealthcareService description: "Created new healthcare-service and returns the ressource of the created healthcareService" operationId: createHealthcareService @@ -419,6 +425,7 @@ paths: get: tags: + - TI-M Pro - orgAdminFhirHealthcareService description: "Get specific healthcareService regarding" operationId: getHealthcareService @@ -436,6 +443,7 @@ paths: put: tags: + - TI-M Pro - orgAdminFhirHealthcareService description: "Changes healthcareService accordingly" operationId: updateHealthcareService @@ -460,6 +468,7 @@ paths: delete: tags: + - TI-M Pro - orgAdminFhirHealthcareService description: "Delete specific healthcareService regarding" operationId: deleteHealthcareService @@ -471,7 +480,7 @@ paths: default: $ref: "#/components/responses/DefaultResponse" - /devices/{deviceId}/fhir/org/healthcareService/{hsId}/location: + /devices/{deviceId}/fhir/org/healthcareService/{hsId}/endpoint: parameters: - $ref: "#/components/parameters/deviceId" - $ref: "#/components/parameters/transactionIdHeader" @@ -479,14 +488,15 @@ paths: get: tags: - - orgAdminFhirLocations - description: "Get all locations for healthcare service + - TI-M Pro + - orgAdminFhirEndpoints + description: "Get all endpoints for healthcare-service. (the search result could also contain all other resources that are related with it. Please ensure that the searched resources are included at any time!)" - operationId: getLocations + operationId: getEndpoints responses: "200": - description: "Successfully get all locations for healthcare service" + description: "Successfully get all endpoints for healthcare service" content: application/json: schema: @@ -498,21 +508,22 @@ paths: post: tags: - - orgAdminFhirLocations - description: "Create location and return the created resource" - operationId: createLocation + - TI-M Pro + - orgAdminFhirEndpoints + description: "Create endpoint" + operationId: createEndpoint requestBody: content: application/json: schema: - $ref: "#/components/schemas/FhirLocation" + $ref: "#/components/schemas/FhirEndpoint" responses: "201": description: "Successful created" content: application/json: schema: - $ref: "#/components/schemas/FhirLocation" + $ref: "#/components/schemas/FhirEndpoint" "400": $ref: "#/components/responses/BadRequest" "404": @@ -520,25 +531,26 @@ paths: default: $ref: "#/components/responses/DefaultResponse" - /devices/{deviceId}/fhir/org/healthcareService/{hsId}/location/{locId}: + /devices/{deviceId}/fhir/org/healthcareService/{hsId}/endpoint/{endId}: parameters: - $ref: "#/components/parameters/deviceId" - $ref: "#/components/parameters/transactionIdHeader" - $ref: "#/components/parameters/healthcareServiceId" - - $ref: "#/components/parameters/locationId" + - $ref: "#/components/parameters/endpointId" get: - description: "Returns information about the requested location" + description: "Returns information about the requested endpoint" tags: - - orgAdminFhirLocations - operationId: getLocation + - TI-M Pro + - orgAdminFhirEndpoints + operationId: getEndpoint responses: "200": - description: "Successfully get Location" + description: "Successfully get endpoint" content: application/json: schema: - $ref: "#/components/schemas/FhirLocation" + $ref: "#/components/schemas/FhirEndpoint" "404": $ref: "#/components/responses/NotFound" default: @@ -546,21 +558,22 @@ paths: put: tags: - - orgAdminFhirLocations - description: "Updates a Location" - operationId: updateLocation + - TI-M Pro + - orgAdminFhirEndpoints + description: "Updates an endpoint" + operationId: updateEndpoint requestBody: content: application/json: schema: - $ref: "#/components/schemas/FhirLocation" + $ref: "#/components/schemas/FhirEndpoint" responses: "200": content: application/json: schema: - $ref: "#/components/schemas/FhirLocation" - description: "Successfully updated location" + $ref: "#/components/schemas/FhirEndpoint" + description: "Successfully updated endpoint" "400": $ref: "#/components/responses/BadRequest" "404": @@ -570,20 +583,19 @@ paths: delete: tags: - - orgAdminFhirLocations - description: "Deletes a location" - operationId: deleteLocation + - TI-M Pro + - orgAdminFhirEndpoints + description: "Deletes a endpoint" + operationId: deleteEndpoint responses: "204": - description: "Successfully delete location" - "400": - $ref: "#/components/responses/BadRequest" + description: "Successfully delete endpoint" "404": $ref: "#/components/responses/NotFound" default: $ref: "#/components/responses/DefaultResponse" - /devices/{deviceId}/fhir/org/healthcareService/{hsId}/endpoint: + /devices/{deviceId}/fhir/org/healthcareService/{hsId}/location: parameters: - $ref: "#/components/parameters/deviceId" - $ref: "#/components/parameters/transactionIdHeader" @@ -591,14 +603,15 @@ paths: get: tags: - - orgAdminFhirEndpoints - description: "Get all endpoints for healthcare-service. + - TI-M Pro + - orgAdminFhirLocations + description: "Get all locations for healthcare service (the search result could also contain all other resources that are related with it. Please ensure that the searched resources are included at any time!)" - operationId: getEndpoints + operationId: getLocations responses: "200": - description: "Successfully get all endpoints for healthcare service" + description: "Successfully get all locations for healthcare service" content: application/json: schema: @@ -610,21 +623,22 @@ paths: post: tags: - - orgAdminFhirEndpoints - description: "Create endpoint" - operationId: createEndpoint + - TI-M Pro + - orgAdminFhirLocations + description: "Create location and return the created resource" + operationId: createLocation requestBody: content: application/json: schema: - $ref: "#/components/schemas/FhirEndpoint" + $ref: "#/components/schemas/FhirLocation" responses: "201": description: "Successful created" content: application/json: schema: - $ref: "#/components/schemas/FhirEndpoint" + $ref: "#/components/schemas/FhirLocation" "400": $ref: "#/components/responses/BadRequest" "404": @@ -632,25 +646,26 @@ paths: default: $ref: "#/components/responses/DefaultResponse" - /devices/{deviceId}/fhir/org/healthcareService/{hsId}/endpoint/{endId}: + /devices/{deviceId}/fhir/org/healthcareService/{hsId}/location/{locId}: parameters: - $ref: "#/components/parameters/deviceId" - $ref: "#/components/parameters/transactionIdHeader" - $ref: "#/components/parameters/healthcareServiceId" - - $ref: "#/components/parameters/endpointId" + - $ref: "#/components/parameters/locationId" get: - description: "Returns information about the requested endpoint" + description: "Returns information about the requested location" tags: - - orgAdminFhirEndpoints - operationId: getEndpoint + - TI-M Pro + - orgAdminFhirLocations + operationId: getLocation responses: "200": - description: "Successfully get endpoint" + description: "Successfully get Location" content: application/json: schema: - $ref: "#/components/schemas/FhirEndpoint" + $ref: "#/components/schemas/FhirLocation" "404": $ref: "#/components/responses/NotFound" default: @@ -658,21 +673,22 @@ paths: put: tags: - - orgAdminFhirEndpoints - description: "Updates an endpoint" - operationId: updateEndpoint + - TI-M Pro + - orgAdminFhirLocations + description: "Updates a Location" + operationId: updateLocation requestBody: content: application/json: schema: - $ref: "#/components/schemas/FhirEndpoint" + $ref: "#/components/schemas/FhirLocation" responses: "200": content: application/json: schema: - $ref: "#/components/schemas/FhirEndpoint" - description: "Successfully updated endpoint" + $ref: "#/components/schemas/FhirLocation" + description: "Successfully updated location" "400": $ref: "#/components/responses/BadRequest" "404": @@ -682,17 +698,45 @@ paths: delete: tags: - - orgAdminFhirEndpoints - description: "Deletes a endpoint" - operationId: deleteEndpoint + - TI-M Pro + - orgAdminFhirLocations + description: "Deletes a location" + operationId: deleteLocation responses: "204": - description: "Successfully delete endpoint" + description: "Successfully delete location" + "400": + $ref: "#/components/responses/BadRequest" "404": $ref: "#/components/responses/NotFound" default: $ref: "#/components/responses/DefaultResponse" + /devices/{deviceId}/fhir/fhirAuthenticate: + parameters: + - $ref: "#/components/parameters/deviceId" + - $ref: "#/components/parameters/transactionIdHeader" + + post: + tags: + - TI-M Pro + - practitionerFhirAdministration + description: "This request starts the OIDC authentication for getting access to change the own FHIR entry." + operationId: authenticateOnFhirDirectory + responses: + "200": + description: "OIDC flow with IDP successfully completed" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + "501": + description: "Unimplemented - if the underlying client does not support FHIR-VZD authentication" + default: + $ref: "#/components/responses/DefaultResponse" + /devices/{deviceId}/fhir/mxidInFhirDirectory: parameters: - $ref: "#/components/parameters/deviceId" @@ -700,6 +744,7 @@ paths: post: tags: + - TI-M Pro - practitionerFhirAdministration description: "Set the MXID in the own practitioner FHIR resource and the created endpoint" operationId: setMxidInFhirDirectory @@ -725,6 +770,7 @@ paths: get: tags: + - TI-M Pro - practitionerFhirAdministration description: "Returns the own practitioner entry with belonging resources from the FHIR Directory." operationId: readMxidInFhirDirectory @@ -748,6 +794,7 @@ paths: delete: tags: + - TI-M Pro - practitionerFhirAdministration description: "Remove the MXID in the own Practitioner FHIR resource." operationId: removeMxidInFhirDirectory @@ -772,6 +819,7 @@ paths: get: tags: + - TI-M Pro - searchOnHomeserver description: "Returns a list of users on same homeserver that matches search parameters" operationId: searchOnHomeserver @@ -809,6 +857,8 @@ paths: get: tags: + - TI-M Pro + - TI-M_ePA - searchInFhirDirectory description: "Returns all belonging resources of an organization" operationId: searchOrganizationInFhirDirectory @@ -881,6 +931,8 @@ paths: get: tags: + - TI-M Pro + - TI-M_ePA - searchInFhirDirectory description: "Returns the found endpoints of healthcare-services matching query. (the search result could also contain all other resources that are related with it. @@ -920,6 +972,8 @@ paths: get: tags: + - TI-M Pro + - TI-M_ePA - searchInFhirDirectory description: "Returns the found Practitioner entries and its belonging location, endpoints and practitioner roles" operationId: searchPractitionerInFhirDirectory @@ -977,6 +1031,8 @@ paths: post: tags: + - TI-M Pro + - TI-M_ePA - message description: "Send a direct message to another user. Should work without creating a dedicated room first. The recipients MxId is received through a searchInFhirDirectory-Request." operationId: sendDirectMessage @@ -1003,23 +1059,26 @@ paths: default: $ref: "#/components/responses/DefaultResponse" - /devices/{deviceId}/rooms: + /devices/{deviceId}/rooms/{roomId}/messages: parameters: - $ref: "#/components/parameters/deviceId" - $ref: "#/components/parameters/transactionIdHeader" + - $ref: "#/components/parameters/roomId" get: tags: - - room - operationId: getRooms - description: "get list of all rooms your account is associated with" + - TI-M Pro + - TI-M_ePA + - message + description: "list messages in room" + operationId: getMessages responses: "200": - description: "all associated rooms of the logged in account" + description: "this rooms messages" content: application/json: schema: - $ref: "#/components/schemas/Rooms" + $ref: "#/components/schemas/Messages" "401": $ref: "#/components/responses/Unauthorized" "403": @@ -1031,21 +1090,23 @@ paths: post: tags: - - room - description: "Create a room." - operationId: createRoom + - TI-M Pro + - TI-M_ePA + - message + description: "send a new message" + operationId: sendMessage requestBody: content: application/json: schema: - $ref: "#/components/schemas/CreateRoomRequest" + $ref: "#/components/schemas/MessageContent" responses: - "201": - description: "Room created" + "200": + description: "Message sent" content: application/json: schema: - $ref: "#/components/schemas/Room" + $ref: "#/components/schemas/Message" "400": $ref: "#/components/responses/BadRequest" "401": @@ -1057,56 +1118,27 @@ paths: default: $ref: "#/components/responses/DefaultResponse" - /devices/{deviceId}/rooms/public: - parameters: - - $ref: "#/components/parameters/deviceId" - - $ref: "#/components/parameters/transactionIdHeader" - - get: - tags: - - room - description: "Get public rooms matching params" - operationId: getPublicRooms - parameters: - - name: name - in: query - description: "Full- or partial name of the Room" - schema: - type: string - - responses: - "200": - description: "all associated rooms of the logged in account" - content: - application/json: - schema: - $ref: "#/components/schemas/Rooms" - "401": - $ref: "#/components/responses/Unauthorized" - "403": - $ref: "#/components/responses/Forbidden" - "404": - $ref: "#/components/responses/NotFound" - default: - $ref: "#/components/responses/DefaultResponse" - - /devices/{deviceId}/rooms/{roomId}: + /devices/{deviceId}/rooms/{roomId}/messages/{messageId}: parameters: - $ref: "#/components/parameters/deviceId" - $ref: "#/components/parameters/transactionIdHeader" - $ref: "#/components/parameters/roomId" + - $ref: "#/components/parameters/messageId" + get: + description: "get single message" tags: - - room - description: "Get the room settings." - operationId: getRoomSettings + - TI-M Pro + - TI-M_ePA + - message + operationId: getMessage responses: "200": - description: OK + description: "message information" content: application/json: schema: - $ref: "#/components/schemas/Room" + $ref: "#/components/schemas/Message" "401": $ref: "#/components/responses/Unauthorized" "403": @@ -1117,22 +1149,24 @@ paths: $ref: "#/components/responses/DefaultResponse" put: + description: "edit an existing message" tags: - - room - description: "Change the room settings." - operationId: changeRoomSettings + - TI-M Pro + - TI-M_ePA + - message + operationId: editMessage requestBody: content: application/json: schema: - $ref: "#/components/schemas/RoomProperties" + $ref: "#/components/schemas/MessageContent" responses: "200": - description: "Successfully changed room settings" + description: "successfully edited message" content: application/json: schema: - $ref: "#/components/schemas/Room" + $ref: "#/components/schemas/Message" "400": $ref: "#/components/responses/BadRequest" "401": @@ -1145,13 +1179,17 @@ paths: $ref: "#/components/responses/DefaultResponse" delete: + description: "delete a message" tags: - - room - description: "Forget about this room." - operationId: forgetRoom + - TI-M Pro + - TI-M_ePA + - message + operationId: deleteMessage responses: "204": - description: "room forgotten" + description: "message deleted" + "400": + $ref: "#/components/responses/BadRequest" "401": $ref: "#/components/responses/Unauthorized" "403": @@ -1161,24 +1199,25 @@ paths: default: $ref: "#/components/responses/DefaultResponse" - /devices/{deviceId}/rooms/{roomId}/messages: + /devices/{deviceId}/rooms: parameters: - $ref: "#/components/parameters/deviceId" - $ref: "#/components/parameters/transactionIdHeader" - - $ref: "#/components/parameters/roomId" get: tags: - - message - description: "list messages in room" - operationId: getMessages + - TI-M Pro + - TI-M_ePA + - room + operationId: getRooms + description: "get list of all rooms your account is associated with" responses: "200": - description: "this rooms messages" + description: "all associated rooms of the logged in account" content: application/json: schema: - $ref: "#/components/schemas/Messages" + $ref: "#/components/schemas/Rooms" "401": $ref: "#/components/responses/Unauthorized" "403": @@ -1190,21 +1229,23 @@ paths: post: tags: - - message - description: "send a new message" - operationId: sendMessage + - TI-M Pro + - TI-M_ePA + - room + description: "Create a room." + operationId: createRoom requestBody: content: application/json: schema: - $ref: "#/components/schemas/MessageContent" + $ref: "#/components/schemas/CreateRoomRequest" responses: - "200": - description: "Message sent" + "201": + description: "Room created" content: application/json: schema: - $ref: "#/components/schemas/Message" + $ref: "#/components/schemas/Room" "400": $ref: "#/components/responses/BadRequest" "401": @@ -1216,25 +1257,60 @@ paths: default: $ref: "#/components/responses/DefaultResponse" - /devices/{deviceId}/rooms/{roomId}/messages/{messageId}: + /devices/{deviceId}/rooms/public: parameters: - $ref: "#/components/parameters/deviceId" - $ref: "#/components/parameters/transactionIdHeader" - - $ref: "#/components/parameters/roomId" - - $ref: "#/components/parameters/messageId" get: - description: "get single message" tags: - - message - operationId: getMessage + - TI-M Pro + - TI-M_ePA + - room + description: "Get public rooms matching params" + operationId: getPublicRooms + parameters: + - name: name + in: query + description: "Full- or partial name of the Room" + schema: + type: string + responses: "200": - description: "message information" + description: "all associated rooms of the logged in account" content: application/json: schema: - $ref: "#/components/schemas/Message" + $ref: "#/components/schemas/Rooms" + "401": + $ref: "#/components/responses/Unauthorized" + "403": + $ref: "#/components/responses/Forbidden" + "404": + $ref: "#/components/responses/NotFound" + default: + $ref: "#/components/responses/DefaultResponse" + + /devices/{deviceId}/rooms/{roomId}: + parameters: + - $ref: "#/components/parameters/deviceId" + - $ref: "#/components/parameters/transactionIdHeader" + - $ref: "#/components/parameters/roomId" + get: + tags: + - TI-M Pro + - TI-M_ePA + - room + description: "Get the room settings." + operationId: getRoomSettings + responses: + "200": + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/Room" "401": $ref: "#/components/responses/Unauthorized" "403": @@ -1245,22 +1321,24 @@ paths: $ref: "#/components/responses/DefaultResponse" put: - description: "edit an existing message" tags: - - message - operationId: editMessage + - TI-M Pro + - TI-M_ePA + - room + description: "Change the room settings." + operationId: changeRoomSettings requestBody: content: application/json: schema: - $ref: "#/components/schemas/MessageContent" + $ref: "#/components/schemas/RoomProperties" responses: "200": - description: "successfully edited message" + description: "Successfully changed room settings" content: application/json: schema: - $ref: "#/components/schemas/Message" + $ref: "#/components/schemas/Room" "400": $ref: "#/components/responses/BadRequest" "401": @@ -1273,15 +1351,15 @@ paths: $ref: "#/components/responses/DefaultResponse" delete: - description: "delete a message" tags: - - message - operationId: deleteMessage + - TI-M Pro + - TI-M_ePA + - room + description: "Forget about this room." + operationId: forgetRoom responses: "204": - description: "message deleted" - "400": - $ref: "#/components/responses/BadRequest" + description: "room forgotten" "401": $ref: "#/components/responses/Unauthorized" "403": @@ -1299,6 +1377,8 @@ paths: post: tags: + - TI-M Pro + - TI-M_ePA - room description: "Invite a user into the room." operationId: inviteIntoRoom @@ -1333,6 +1413,8 @@ paths: post: tags: + - TI-M Pro + - TI-M_ePA - room description: "join the room." operationId: joinRoom @@ -1360,6 +1442,8 @@ paths: post: tags: + - TI-M Pro + - TI-M_ePA - room description: "Leave the room." operationId: leaveRoom @@ -1387,6 +1471,8 @@ paths: get: tags: + - TI-M Pro + - TI-M_ePA - room description: "Returns all state events of the room" operationId: "Get state events" @@ -1413,6 +1499,7 @@ paths: get: tags: + - TI-M Pro - contactManagement description: "Returns the contacts with invite settings." operationId: getContacts @@ -1428,6 +1515,7 @@ paths: post: tags: + - TI-M Pro - contactManagement description: "Creates the setting for the contact." operationId: createContactSetting @@ -1453,6 +1541,7 @@ paths: put: tags: + - TI-M Pro - contactManagement description: "Updates the setting for the contact." operationId: updateContactSetting @@ -1484,6 +1573,7 @@ paths: get: tags: + - TI-M Pro - contactManagement description: "Returns the contacts with invite settings." operationId: getContact @@ -1499,6 +1589,7 @@ paths: delete: tags: + - TI-M Pro - contactManagement description: "Deletes the setting for the contact {mxid}." operationId: deleteContactSetting @@ -1520,6 +1611,8 @@ paths: - $ref: "#/components/parameters/transactionIdHeader" post: tags: + - TI-M Pro + - TI-M_ePA - media description: "Uploads a file and returns its file-id" operationId: postMediaFile @@ -1552,6 +1645,8 @@ paths: - $ref: "#/components/parameters/fileId" get: tags: + - TI-M Pro + - TI-M_ePA - media description: "Returns a previously uploaded file with given id" operationId: getMediaFile @@ -1570,6 +1665,8 @@ paths: delete: tags: + - TI-M Pro + - TI-M_ePA - media description: "Deletes a previously uploaded file with given id" operationId: deleteMediaFile From 74e72df489ad7341bca0a405526ac78764dfcfbe Mon Sep 17 00:00:00 2001 From: "marlene.bueltemann" Date: Mon, 15 Apr 2024 09:13:48 +0200 Subject: [PATCH 05/13] TIM-TS 446: allow FHIR enum state "off" --- ReleaseNotes.md | 1 + src/openapi/TiMessengerTestTreiber.yaml | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/ReleaseNotes.md b/ReleaseNotes.md index a72063ae..d55d4785 100644 --- a/ReleaseNotes.md +++ b/ReleaseNotes.md @@ -3,6 +3,7 @@ # Release Notes api-ti-messenger ## Hotfix 1.1.1-7 +- added FHIR status "off" ### changed diff --git a/src/openapi/TiMessengerTestTreiber.yaml b/src/openapi/TiMessengerTestTreiber.yaml index 6285a5e9..c40f6872 100644 --- a/src/openapi/TiMessengerTestTreiber.yaml +++ b/src/openapi/TiMessengerTestTreiber.yaml @@ -2661,7 +2661,7 @@ components: type: string description: "Status of the ressource" example: "active" - enum: [ active, suspended, inactive ] + enum: [ active, suspended, "off" ] address: description: "For endpoint in tim context the mxid in uri scheme" type: string From 9ded2b496999c53f3604e5ae30160bdf36370c98 Mon Sep 17 00:00:00 2001 From: "marlene.bueltemann" Date: Mon, 15 Apr 2024 10:36:17 +0200 Subject: [PATCH 06/13] TIM-TS 446: added correct versions --- ReleaseNotes.md | 2 +- src/openapi/TiMessengerTestTreiber.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ReleaseNotes.md b/ReleaseNotes.md index d55d4785..400920f9 100644 --- a/ReleaseNotes.md +++ b/ReleaseNotes.md @@ -2,7 +2,7 @@ # Release Notes api-ti-messenger -## Hotfix 1.1.1-7 +## Hotfix 1.1.1-9 - added FHIR status "off" ### changed diff --git a/src/openapi/TiMessengerTestTreiber.yaml b/src/openapi/TiMessengerTestTreiber.yaml index c40f6872..b828d3bd 100644 --- a/src/openapi/TiMessengerTestTreiber.yaml +++ b/src/openapi/TiMessengerTestTreiber.yaml @@ -2,7 +2,7 @@ openapi: 3.0.3 info: title: TiMessengerTestDriver description: REST interface to automate the test of a TI-Messenger client implementation. - version: 0.9.5 + version: 0.9.6 contact: name: gematik GmbH email: software-development@gematik.de From d9216687afa3003cd040d420ce4db8bd3474e93e Mon Sep 17 00:00:00 2001 From: "stefanie.boxhorn" Date: Mon, 15 Apr 2024 10:41:53 +0200 Subject: [PATCH 07/13] Updates release version --- ReleaseNotes.md | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/ReleaseNotes.md b/ReleaseNotes.md index 400920f9..9848557c 100644 --- a/ReleaseNotes.md +++ b/ReleaseNotes.md @@ -2,8 +2,13 @@ # Release Notes api-ti-messenger -## Hotfix 1.1.1-9 -- added FHIR status "off" +## Hotfix 1.1.1-8 + +### changed + +- changed FHIR status inactive to "off" to be FHIR compliant + +## Hotfix 1.1.1-7 ### changed From c15b9c8e38a8e7de82ff4a9f9aa533e7444a7418 Mon Sep 17 00:00:00 2001 From: Beff42 <83531917+Beff42@users.noreply.github.com> Date: Tue, 16 Apr 2024 09:57:06 +0200 Subject: [PATCH 08/13] Marks required properties as required (#233) * Marks required properties as required * Bumps api version * Merges incoming changes --- ReleaseNotes.md | 1 + src/openapi/TiMessengerTestTreiber.yaml | 37 +++++++++++++++++++++++-- 2 files changed, 36 insertions(+), 2 deletions(-) diff --git a/ReleaseNotes.md b/ReleaseNotes.md index 9848557c..c6a36705 100644 --- a/ReleaseNotes.md +++ b/ReleaseNotes.md @@ -7,6 +7,7 @@ ### changed - changed FHIR status inactive to "off" to be FHIR compliant +- all properties required by the Testsuite marked as required in TiMessengerTestTreiber.yaml ## Hotfix 1.1.1-7 diff --git a/src/openapi/TiMessengerTestTreiber.yaml b/src/openapi/TiMessengerTestTreiber.yaml index b828d3bd..067ee680 100644 --- a/src/openapi/TiMessengerTestTreiber.yaml +++ b/src/openapi/TiMessengerTestTreiber.yaml @@ -2,7 +2,7 @@ openapi: 3.0.3 info: title: TiMessengerTestDriver description: REST interface to automate the test of a TI-Messenger client implementation. - version: 0.9.6 + version: 0.9.7 contact: name: gematik GmbH email: software-development@gematik.de @@ -1812,6 +1812,7 @@ components: - testDriverVersion - homeserver - contact + - description readOnly: true type: object properties: @@ -2162,6 +2163,9 @@ components: description: "A message and its metadata" readOnly: true type: object + required: + - author + - MessageContent properties: messageId: type: string @@ -2259,6 +2263,9 @@ components: Room: description: "Information about a room and its members" + required: + - RoomMembers + - RoomProperties allOf: - $ref: "#/components/schemas/RoomProperties" - $ref: "#/components/schemas/RoomMembers" @@ -2268,6 +2275,8 @@ components: type: object required: - name + - roomId + - roomAccess properties: name: type: string @@ -2302,6 +2311,9 @@ components: RoomMember: description: "" type: object + required: + - mxid + - membershipState properties: mxid: description: "MxId as identifier, refers to an existing account" @@ -2313,6 +2325,8 @@ components: RoomMembers: description: "List of room associated accounts and their states" type: object + required: + - members properties: members: type: array @@ -2405,6 +2419,9 @@ components: description: "The result for a search request for on homeserver" readOnly: true type: object + required: + - totalSearchResults + - searchResults properties: totalSearchResults: description: "Total result count for this search. The number of entries in searchResults may be less or equal this number." @@ -2420,6 +2437,8 @@ components: description: "A flat description of an endpoint with belonging healthcare-service and organization" readOnly: true type: object + required: + - mxId properties: mxId: description: "The Matrix-ID of an account" @@ -2433,6 +2452,9 @@ components: FhirSearchResult: description: "A FHIR Bundle containing search results" type: object + required: + - total + - entry properties: resourceType: type: string @@ -2506,6 +2528,8 @@ components: FhirEntry: description: "FhirSearchEntry" type: object + required: + - resource properties: fullUrl: type: string @@ -2530,6 +2554,7 @@ components: Practitioner: "#/components/schemas/FhirPractitioner" required: - resourceType + - id properties: resourceType: $ref: "#/components/schemas/FhirResourceType" @@ -2620,6 +2645,8 @@ components: allOf: - $ref: "#/components/schemas/FhirBaseResource" type: object + required: + - practitioner properties: practitioner: $ref: "#/components/schemas/FhirReference" @@ -2648,6 +2675,9 @@ components: allOf: - $ref: "#/components/schemas/FhirBaseResource" type: object + required: + - name + - address properties: name: type: string @@ -2709,7 +2739,6 @@ components: description: "Start time" example: "18:00:00" - FhirAddress: type: object description: "Possible address" @@ -2760,6 +2789,8 @@ components: FhirReference: description: "Reference to another FhirRessource" type: object + required: + - reference properties: reference: type: string @@ -2854,6 +2885,8 @@ components: FhirName: type: object description: "Personal data of practitioner" + required: + - text properties: use: example: "usual" From 52065fc075708c91b709096fc55f4f770514689d Mon Sep 17 00:00:00 2001 From: Johannes Marbach Date: Tue, 19 Mar 2024 19:32:47 +0100 Subject: [PATCH 09/13] Fix typo --- docs/Authenticator/authenticator.adoc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/Authenticator/authenticator.adoc b/docs/Authenticator/authenticator.adoc index 6eac0274..99eb3fac 100644 --- a/docs/Authenticator/authenticator.adoc +++ b/docs/Authenticator/authenticator.adoc @@ -36,7 +36,7 @@ CAUTION: Voraussetzungen für die Nutzung des von der gematik bereitgestellten * Der Authenticator ist eine Desktop-Anwendung mit grafischer Benutzerschnittstelle, welche aktuell unter Windows lauffähig ist und aus Anwendungen heraus aufgerufen wird. Es ist erforderlich den *Authenticator* in der Leistungserbringer-Umgebung zu konfigurieren. Zusätzliche Informationen finden Sie in der https://wiki.gematik.de/display/GAKB/Installationshandbuch+Authenticator[Installationsanleitung]. == Interaktion mit der Fachanwendung -Damit die Interaktion mit der Fachanwendung möglich ist, wird vorrausgesetzt das die Fachanwendung am zentralen *IDP-Dienst* registriert ist. Der *Authenticator* wird von einem Client über das Protokoll `authenticator://` gestartet (Deeplink). Beim Deeplink-Aufruf übergibt die Fachanwendung einen URL-String mit Query-Parametern. Dieser URL-String setzt sich abhängig vom verwendeten *IDP-Dienst* aus dem Protokoll (`authenticator://`) und weiteren Request-Parametern zusammen. Das Standardverhalten des *Authenticators* ist, dass nach Abschluss des Vorgangs der Response vom Aufruf der `redirect_uri` im default Browser des Betriebssystems geöffnet wird. Um das Öffnen in dem default Browser zu verhindern, bietet der *Authenticator* eine Auto-Redirect Funktion an. Mit dieser Funktion verarbeitet der *Authenticator* einen zusätzlichen Parameter: `callback=DIRECT`. Durch diesen ruft der *Authenticator* die `redirect_uri` direkt auf, anstatt das Ergebnis der Authentifizierung in einen neuen Browser-Tab zu öffnen. +Damit die Interaktion mit der Fachanwendung möglich ist, wird vorrausgesetzt, dass die Fachanwendung am zentralen *IDP-Dienst* registriert ist. Der *Authenticator* wird von einem Client über das Protokoll `authenticator://` gestartet (Deeplink). Beim Deeplink-Aufruf übergibt die Fachanwendung einen URL-String mit Query-Parametern. Dieser URL-String setzt sich abhängig vom verwendeten *IDP-Dienst* aus dem Protokoll (`authenticator://`) und weiteren Request-Parametern zusammen. Das Standardverhalten des *Authenticators* ist, dass nach Abschluss des Vorgangs der Response vom Aufruf der `redirect_uri` im default Browser des Betriebssystems geöffnet wird. Um das Öffnen in dem default Browser zu verhindern, bietet der *Authenticator* eine Auto-Redirect Funktion an. Mit dieser Funktion verarbeitet der *Authenticator* einen zusätzlichen Parameter: `callback=DIRECT`. Durch diesen ruft der *Authenticator* die `redirect_uri` direkt auf, anstatt das Ergebnis der Authentifizierung in einen neuen Browser-Tab zu öffnen. CAUTION: Die Anwendung gibt vor, welcher Kartentyp (SMC-B / HBA) für den Authentifizierungsprozess mittels *Authenticator* gesteckt werden soll. @@ -52,4 +52,4 @@ TIP: Sollten sich in den Konnektor-Terminals mehrere SMC-Bs befinden, erfolgt ab == Entwickleroption Innerhalb der link:https://gematikde.sharepoint.com/sites/EXTAuthenticator/Freigegebene%20Dokumente/Forms/AllItems.aspx?ga=1&id=%2Fsites%2FEXTAuthenticator%2FFreigegebene%20Dokumente%2FVer%C3%B6ffentlichte%20Version%20%2D%20gematik%20Authenticator%2FMockvariante%20Alpha%2DVersion%20%28TEST%2DONLY%29&viewid=19543cfb%2D531c%2D4ed7%2Da8c1%2D1fbd4aa0d244[Entwicklervariante] des *Authenticators* ist ein Mockmodus integriert, der die Verwendung eines Konnektors simulieren kann. Somit können Funktionstests auch ohne physisch vorhandenen Konnektor durchgeführt werden. Diese Funktion soll die Entwicklung mit dem *Authenticator* vereinfachen, da sie neben einem speziellen Mockmodus auch mehr Logging-Möglichkeiten zur Verfügung stellt. Eine Anleitung für den Mockmodus ist link:https://wiki.gematik.de/display/GAKB/Gematik+Authenticator+-+Entwicklervariante+mit+Mockmodus[hier] zu finden. -Hersteller die den gematik *Authenticator* für eine smartcardbasierte Authentisierung an ihrer Fachanwendung bzw. ihren Fachdienst anbinden möchten, können die link:https://wiki.gematik.de/display/GAKB/Gematik+Authenticator+SDK+Dokumentation[SDK-Dokumentation] der gematik verwenden. Zusätzlich ist der Quellcode des *Authenticator* link:https://github.com/gematik/app-Authenticator[hier] einsehbar. \ No newline at end of file +Hersteller die den gematik *Authenticator* für eine smartcardbasierte Authentisierung an ihrer Fachanwendung bzw. ihren Fachdienst anbinden möchten, können die link:https://wiki.gematik.de/display/GAKB/Gematik+Authenticator+SDK+Dokumentation[SDK-Dokumentation] der gematik verwenden. Zusätzlich ist der Quellcode des *Authenticator* link:https://github.com/gematik/app-Authenticator[hier] einsehbar. From 8a7c6ea001e06b4374b887ea8850ed3a62c2ccdb Mon Sep 17 00:00:00 2001 From: Beff42 <83531917+Beff42@users.noreply.github.com> Date: Wed, 22 May 2024 12:57:52 +0200 Subject: [PATCH 10/13] Removes test driver api and adds fachportal links to welcome package (#237) --- README.adoc | 6 +- ReleaseNotes.md | 6 + src/openapi/TiMessengerTestTreiber.yaml | 2930 +---------------------- 3 files changed, 11 insertions(+), 2931 deletions(-) diff --git a/README.adoc b/README.adoc index a74d511f..a28acdf5 100644 --- a/README.adoc +++ b/README.adoc @@ -130,7 +130,7 @@ Die nachfolgende Tabelle enthält die in der vorliegenden Online Dokumentation r |=== == 💡 Onboarding -Hersteller und Anbieter eines *TI-Messenger-Dienstes* können das von der gematik bereitgestellte https://gematikde.sharepoint.com/:w:/s/PTNeo/EczX7AFGfBdNrCYghzGsHz4BbSoYhV63QMmDCdz7x9zLpg?e=7wG3c[Welcome Package] zum Onboarding nutzen. Dieses Welcome Package ist als "Schritt-für-Schritt"-Anleitung gedacht, um Hersteller und Anbieter beim Onboarding des *TI-Messenger-Dienstes* zu unterstützen. +Hersteller und Anbieter eines *TI-Messenger-Dienstes* können das von der gematik bereitgestellte https://fachportal.gematik.de/fileadmin/Fachportal/Anwendungen/TI-Messenger/Welcome_Package_TI-Messenger_V1.1.0.pdf[Welcome Package] zum Onboarding nutzen. Dieses Welcome Package ist als "Schritt-für-Schritt"-Anleitung gedacht, um Hersteller und Anbieter beim Onboarding des *TI-Messenger-Dienstes* zu unterstützen. == Weiterführende Seiten *Anwendungsfälle* + @@ -146,8 +146,8 @@ link:docs/IDP/idp.adoc[- Zentraler IDP-Dienst] + link:docs/Primaersystem/Primaersystem.adoc[- Primärsystem] + *Diverses* + -https://gematikde.sharepoint.com/:w:/s/PTNeo/EczX7AFGfBdNrCYghzGsHz4BbSoYhV63QMmDCdz7x9zLpg?e=7wG3c[- Welcome Package [DE]] + -https://gematikde.sharepoint.com/:w:/s/PTNeo/ETwc10F5Ha1KmlM8NEsetl8BtEumSDgu56AK-PNiZ0-e1Q?e=ySZROI[- Welcome Package [EN]] + +https://fachportal.gematik.de/fileadmin/Fachportal/Anwendungen/TI-Messenger/Welcome_Package_TI-Messenger_V1.1.0.pdf[- Welcome Package [DE]] + +https://fachportal.gematik.de/fileadmin/Fachportal/Anwendungen/TI-Messenger/Welcome_Package_TI-Messenger_V1.1.0_EN.pdf[- Welcome Package [EN]] + https://gematikde.sharepoint.com/sites/EXTAuthenticator/Freigegebene%20Dokumente/Forms/AllItems.aspx?id=%2Fsites%2FEXTAuthenticator%2FFreigegebene%20Dokumente%2FVer%C3%B6ffentlichte%20Version%20%2D%20gematik%20Authenticator&p=true&ga=1[- gematik Authenticator] + https://github.com/gematik/TI-Messenger-Testsuite[- TI-Messenger-Testsuite] + link:docs/FAQ/FAQ.adoc[- Fragen und Antworten zur aktuellen Spezifikation [FAQ]] diff --git a/ReleaseNotes.md b/ReleaseNotes.md index c6a36705..31e8196f 100644 --- a/ReleaseNotes.md +++ b/ReleaseNotes.md @@ -2,6 +2,12 @@ # Release Notes api-ti-messenger +## Hotfix 1.1.1-9 + +### removed + +- TiMessengerTestTreiber.yaml was moved to the Testsuite repository https://github.com/gematik/TI-Messenger-Testsuite under src/main/resources/api + ## Hotfix 1.1.1-8 ### changed diff --git a/src/openapi/TiMessengerTestTreiber.yaml b/src/openapi/TiMessengerTestTreiber.yaml index 067ee680..3376de0c 100644 --- a/src/openapi/TiMessengerTestTreiber.yaml +++ b/src/openapi/TiMessengerTestTreiber.yaml @@ -1,2928 +1,2 @@ -openapi: 3.0.3 -info: - title: TiMessengerTestDriver - description: REST interface to automate the test of a TI-Messenger client implementation. - version: 0.9.7 - contact: - name: gematik GmbH - email: software-development@gematik.de - url: "https://www.gematik.de" - license: - name: Apache 2.0 - url: "https://www.apache.org/licenses/LICENSE-2.0" - -externalDocs: - description: TI-Messenger-API - url: https://github.com/gematik/api-ti-messenger - -servers: - - url: '{protocol}://{host}:{port}/{api}' - variables: - protocol: - enum: - - http - - https - default: https - host: - default: 'localhost' - port: - default: '443' - api: - default: 'ti-messenger-testdriver' - -tags: - - name: info - description: This operation returns meta data about this interface and the status of available resources - - name: signalTestStart - description: This endpoint serves the possibility to clean system before test - - name: devices - description: Operations for device management - - name: account - description: Account operations - - name: login/logout - description: login / logout an account - - name: keyExchange - description: export / import recoveryKey - - name: orgAdminFhirOrganization - description: OrgAdmin operations that could be operated on organizations in FHIR-VZD - - name: orgAdminFhirHealthcareService - description: OrgAdmin operations of HealthcareServices of an organization to FHIR-VZD - - name: orgAdminFhirEndpoints - description: OrgAdmin operations of Endpoints of an organization to FHIR-VZD - - name: orgAdminFhirLocations - description: OrgAdmin operations of Locations of an organization to FHIR-VZD - - name: practitionerFhirAdministration - description: operations for practitioner to write to FHIR-VZD - - name: searchOnHomeserver - description: Search internally on homeserver - - name: searchInFhirDirectory - description: Search for Organization or Practitioner entries (VZD-FHIR-Directory) - - name: message - description: message operations - - name: room - description: room operations - - name: contactManagement - description: contact management operations - - name: media - description: media file upload and download - - name: authorizationManagement - description: authorization management operations - - name: TI-M Pro - description: all operations used in TI-Messenger Pro and TI-Messenger Version 1.1.x - - name: TI-M_ePA - description: all operations used in TI-Messenger ePA - -paths: - /: - get: - tags: - - TI-M Pro - - TI-M_ePA - - info - description: Returns the meta data of this interface. - operationId: getInfo - responses: - "200": - description: OK - content: - application/json: - schema: - $ref: "#/components/schemas/InfoObject" - "403": - $ref: "#/components/responses/Forbidden" - default: - $ref: "#/components/responses/DefaultResponse" - - post: - tags: - - TI-M Pro - - TI-M_ePA - - signalTestStart - description: Implementation is optional! Testsuite sends a request to the org-admin endpoint of each involved homeserver (even if the org-admin is not named in the feature-file). There will be no claiming attempt before triggering this endpoint. After getting any response the testcase starts. This is an opportunity for the org-admin to clean user/rooms/FHIR-VZD etc. Even if errorcode returned the testsuite will start the test. - operationId: cleanUp - responses: - "200": - description: System clean - "404": - $ref: "#/components/responses/NotFound" - "500": - $ref: "#/components/responses/InternalServerError" - default: - $ref: "#/components/responses/DefaultResponse" - - /devices: - get: - tags: - - TI-M Pro - - TI-M_ePA - - devices - description: "Returns the connected devices and the information of the deposited HBA/SMC-B if existing" - operationId: getDevices - responses: - "200": - description: "List of all devices for this testdriver API" - content: - application/json: - schema: - $ref: "#/components/schemas/Devices" - default: - $ref: "#/components/responses/DefaultResponse" - - /devices/{deviceId}/claim: - parameters: - - $ref: "#/components/parameters/deviceId" - - $ref: "#/components/parameters/transactionIdHeader" - - post: - tags: - - TI-M Pro - - TI-M_ePA - - devices - description: "Claims a device for exclusive use." - operationId: claimDevice - requestBody: - required: true - content: - application/json: - schema: - $ref: "#/components/schemas/ClaimDeviceRequest" - responses: - "200": - description: "Device successfully claimed" - content: - application/json: - schema: - $ref: "#/components/schemas/DeviceInfo" - "400": - $ref: "#/components/responses/BadRequest" - "404": - $ref: "#/components/responses/NotFound" - default: - $ref: "#/components/responses/DefaultResponse" - - /devices/{deviceId}/unclaim: - parameters: - - $ref: "#/components/parameters/deviceId" - - $ref: "#/components/parameters/transactionIdHeader" - - post: - tags: - - TI-M Pro - - TI-M_ePA - - devices - description: "Unclaims a previously claimed device." - operationId: unclaimDevice - responses: - "200": - description: "Device successfully unclaimed" - content: - application/json: - schema: - $ref: "#/components/schemas/DeviceInfo" - "400": - $ref: "#/components/responses/BadRequest" - "403": - $ref: "#/components/responses/Forbidden" - "404": - $ref: "#/components/responses/NotFound" - default: - $ref: "#/components/responses/DefaultResponse" - - /devices/{deviceId}/account: - parameters: - - $ref: "#/components/parameters/deviceId" - - $ref: "#/components/parameters/transactionIdHeader" - - get: - tags: - - TI-M Pro - - TI-M_ePA - - account - description: "Returns the account data or if no account is registered returns the authentication flows supported by the homeserver." - operationId: readAccount - responses: - "200": - description: "account data of the logged in account" - content: - application/json: - schema: - $ref: "#/components/schemas/Account" - "400": - $ref: "#/components/responses/BadRequest" - "401": - $ref: "#/components/responses/Unauthorized" - "403": - $ref: "#/components/responses/Forbidden" - "404": - $ref: "#/components/responses/NotFound" - default: - $ref: "#/components/responses/DefaultResponse" - - /devices/{deviceId}/login: - parameters: - - $ref: "#/components/parameters/deviceId" - - $ref: "#/components/parameters/transactionIdHeader" - - get: - description: "Retrieve list of possible authentication flows" - tags: - - TI-M Pro - - TI-M_ePA - - login/logout - operationId: getLoginOptions - responses: - "200": - description: "Authentication flows for login" - content: - application/json: - schema: - $ref: "#/components/schemas/AuthFlows" - "400": - $ref: "#/components/responses/BadRequest" - "401": - $ref: "#/components/responses/Unauthorized" - "403": - $ref: "#/components/responses/Forbidden" - "404": - $ref: "#/components/responses/NotFound" - default: - $ref: "#/components/responses/DefaultResponse" - - post: - description: "login to an account. If no login data is provided, a preconfigured account should be used. In case the device has a HBA/SMC-B its data should be used" - tags: - - TI-M Pro - - TI-M_ePA - - login/logout - operationId: login - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/Login" - responses: - "200": - description: "Account data of the logged in account" - content: - application/json: - schema: - $ref: "#/components/schemas/Account" - "400": - $ref: "#/components/responses/BadRequest" - "401": - $ref: "#/components/responses/Unauthorized" - "403": - $ref: "#/components/responses/Forbidden" - "404": - $ref: "#/components/responses/NotFound" - default: - $ref: "#/components/responses/DefaultResponse" - - /devices/{deviceId}/logout: - parameters: - - $ref: "#/components/parameters/deviceId" - - $ref: "#/components/parameters/transactionIdHeader" - - post: - description: "logout" - tags: - - TI-M Pro - - TI-M_ePA - - login/logout - operationId: logout - responses: - "200": - description: "Logout successful" - "400": - $ref: "#/components/responses/BadRequest" - "404": - $ref: "#/components/responses/NotFound" - "403": - $ref: "#/components/responses/Forbidden" - default: - $ref: "#/components/responses/DefaultResponse" - - /devices/{deviceId}/account/key: - parameters: - - $ref: "#/components/parameters/deviceId" - - $ref: "#/components/parameters/transactionIdHeader" - - get: - tags: - - TI-M Pro - - TI-M_ePA - - keyExchange - description: "Exports secret key for device synchronization. The key could be in any format but has to be understood by every provided test-driver-api per distributor!" - operationId: keyExport - responses: - "200": - description: "information about the exported key" - content: - application/json: - schema: - $ref: "#/components/schemas/matrixKeyInfo" - "400": - $ref: "#/components/responses/BadRequest" - "401": - $ref: "#/components/responses/Unauthorized" - default: - $ref: "#/components/responses/DefaultResponse" - - post: - tags: - - TI-M Pro - - TI-M_ePA - - keyExchange - description: "Imports secret key and execute synchronization" - operationId: keyImport - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/matrixKeyInfo" - responses: - "204": - description: "sync successful" - "400": - $ref: "#/components/responses/BadRequest" - "401": - $ref: "#/components/responses/Unauthorized" - default: - $ref: "#/components/responses/DefaultResponse" - - /devices/{deviceId}/fhir/org: - parameters: - - $ref: "#/components/parameters/deviceId" - - $ref: "#/components/parameters/transactionIdHeader" - get: - tags: - - TI-M Pro - - TI-M_ePA - - orgAdminFhirOrganization - description: "Get organization from the selected device" - operationId: getOrganization - responses: - "200": - description: "Data of organization from claimed client" - content: - application/json: - schema: - $ref: "#/components/schemas/FhirOrganization" - default: - $ref: "#/components/responses/DefaultResponse" - - /devices/{deviceId}/fhir/org/healthcareService: - parameters: - - $ref: "#/components/parameters/deviceId" - - $ref: "#/components/parameters/transactionIdHeader" - - get: - tags: - - TI-M Pro - - orgAdminFhirHealthcareService - description: "Get healthcareServices regarding the organization that belongs to the claimed device - (the search result could also contain all other resources that are related with it. - Please ensure that the searched resources are included at any time!)" - operationId: getHealthcareServices - responses: - "200": - description: "List of all healthcareServices associated with organization" - content: - application/json: - schema: - $ref: "#/components/schemas/FhirSearchResult" - default: - $ref: "#/components/responses/DefaultResponse" - - post: - tags: - - TI-M Pro - - orgAdminFhirHealthcareService - description: "Created new healthcare-service and returns the ressource of the created healthcareService" - operationId: createHealthcareService - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/FhirHealthcareService" - responses: - "201": - description: "Successfully created a new healthcare-service with the given data" - content: - application/json: - schema: - $ref: "#/components/schemas/FhirHealthcareService" - "400": - $ref: "#/components/responses/BadRequest" - default: - $ref: "#/components/responses/DefaultResponse" - - /devices/{deviceId}/fhir/org/healthcareService/{hsId}: - parameters: - - $ref: "#/components/parameters/deviceId" - - $ref: "#/components/parameters/transactionIdHeader" - - $ref: "#/components/parameters/healthcareServiceId" - - get: - tags: - - TI-M Pro - - orgAdminFhirHealthcareService - description: "Get specific healthcareService regarding" - operationId: getHealthcareService - responses: - "200": - description: "Data of healthcareService associated with healthcareServiceId" - content: - application/json: - schema: - $ref: "#/components/schemas/FhirHealthcareService" - "404": - $ref: "#/components/responses/NotFound" - default: - $ref: "#/components/responses/DefaultResponse" - - put: - tags: - - TI-M Pro - - orgAdminFhirHealthcareService - description: "Changes healthcareService accordingly" - operationId: updateHealthcareService - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/FhirHealthcareService" - responses: - "200": - description: "Successful updated healthcare service" - content: - application/json: - schema: - $ref: "#/components/schemas/FhirHealthcareService" - "400": - $ref: "#/components/responses/BadRequest" - "404": - $ref: "#/components/responses/NotFound" - default: - $ref: "#/components/responses/DefaultResponse" - - delete: - tags: - - TI-M Pro - - orgAdminFhirHealthcareService - description: "Delete specific healthcareService regarding" - operationId: deleteHealthcareService - responses: - "204": - description: "Successfully delete healthcare service" - "404": - $ref: "#/components/responses/NotFound" - default: - $ref: "#/components/responses/DefaultResponse" - - /devices/{deviceId}/fhir/org/healthcareService/{hsId}/endpoint: - parameters: - - $ref: "#/components/parameters/deviceId" - - $ref: "#/components/parameters/transactionIdHeader" - - $ref: "#/components/parameters/healthcareServiceId" - - get: - tags: - - TI-M Pro - - orgAdminFhirEndpoints - description: "Get all endpoints for healthcare-service. - (the search result could also contain all other resources that are related with it. - Please ensure that the searched resources are included at any time!)" - operationId: getEndpoints - responses: - "200": - description: "Successfully get all endpoints for healthcare service" - content: - application/json: - schema: - $ref: "#/components/schemas/FhirSearchResult" - "404": - $ref: "#/components/responses/NotFound" - default: - $ref: "#/components/responses/DefaultResponse" - - post: - tags: - - TI-M Pro - - orgAdminFhirEndpoints - description: "Create endpoint" - operationId: createEndpoint - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/FhirEndpoint" - responses: - "201": - description: "Successful created" - content: - application/json: - schema: - $ref: "#/components/schemas/FhirEndpoint" - "400": - $ref: "#/components/responses/BadRequest" - "404": - $ref: "#/components/responses/NotFound" - default: - $ref: "#/components/responses/DefaultResponse" - - /devices/{deviceId}/fhir/org/healthcareService/{hsId}/endpoint/{endId}: - parameters: - - $ref: "#/components/parameters/deviceId" - - $ref: "#/components/parameters/transactionIdHeader" - - $ref: "#/components/parameters/healthcareServiceId" - - $ref: "#/components/parameters/endpointId" - - get: - description: "Returns information about the requested endpoint" - tags: - - TI-M Pro - - orgAdminFhirEndpoints - operationId: getEndpoint - responses: - "200": - description: "Successfully get endpoint" - content: - application/json: - schema: - $ref: "#/components/schemas/FhirEndpoint" - "404": - $ref: "#/components/responses/NotFound" - default: - $ref: "#/components/responses/DefaultResponse" - - put: - tags: - - TI-M Pro - - orgAdminFhirEndpoints - description: "Updates an endpoint" - operationId: updateEndpoint - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/FhirEndpoint" - responses: - "200": - content: - application/json: - schema: - $ref: "#/components/schemas/FhirEndpoint" - description: "Successfully updated endpoint" - "400": - $ref: "#/components/responses/BadRequest" - "404": - $ref: "#/components/responses/NotFound" - default: - $ref: "#/components/responses/DefaultResponse" - - delete: - tags: - - TI-M Pro - - orgAdminFhirEndpoints - description: "Deletes a endpoint" - operationId: deleteEndpoint - responses: - "204": - description: "Successfully delete endpoint" - "404": - $ref: "#/components/responses/NotFound" - default: - $ref: "#/components/responses/DefaultResponse" - - /devices/{deviceId}/fhir/org/healthcareService/{hsId}/location: - parameters: - - $ref: "#/components/parameters/deviceId" - - $ref: "#/components/parameters/transactionIdHeader" - - $ref: "#/components/parameters/healthcareServiceId" - - get: - tags: - - TI-M Pro - - orgAdminFhirLocations - description: "Get all locations for healthcare service - (the search result could also contain all other resources that are related with it. - Please ensure that the searched resources are included at any time!)" - operationId: getLocations - responses: - "200": - description: "Successfully get all locations for healthcare service" - content: - application/json: - schema: - $ref: "#/components/schemas/FhirSearchResult" - "404": - $ref: "#/components/responses/NotFound" - default: - $ref: "#/components/responses/DefaultResponse" - - post: - tags: - - TI-M Pro - - orgAdminFhirLocations - description: "Create location and return the created resource" - operationId: createLocation - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/FhirLocation" - responses: - "201": - description: "Successful created" - content: - application/json: - schema: - $ref: "#/components/schemas/FhirLocation" - "400": - $ref: "#/components/responses/BadRequest" - "404": - $ref: "#/components/responses/NotFound" - default: - $ref: "#/components/responses/DefaultResponse" - - /devices/{deviceId}/fhir/org/healthcareService/{hsId}/location/{locId}: - parameters: - - $ref: "#/components/parameters/deviceId" - - $ref: "#/components/parameters/transactionIdHeader" - - $ref: "#/components/parameters/healthcareServiceId" - - $ref: "#/components/parameters/locationId" - - get: - description: "Returns information about the requested location" - tags: - - TI-M Pro - - orgAdminFhirLocations - operationId: getLocation - responses: - "200": - description: "Successfully get Location" - content: - application/json: - schema: - $ref: "#/components/schemas/FhirLocation" - "404": - $ref: "#/components/responses/NotFound" - default: - $ref: "#/components/responses/DefaultResponse" - - put: - tags: - - TI-M Pro - - orgAdminFhirLocations - description: "Updates a Location" - operationId: updateLocation - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/FhirLocation" - responses: - "200": - content: - application/json: - schema: - $ref: "#/components/schemas/FhirLocation" - description: "Successfully updated location" - "400": - $ref: "#/components/responses/BadRequest" - "404": - $ref: "#/components/responses/NotFound" - default: - $ref: "#/components/responses/DefaultResponse" - - delete: - tags: - - TI-M Pro - - orgAdminFhirLocations - description: "Deletes a location" - operationId: deleteLocation - responses: - "204": - description: "Successfully delete location" - "400": - $ref: "#/components/responses/BadRequest" - "404": - $ref: "#/components/responses/NotFound" - default: - $ref: "#/components/responses/DefaultResponse" - - /devices/{deviceId}/fhir/fhirAuthenticate: - parameters: - - $ref: "#/components/parameters/deviceId" - - $ref: "#/components/parameters/transactionIdHeader" - - post: - tags: - - TI-M Pro - - practitionerFhirAdministration - description: "This request starts the OIDC authentication for getting access to change the own FHIR entry." - operationId: authenticateOnFhirDirectory - responses: - "200": - description: "OIDC flow with IDP successfully completed" - "401": - $ref: "#/components/responses/Unauthorized" - "403": - $ref: "#/components/responses/Forbidden" - "404": - $ref: "#/components/responses/NotFound" - "501": - description: "Unimplemented - if the underlying client does not support FHIR-VZD authentication" - default: - $ref: "#/components/responses/DefaultResponse" - - /devices/{deviceId}/fhir/mxidInFhirDirectory: - parameters: - - $ref: "#/components/parameters/deviceId" - - $ref: "#/components/parameters/transactionIdHeader" - - post: - tags: - - TI-M Pro - - practitionerFhirAdministration - description: "Set the MXID in the own practitioner FHIR resource and the created endpoint" - operationId: setMxidInFhirDirectory - responses: - "201": - description: "mxid entry in FHIR-VZD was created" - content: - application/json: - schema: - $ref: "#/components/schemas/FhirEndpoint" - "400": - $ref: "#/components/responses/BadRequest" - "401": - $ref: "#/components/responses/Unauthorized" - "403": - $ref: "#/components/responses/Forbidden" - "404": - $ref: "#/components/responses/NotFound" - "501": - description: "Unimplemented - if the underlying client does not support practitioner FHIR-VZD administration" - default: - $ref: "#/components/responses/DefaultResponse" - - get: - tags: - - TI-M Pro - - practitionerFhirAdministration - description: "Returns the own practitioner entry with belonging resources from the FHIR Directory." - operationId: readMxidInFhirDirectory - responses: - "200": - description: "The own FHIR-Practitioner entry data" - content: - application/json: - schema: - $ref: "#/components/schemas/FhirSearchResult" - "401": - $ref: "#/components/responses/Unauthorized" - "403": - $ref: "#/components/responses/Forbidden" - "404": - $ref: "#/components/responses/NotFound" - "501": - description: "Unimplemented - if the underlying client does not support practitioner FHIR-VZD administration" - default: - $ref: "#/components/responses/DefaultResponse" - - delete: - tags: - - TI-M Pro - - practitionerFhirAdministration - description: "Remove the MXID in the own Practitioner FHIR resource." - operationId: removeMxidInFhirDirectory - responses: - "204": - description: "Successful deleted" - "401": - $ref: "#/components/responses/Unauthorized" - "403": - $ref: "#/components/responses/Forbidden" - "404": - $ref: "#/components/responses/NotFound" - "501": - description: "Unimplemented - if the underlying client does not support practitioner FHIR-VZD administration" - default: - $ref: "#/components/responses/DefaultResponse" - - /devices/{deviceId}/homeserver/search: - parameters: - - $ref: "#/components/parameters/deviceId" - - $ref: "#/components/parameters/transactionIdHeader" - - get: - tags: - - TI-M Pro - - searchOnHomeserver - description: "Returns a list of users on same homeserver that matches search parameters" - operationId: searchOnHomeserver - parameters: - - name: displayName - in: query - description: "Display name of account" - schema: - type: string - - name: mxId - in: query - description: "MxId of account" - schema: - type: string - example: "@someone:gematik.de" - - responses: - "200": - description: "search result for given parameters" - content: - application/json: - schema: - $ref: "#/components/schemas/HomeserverSearchResultList" - "401": - $ref: "#/components/responses/Unauthorized" - "403": - $ref: "#/components/responses/Forbidden" - default: - $ref: "#/components/responses/DefaultResponse" - - /devices/{deviceId}/fhir/searchOrganizationInFhirDirectory: - parameters: - - $ref: "#/components/parameters/deviceId" - - $ref: "#/components/parameters/transactionIdHeader" - - get: - tags: - - TI-M Pro - - TI-M_ePA - - searchInFhirDirectory - description: "Returns all belonging resources of an organization" - operationId: searchOrganizationInFhirDirectory - parameters: - - name: healthcareServiceName - in: query - description: "Name of the healthcare service" - schema: - type: string - - name: name - in: query - description: "Name of the Organization" - schema: - type: string - - name: address - in: query - description: "Address of the Organization." - schema: - type: string - - name: telematikId - in: query - description: "The telematikId of the Organization." - schema: - type: string - - name: typeCode - in: query - description: "The type of the Organization (OrganizationTypeVS.Code)." - schema: - type: string - - name: typeDisplay - in: query - description: "The type of the Organization (OrganizationTypeVS.Display)." - schema: - type: string - - name: contactMxid - in: query - description: "MXID of the Organization.contact in uri scheme." - schema: - type: string - example: matrix:u/someone:gematik.de - - name: contactName - in: query - description: "Name of the Organization.contact." - schema: - type: string - - name: contactPurpose - in: query - description: "Purpose of the Organization.contact." - schema: - type: string - - responses: - "200": - description: "search result for given parameters" - content: - application/json: - schema: - $ref: "#/components/schemas/FhirSearchResult" - "401": - $ref: "#/components/responses/Unauthorized" - "403": - $ref: "#/components/responses/Forbidden" - default: - $ref: "#/components/responses/DefaultResponse" - - /devices/{deviceId}/fhir/searchHealthcareServiceEndpointInFhirDirectory: - parameters: - - $ref: "#/components/parameters/deviceId" - - $ref: "#/components/parameters/transactionIdHeader" - - get: - tags: - - TI-M Pro - - TI-M_ePA - - searchInFhirDirectory - description: "Returns the found endpoints of healthcare-services matching query. - (the search result could also contain all other resources that are related with it. - Please ensure that the searched resources are included at any time!)" - operationId: searchHsEndpointInFhirDirectory - parameters: - - name: name - in: query - description: "The name of the endpoint" - schema: - type: string - - name: mxId - in: query - description: "MxId (in uri scheme) standing in address field of the endpoint" - schema: - type: string - example: matrix:u/someone:gematik.de - - responses: - "200": - description: "search result for given parameters" - content: - application/json: - schema: - $ref: "#/components/schemas/FhirSearchResult" - "401": - $ref: "#/components/responses/Unauthorized" - "403": - $ref: "#/components/responses/Forbidden" - default: - $ref: "#/components/responses/DefaultResponse" - - /devices/{deviceId}/fhir/searchPractitionerInFhirDirectory: - parameters: - - $ref: "#/components/parameters/deviceId" - - $ref: "#/components/parameters/transactionIdHeader" - - get: - tags: - - TI-M Pro - - TI-M_ePA - - searchInFhirDirectory - description: "Returns the found Practitioner entries and its belonging location, endpoints and practitioner roles" - operationId: searchPractitionerInFhirDirectory - parameters: - - name: name - in: query - description: "Name of the Practitioner" - schema: - type: string - - name: address - in: query - description: "Address of the Practitioner." - schema: - type: string - - name: telematikId - in: query - description: "The telematikId of the Practitioner." - schema: - type: string - - name: typeCode - in: query - description: "The type of the Practitioner (PractitionerQualificationProfessionOidVS.Code)." - schema: - type: string - - name: typeDisplay - in: query - description: "The type of the Practitioner (PractitionerQualificationProfessionOidVS.Display)." - schema: - type: string - - name: mxid - in: query - description: "MXID of the Practitioner in uri scheme." - schema: - type: string - example: matrix:u/someone:gematik.de - - responses: - "200": - description: "search result for given parameters" - content: - application/json: - schema: - $ref: "#/components/schemas/FhirSearchResult" - "401": - $ref: "#/components/responses/Unauthorized" - "404": - $ref: "#/components/responses/NotFound" - default: - $ref: "#/components/responses/DefaultResponse" - - /devices/{deviceId}/sendMessage: - parameters: - - $ref: "#/components/parameters/deviceId" - - $ref: "#/components/parameters/transactionIdHeader" - - post: - tags: - - TI-M Pro - - TI-M_ePA - - message - description: "Send a direct message to another user. Should work without creating a dedicated room first. The recipients MxId is received through a searchInFhirDirectory-Request." - operationId: sendDirectMessage - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/DirectMessage" - responses: - "200": - description: "The message was sent successfully to its recipient" - content: - application/json: - schema: - $ref: "#/components/schemas/Message" - "400": - $ref: "#/components/responses/BadRequest" - "401": - $ref: "#/components/responses/Unauthorized" - "403": - $ref: "#/components/responses/Forbidden" - "404": - $ref: "#/components/responses/NotFound" - default: - $ref: "#/components/responses/DefaultResponse" - - /devices/{deviceId}/rooms/{roomId}/messages: - parameters: - - $ref: "#/components/parameters/deviceId" - - $ref: "#/components/parameters/transactionIdHeader" - - $ref: "#/components/parameters/roomId" - - get: - tags: - - TI-M Pro - - TI-M_ePA - - message - description: "list messages in room" - operationId: getMessages - responses: - "200": - description: "this rooms messages" - content: - application/json: - schema: - $ref: "#/components/schemas/Messages" - "401": - $ref: "#/components/responses/Unauthorized" - "403": - $ref: "#/components/responses/Forbidden" - "404": - $ref: "#/components/responses/NotFound" - default: - $ref: "#/components/responses/DefaultResponse" - - post: - tags: - - TI-M Pro - - TI-M_ePA - - message - description: "send a new message" - operationId: sendMessage - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/MessageContent" - responses: - "200": - description: "Message sent" - content: - application/json: - schema: - $ref: "#/components/schemas/Message" - "400": - $ref: "#/components/responses/BadRequest" - "401": - $ref: "#/components/responses/Unauthorized" - "403": - $ref: "#/components/responses/Forbidden" - "404": - $ref: "#/components/responses/NotFound" - default: - $ref: "#/components/responses/DefaultResponse" - - /devices/{deviceId}/rooms/{roomId}/messages/{messageId}: - parameters: - - $ref: "#/components/parameters/deviceId" - - $ref: "#/components/parameters/transactionIdHeader" - - $ref: "#/components/parameters/roomId" - - $ref: "#/components/parameters/messageId" - - get: - description: "get single message" - tags: - - TI-M Pro - - TI-M_ePA - - message - operationId: getMessage - responses: - "200": - description: "message information" - content: - application/json: - schema: - $ref: "#/components/schemas/Message" - "401": - $ref: "#/components/responses/Unauthorized" - "403": - $ref: "#/components/responses/Forbidden" - "404": - $ref: "#/components/responses/NotFound" - default: - $ref: "#/components/responses/DefaultResponse" - - put: - description: "edit an existing message" - tags: - - TI-M Pro - - TI-M_ePA - - message - operationId: editMessage - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/MessageContent" - responses: - "200": - description: "successfully edited message" - content: - application/json: - schema: - $ref: "#/components/schemas/Message" - "400": - $ref: "#/components/responses/BadRequest" - "401": - $ref: "#/components/responses/Unauthorized" - "403": - $ref: "#/components/responses/Forbidden" - "404": - $ref: "#/components/responses/NotFound" - default: - $ref: "#/components/responses/DefaultResponse" - - delete: - description: "delete a message" - tags: - - TI-M Pro - - TI-M_ePA - - message - operationId: deleteMessage - responses: - "204": - description: "message deleted" - "400": - $ref: "#/components/responses/BadRequest" - "401": - $ref: "#/components/responses/Unauthorized" - "403": - $ref: "#/components/responses/Forbidden" - "404": - $ref: "#/components/responses/NotFound" - default: - $ref: "#/components/responses/DefaultResponse" - - /devices/{deviceId}/rooms: - parameters: - - $ref: "#/components/parameters/deviceId" - - $ref: "#/components/parameters/transactionIdHeader" - - get: - tags: - - TI-M Pro - - TI-M_ePA - - room - operationId: getRooms - description: "get list of all rooms your account is associated with" - responses: - "200": - description: "all associated rooms of the logged in account" - content: - application/json: - schema: - $ref: "#/components/schemas/Rooms" - "401": - $ref: "#/components/responses/Unauthorized" - "403": - $ref: "#/components/responses/Forbidden" - "404": - $ref: "#/components/responses/NotFound" - default: - $ref: "#/components/responses/DefaultResponse" - - post: - tags: - - TI-M Pro - - TI-M_ePA - - room - description: "Create a room." - operationId: createRoom - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/CreateRoomRequest" - responses: - "201": - description: "Room created" - content: - application/json: - schema: - $ref: "#/components/schemas/Room" - "400": - $ref: "#/components/responses/BadRequest" - "401": - $ref: "#/components/responses/Unauthorized" - "403": - $ref: "#/components/responses/Forbidden" - "404": - $ref: "#/components/responses/NotFound" - default: - $ref: "#/components/responses/DefaultResponse" - - /devices/{deviceId}/rooms/public: - parameters: - - $ref: "#/components/parameters/deviceId" - - $ref: "#/components/parameters/transactionIdHeader" - - get: - tags: - - TI-M Pro - - TI-M_ePA - - room - description: "Get public rooms matching params" - operationId: getPublicRooms - parameters: - - name: name - in: query - description: "Full- or partial name of the Room" - schema: - type: string - - responses: - "200": - description: "all associated rooms of the logged in account" - content: - application/json: - schema: - $ref: "#/components/schemas/Rooms" - "401": - $ref: "#/components/responses/Unauthorized" - "403": - $ref: "#/components/responses/Forbidden" - "404": - $ref: "#/components/responses/NotFound" - default: - $ref: "#/components/responses/DefaultResponse" - - /devices/{deviceId}/rooms/{roomId}: - parameters: - - $ref: "#/components/parameters/deviceId" - - $ref: "#/components/parameters/transactionIdHeader" - - $ref: "#/components/parameters/roomId" - get: - tags: - - TI-M Pro - - TI-M_ePA - - room - description: "Get the room settings." - operationId: getRoomSettings - responses: - "200": - description: OK - content: - application/json: - schema: - $ref: "#/components/schemas/Room" - "401": - $ref: "#/components/responses/Unauthorized" - "403": - $ref: "#/components/responses/Forbidden" - "404": - $ref: "#/components/responses/NotFound" - default: - $ref: "#/components/responses/DefaultResponse" - - put: - tags: - - TI-M Pro - - TI-M_ePA - - room - description: "Change the room settings." - operationId: changeRoomSettings - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/RoomProperties" - responses: - "200": - description: "Successfully changed room settings" - content: - application/json: - schema: - $ref: "#/components/schemas/Room" - "400": - $ref: "#/components/responses/BadRequest" - "401": - $ref: "#/components/responses/Unauthorized" - "403": - $ref: "#/components/responses/Forbidden" - "404": - $ref: "#/components/responses/NotFound" - default: - $ref: "#/components/responses/DefaultResponse" - - delete: - tags: - - TI-M Pro - - TI-M_ePA - - room - description: "Forget about this room." - operationId: forgetRoom - responses: - "204": - description: "room forgotten" - "401": - $ref: "#/components/responses/Unauthorized" - "403": - $ref: "#/components/responses/Forbidden" - "404": - $ref: "#/components/responses/NotFound" - default: - $ref: "#/components/responses/DefaultResponse" - - /devices/{deviceId}/rooms/{roomId}/invite: - parameters: - - $ref: "#/components/parameters/deviceId" - - $ref: "#/components/parameters/transactionIdHeader" - - $ref: "#/components/parameters/roomId" - - post: - tags: - - TI-M Pro - - TI-M_ePA - - room - description: "Invite a user into the room." - operationId: inviteIntoRoom - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/RoomInvite" - responses: - "200": - description: "sent an invite to given user" - content: - application/json: - schema: - $ref: "#/components/schemas/Room" - "400": - $ref: "#/components/responses/BadRequest" - "401": - $ref: "#/components/responses/Unauthorized" - "403": - $ref: "#/components/responses/Forbidden" - "404": - $ref: "#/components/responses/NotFound" - default: - $ref: "#/components/responses/DefaultResponse" - - /devices/{deviceId}/rooms/{roomId}/join: - parameters: - - $ref: "#/components/parameters/deviceId" - - $ref: "#/components/parameters/transactionIdHeader" - - $ref: "#/components/parameters/roomId" - - post: - tags: - - TI-M Pro - - TI-M_ePA - - room - description: "join the room." - operationId: joinRoom - responses: - "200": - description: "room joined" - content: - application/json: - schema: - $ref: "#/components/schemas/Room" - "401": - $ref: "#/components/responses/Unauthorized" - "403": - $ref: "#/components/responses/Forbidden" - "404": - $ref: "#/components/responses/NotFound" - default: - $ref: "#/components/responses/DefaultResponse" - - /devices/{deviceId}/rooms/{roomId}/leave: - parameters: - - $ref: "#/components/parameters/deviceId" - - $ref: "#/components/parameters/transactionIdHeader" - - $ref: "#/components/parameters/roomId" - - post: - tags: - - TI-M Pro - - TI-M_ePA - - room - description: "Leave the room." - operationId: leaveRoom - responses: - "200": - description: "room left" - content: - application/json: - schema: - $ref: "#/components/schemas/Room" - "401": - $ref: "#/components/responses/Unauthorized" - "403": - $ref: "#/components/responses/Forbidden" - "404": - $ref: "#/components/responses/NotFound" - default: - $ref: "#/components/responses/DefaultResponse" - - /devices/{deviceId}/rooms/{roomId}/state: - parameters: - - $ref: "#/components/parameters/deviceId" - - $ref: "#/components/parameters/transactionIdHeader" - - $ref: "#/components/parameters/roomId" - - get: - tags: - - TI-M Pro - - TI-M_ePA - - room - description: "Returns all state events of the room" - operationId: "Get state events" - responses: - "200": - description: "Get room state events" - content: - application/json: - schema: - $ref: "#/components/schemas/RoomStates" - "401": - $ref: "#/components/responses/Unauthorized" - "403": - $ref: "#/components/responses/Forbidden" - "404": - $ref: "#/components/responses/NotFound" - default: - $ref: "#/components/responses/DefaultResponse" - - /devices/{deviceId}/contacts: - parameters: - - $ref: "#/components/parameters/deviceId" - - $ref: "#/components/parameters/transactionIdHeader" - - get: - tags: - - TI-M Pro - - contactManagement - description: "Returns the contacts with invite settings." - operationId: getContacts - responses: - 200: - description: "List of all contact settings of the user" - content: - application/json: - schema: - $ref: "#/components/schemas/Contacts" - default: - $ref: "#/components/responses/DefaultResponse" - - post: - tags: - - TI-M Pro - - contactManagement - description: "Creates the setting for the contact." - operationId: createContactSetting - requestBody: - required: true - content: - application/json: - schema: - $ref: "#/components/schemas/Contact" - responses: - "200": - description: "Contact setting successfully created" - content: - application/json: - schema: - $ref: "#/components/schemas/Contact" - "400": - $ref: "#/components/responses/BadRequest" - "404": - $ref: "#/components/responses/NotFound" - default: - $ref: "#/components/responses/DefaultResponse" - - put: - tags: - - TI-M Pro - - contactManagement - description: "Updates the setting for the contact." - operationId: updateContactSetting - requestBody: - required: true - content: - application/json: - schema: - $ref: "#/components/schemas/Contact" - responses: - "200": - description: "Contact setting successfully updated" - content: - application/json: - schema: - $ref: "#/components/schemas/Contact" - "400": - $ref: "#/components/responses/BadRequest" - "404": - $ref: "#/components/responses/NotFound" - default: - $ref: "#/components/responses/DefaultResponse" - - /devices/{deviceId}/contacts/{mxid}: - parameters: - - $ref: "#/components/parameters/deviceId" - - $ref: "#/components/parameters/transactionIdHeader" - - $ref: "#/components/parameters/mxidInPath" - - get: - tags: - - TI-M Pro - - contactManagement - description: "Returns the contacts with invite settings." - operationId: getContact - responses: - "200": - description: "Retrieve the setting for the contact {mxid}." - content: - application/json: - schema: - $ref: "#/components/schemas/Contact" - default: - $ref: "#/components/responses/DefaultResponse" - - delete: - tags: - - TI-M Pro - - contactManagement - description: "Deletes the setting for the contact {mxid}." - operationId: deleteContactSetting - responses: - "204": - description: Deleted - "400": - $ref: "#/components/responses/BadRequest" - "401": - description: Unauthorized - "404": - $ref: "#/components/responses/NotFound" - default: - $ref: "#/components/responses/DefaultResponse" - - /devices/{deviceId}/media: - parameters: - - $ref: "#/components/parameters/deviceId" - - $ref: "#/components/parameters/transactionIdHeader" - post: - tags: - - TI-M Pro - - TI-M_ePA - - media - description: "Uploads a file and returns its file-id" - operationId: postMediaFile - parameters: - - in: header - name: Content-Type - required: true - description: Define type of the sent media. Should be in compliance with RFC6838 - schema: - type: string - requestBody: - required: true - content: - "*/*": - schema: - type: string - format: binary - responses: - "201": - description: "" - content: - application/json: - schema: - $ref: "#/components/schemas/MediaFileId" - - /devices/{deviceId}/media/{fileId}: - parameters: - - $ref: "#/components/parameters/deviceId" - - $ref: "#/components/parameters/transactionIdHeader" - - $ref: "#/components/parameters/fileId" - get: - tags: - - TI-M Pro - - TI-M_ePA - - media - description: "Returns a previously uploaded file with given id" - operationId: getMediaFile - responses: - "200": - description: "Retrieve the media file" - content: - application/octet-stream: - schema: - type: string - format: binary - "404": - $ref: "#/components/responses/NotFound" - default: - $ref: "#/components/responses/DefaultResponse" - - delete: - tags: - - TI-M Pro - - TI-M_ePA - - media - description: "Deletes a previously uploaded file with given id" - operationId: deleteMediaFile - responses: - "204": - description: "Media deleted" - "404": - $ref: "#/components/responses/NotFound" - -# Descriptions of common components -components: - - parameters: - - deviceId: - name: deviceId - in: path - description: "ID of the device that will be used." - required: true - schema: - type: integer - format: int64 - example: 42 - - roomId: - name: roomId - in: path - description: "ID of the room" - required: true - schema: - type: string - example: room1 - - messageId: - name: messageId - in: path - description: "ID of the message" - required: true - schema: - type: string - example: msg-4711 - - mxidInPath: - name: mxid - in: path - description: "ID of the contact (mxid)." - required: true - schema: - type: string - example: "@you:example.org" - - healthcareServiceId: - name: hsId - in: path - description: "ID of the healthcareService" - required: true - schema: - type: string - example: 1a62648f-55a7-42d5-ab7f-841e78be390e - - locationId: - name: locId - in: path - description: "ID of the location" - required: true - schema: - type: string - example: c8632e61-b04d-4c3f-9818-ab9a641ef18a - - endpointId: - name: endId - in: path - description: "ID of the location" - required: true - schema: - type: string - example: 81add1c5-675b-4785-9405-a2e75b660b2e - - fileId: - name: fileId - in: path - description: "ID of media file" - required: true - schema: - type: string - example: 81add1c5-675b-4785-9405-a2e75b660b2e - - transactionIdHeader: - in: header - name: Transaction-Id - required: false - description: Parameter to identify running transaction (name/id). Can be used for debugging purpose - example: "@TCID:TIM_11_AF_401/e800424f-b37d-4fa9-969e-894ddc0b2362" - schema: - type: string - - responses: - DefaultResponse: - description: "The default error response" - content: - application/json: - schema: - $ref: "#/components/schemas/Error" - NotFound: - description: "The specified resource was not found" - content: - application/json: - schema: - $ref: "#/components/schemas/Error" - InternalServerError: - description: "Something went wrong server internally" - content: - application/json: - schema: - $ref: "#/components/schemas/Error" - Unauthorized: - description: "Unauthorized - you have to login first" - content: - application/json: - schema: - $ref: "#/components/schemas/AuthFlows" - Forbidden: - description: "Forbidden - you are not allowed to do this" - content: - application/json: - schema: - $ref: "#/components/schemas/Error" - BadRequest: - description: "Bad Request" - content: - application/json: - schema: - $ref: "#/components/schemas/Error" - - schemas: - - InfoObject: - description: "" - required: - - title - - clientInfo - - fachdienstInfo - - testDriverVersion - - homeserver - - contact - - description - readOnly: true - type: object - properties: - title: - type: string - description: "Der Titel der Anwendung" - example: "Test-Schnittstelle des TI-Messenger Clients" - description: - type: string - description: "Eine kurze Beschreibung der Anwendung" - example: "TI-Messenger-Client Test-Schnittstelle" - termsOfService: - type: string - format: uri - description: "Eine URL zu den Terms of Service für dieses API." - example: "https://example.com/terms/" - homeserver: - type: string - description: "Name des zuständigen Homeservers" - example: "gematik.de" - contact: - $ref: "#/components/schemas/ContactInfo" - clientInfo: - $ref: "#/components/schemas/ClientSoftwareInfo" - fachdienstInfo: - $ref: "#/components/schemas/SoftwareInfo" - testDriverVersion: - type: string - description: "Version of the implemented TiMessengerTestDriver" - example: "1.0.0" - - ContactInfo: - readOnly: true - description: "Die Kontaktinformationen für diese Schnittstelle." - type: object - required: - - name - properties: - name: - type: string - description: "Der Name von der Kontaktperson / -Organisation" - example: "Firma 123" - url: - type: string - format: uri - description: "Eine URL zu den Kontaktinformationen für dieses API. - In dem Dokument unter dieser URL muss ein Link zum Download der aktuell genutzten YAML Datei dieser Schnittstelle hinterlegt sein." - example: "https://www.example.com/support" - email: - type: string - format: email - description: "Der E-Mail Adresse der Kontaktperson / -Organisation." - example: "support@example.com" - - SoftwareInfo: - description: "General information about a software" - required: - - name - - version - type: object - properties: - name: - type: string - description: "Name of the provided software" - example: "TI-Messenger-Software" - description: - description: "A short description of the provided software" - example: "The TI-Messenger-Software is an implementation of the TI-Messenger specification." - type: string - version: - description: "The version of the software" - example: "1.0.0" - type: string - osInfo: - $ref: "#/components/schemas/OsInfo" - applicationType: - $ref: "#/components/schemas/ApplicationType" - contact: - $ref: "#/components/schemas/ContactInfo" - matrixVersion: - type: string - example: "1.3" - description: Implemented version of matrix protocol https://spec.matrix.org/latest/ - - ClientSoftwareInfo: - description: "General information about the client software" - allOf: - - $ref: "#/components/schemas/SoftwareInfo" - - $ref: "#/components/schemas/ClientCapabilities" - properties: - browserInfo: - $ref: "#/components/schemas/BrowserInfo" - - ClientCapabilities: - description: "Flags for implemented capabilities of the client" - type: object - properties: - canAdministrateFhirOrganization: - type: boolean - description: "Whether this client can handle OrgAdmin-operations to administrate an organization in FHIR-VZD" - canAdministrateFhirPractitioner: - type: boolean - description: "Whether this client can handle operations to administrate a practitioner entry in FHIR-VZD" - canSendMessages: - type: boolean - description: "Whether this client has basic messaging capabilities" - - OsInfo: - description: "General information about the underlying operating system" - required: - - operatingSystem - type: object - properties: - operatingSystem: - $ref: "#/components/schemas/OperatingSystem" - version: - description: "Version of the OS" - example: "1.0.0" - type: string - - OperatingSystem: - description: "Enum of possible operating systems" - type: string - enum: [ Windows, OSx, iOS, Android, Linux ] - - ApplicationType: - description: "Enum of possible types of applications" - type: string - enum: [ Native, WebApp ] - - BrowserInfo: - description: "Additional information about the used browser. Should only be filled if application type is 'WebApp'" - properties: - name: - type: string - description: "Name of the used browser" - example: Firefox - version: - type: string - description: "Version of the used Browser" - example: 1.0.0 - - Error: - description: "Default error object with information about the occurred error" - type: object - properties: - errorCode: - description: "a code identifying this error" - type: string - errorMessage: - description: "a readable message describing the error" - type: string - required: - - errorCode - - errorMessage - - ClaimDeviceRequest: - required: - - claimerName - - claimFor - type: object - description: "Request for claiming a device" - properties: - claimerName: - type: string - description: "Name of the claimer" - example: "some name" - claimFor: - type: integer - description: "Duration in seconds this device should be exclusively claimed for. Resets after using device." - minimum: 60 - maximum: 300 - example: 180 - - Devices: - description: "The list of connected devices and their status" - type: object - properties: - devices: - description: "The list of connected devices and their status" - type: array - items: - $ref: "#/components/schemas/DeviceInfo" - readOnly: true - - DeviceInfo: - description: "Claim information about a device" - required: - - deviceId - - deviceName - - deviceStatus - - claimerName - - claimedUntil - readOnly: true - type: object - properties: - deviceId: - type: integer - format: int64 - description: "Identifier of the device" - example: 4711 - deviceName: - type: string - description: "Name of the device" - example: "awesome_device_01" - deviceStatus: - type: string - enum: [ claimed, free ] - description: "Status of the device" - claimerName: - type: string - description: "Name of the claimer" - example: "some name" - claimerCn: - type: string - description: "Common name of claimers client cert" - example: "gematik GmbH" - cn: - type: string - description: "Common name of the deposited HBA/SMC-B if existing" - example: "Dr Renate Grunner" - telematikId: - type: string - description: "TelematikId of the deposited HBA/SMC-B if existing" - example: "Grunner-test-only" - claimedUntil: - type: string - format: date-time - description: "Time until device is unclaimed. Each interaction with device extends claim time." - example: 2022-04-01T08:30:00Z - - AuthFlows: - description: "information about available authentication flows and already completed stages" - type: object - properties: - completedAuthStages: - description: "already completed stages" - type: array - items: - $ref: "#/components/schemas/AuthStageName" - flows: - description: "available authentication flows and their stages" - type: array - items: - $ref: "#/components/schemas/AuthFlow" - params: - description: "parameters for all the stages" - type: object - properties: - basicAuth: - $ref: "#/components/schemas/BasicAuthStage" - - AuthStageName: - description: "A stage in an authentication flow" - type: string - enum: [ basicAuth ] - example: basicAuth - - AuthFlow: - description: "Authentication flow and its stages" - type: object - properties: - stages: - description: "stages for this flow" - type: array - items: - $ref: "#/components/schemas/AuthStageName" - - BasicAuthStage: - description: "AuthStage for username + password authentication" - required: - - username - - password - type: object - properties: - username: - type: string - description: "The username (localpart of the MXID)" - example: "myUsername" - password: - type: string - format: password - description: "If authMethod is basicAuth, a password is required" - example: "mySecretPassword" - - Login: - description: "Login data" - type: object - allOf: - - $ref: "#/components/schemas/BasicAuthStage" - properties: - authStage: - $ref: "#/components/schemas/AuthStageName" - - Account: - description: "General information of an account" - readOnly: true - type: object - allOf: - - $ref: "#/components/schemas/MxId" - required: - - username - - password - - displayName - properties: - username: - type: string - description: "Username that can be used to login to this account" - example: "ThomasMueller" - password: - type: string - description: "Password that can be used to login to this account" - example: "SafePassword123" - displayName: - type: string - description: "The displayName" - example: "some name" - - MxId: - description: "The Matrix-ID of an account" - type: object - required: - - mxid - properties: - mxid: - description: "The Matrix-ID of an account" - type: string - example: "@someone:gematik.de" - - matrixKeyInfo: - description: "Information about recoveryKey" - type: object - properties: - mxId: - $ref: "#/components/schemas/MxId" - key: - type: string - description: "The actual key" - example: "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz" - - Messages: - description: "A list of messages and its properties" - type: array - items: - $ref: "#/components/schemas/Message" - - Message: - description: "A message and its metadata" - readOnly: true - type: object - required: - - author - - MessageContent - properties: - messageId: - type: string - description: "The message identifier. Must be returned in response to a sendMessage request. Is used to delete a specific message." - example: "06eaad80-f8ce-4dce-82bc-62dd194e626c" - timestamp: - type: string - format: date-time - example: 2021-07-20T17:32:28Z - description: "Timestamp of sending the message" - lastUpdated: - type: string - format: date-time - example: 2021-07-20T18:32:28Z - description: "Timestamp of last editing" - author: - type: string - description: "MxId of the author of this message" - allOf: - - $ref: "#/components/schemas/MessageContent" - - MessageContent: - description: "Content of a message" - type: object - required: - - body - - msgtype - properties: - body: - type: string - description: "The textual representation of this message." - example: "hi there" - msgtype: - type: string - description: "The type of message, e.g. m.image, m.text. See https://spec.matrix.org/v1.3/client-server-api/#mroommessage-msgtypes for more information" - example: "m.text" - fileId: - type: string - description: "File id - for example an UUID" - example: "74738ff5-5367-5958-9aee-98fffdcd1876" - info: - type: object - properties: - mimetype: - type: string - description: "Mimetype of the file located at {url}" - example: "image/jpeg" - size: - type: integer - description: "Size of the file in bytes." - example: 123456 - - MediaFileId: - description: "A unique id to a previously uploaded file. For example an UUID." - required: - - fileId - properties: - fileId: - type: string - example: "74738ff5-5367-5958-9aee-98fffdcd1876" - - DirectMessage: - description: "A direct message to an other account." - type: object - properties: - toAccount: - type: string - description: "The recipients account ID. Can be the mxId or an other account id returned by the searchInFhirDirectory operations." - example: "@someone:gematik.de" - allOf: - - $ref: "#/components/schemas/MessageContent" - - Rooms: - description: "List of rooms and their properties" - type: array - items: - $ref: "#/components/schemas/Room" - - RoomInvite: - description: "List of accounts to invite into a room" - type: array - items: - $ref: "#/components/schemas/MxId" - - CreateRoomRequest: - description: "Information for a new room" - allOf: - - $ref: "#/components/schemas/RoomProperties" - properties: - invitedMembers: - description: "list of accounts to invite into the new room" - type: array - items: - $ref: "#/components/schemas/MxId" - - Room: - description: "Information about a room and its members" - required: - - RoomMembers - - RoomProperties - allOf: - - $ref: "#/components/schemas/RoomProperties" - - $ref: "#/components/schemas/RoomMembers" - - RoomProperties: - description: "Some general properties of a room" - type: object - required: - - name - - roomId - - roomAccess - properties: - name: - type: string - description: "The name of the room" - example: "some room" - theme: - type: string - description: "The theme of the room" - example: "some theme" - roomAccess: - type: string - enum: [ private, public ] - description: "The visibility of the room" - isEncrypted: - type: boolean - readOnly: true - description: "The room should always be encrypted" - roomId: - type: string - description: "The room identifier. Must be returned in response to a createRoom request. Is used to identify a specific room." - example: "!dowjfsdkjfskjdfsd:gematik.de" - roomVersion: - type: string - description: "The room version" - example: "10" - - RoomMembershipState: - description: "An accounts membership state for a room" - type: string - enum: [ knock, invite, join, ban, leave ] - - RoomMember: - description: "" - type: object - required: - - mxid - - membershipState - properties: - mxid: - description: "MxId as identifier, refers to an existing account" - type: string - example: "@someone:gematik.de" - membershipState: - $ref: "#/components/schemas/RoomMembershipState" - - RoomMembers: - description: "List of room associated accounts and their states" - type: object - required: - - members - properties: - members: - type: array - description: "associated accounts of the room and their states" - items: - $ref: "#/components/schemas/RoomMember" - - RoomState: - description: "Description of a room state event" - type: object - required: - - type - - roomId - - eventId - properties: - content: - type: string - format: json - description: "This value is very custom. Should be json formatted" - example: "{ join_rule: public }" - eventId: - type: string - description: "Id of the event" - example: "$143273582443PhrSn:example.org" - roomId: - type: string - description: "Id of belonging room" - example: "!636q39766251:example.com" - sender: - type: string - description: "@example:example.org" - example: "MxId of the creator" - stateKey: - type: string - description: "Present if, and only if, this event is a state event. The key making this piece of state unique in the room. Note that it is often an empty string." - example: "" - type: - type: string - description: "The type of the event" - example: "de.gematik.tim.room.casereference.v1" - - RoomStates: - description: "List of room states" - type: array - items: - $ref: "#/components/schemas/RoomState" - - Contact: - description: "Contact settings." - type: object - properties: - mxid: - type: string - description: "ID of the contact (mxid)." - example: "@someone:gematik.de" - inviteSettings: - type: object - properties: - start: - type: integer - minimum: 0 - format: int64 - description: "start (Epoch Unix Timestamp, SECONDS SINCE JAN 01 1970. (UTC))" - example: 1654159585 - end: - type: integer - minimum: 0 - format: int64 - description: "end (Epoch Unix Timestamp, SECONDS SINCE JAN 01 1970. (UTC))" - example: 1654169585 - required: - - start - description: "Invites from the mxid are granted between start and end date-time." - required: - - mxid - - inviteSettings - - Contacts: - description: "The list of contacts and their settings." - type: object - properties: - contacts: - description: "The list of contacts and their settings." - type: array - items: - $ref: "#/components/schemas/Contact" - readOnly: true - - HomeserverSearchResultList: - description: "The result for a search request for on homeserver" - readOnly: true - type: object - required: - - totalSearchResults - - searchResults - properties: - totalSearchResults: - description: "Total result count for this search. The number of entries in searchResults may be less or equal this number." - type: integer - example: 42 - searchResults: - description: "The list of search results. Its size May be smaller than totalSearchResults, if there are many results." - type: array - items: - $ref: "#/components/schemas/HomeserverSearchResult" - - HomeserverSearchResult: - description: "A flat description of an endpoint with belonging healthcare-service and organization" - readOnly: true - type: object - required: - - mxId - properties: - mxId: - description: "The Matrix-ID of an account" - type: string - example: "@someone:gematik.de" - displayName: - description: "The displayName" - type: string - example: "some name" - - FhirSearchResult: - description: "A FHIR Bundle containing search results" - type: object - required: - - total - - entry - properties: - resourceType: - type: string - example: "Bundle" - id: - type: string - example: "b2d4770f-2e18-4284-za6d-cb8463e5ea70" - meta: - $ref: "#/components/schemas/FhirMeta" - type: - type: string - total: - type: integer - example: 2 - minimum: 0 - maximum: 100 - format: int64 - description: "Number of all found entries" - entry: - type: array - items: - $ref: "#/components/schemas/FhirEntry" - - FhirMeta: - description: "Metadata of resource" - type: object - properties: - lastUpdated: - type: string - format: date-time - description: "Time when the depending resource was last updated" - example: 2022-04-01T08:30:00Z - versionId: - type: integer - description: "How many times this resource have been updated" - example: 2 - source: - type: string - profile: - type: array - items: - $ref: "#/components/schemas/FhirProfile" - tag: - type: array - items: - $ref: "#/components/schemas/FhirTag" - - FhirTag: - description: "Tag for ressource" - properties: - system: - type: string - example: "https://gematik.de/fhir/directory/CodeSystem/Origin" - code: - type: string - description: "Code identifier for tag" - example: "ldap" - display: - type: string - description: "What should be displayed for this tag" - example: "Synchronized from LDAP VZD" - userSelected: - type: boolean - example: true - - FhirProfile: - description: "Url to FHIR profil of the ressource" - type: string - example: "https://gematik.de/fhir/directory/StructureDefinition/HealthcareServiceDirectory" - - FhirEntry: - description: "FhirSearchEntry" - type: object - required: - - resource - properties: - fullUrl: - type: string - description: "The full URL to the ressource" - example: "https://fhir-directory-ref.vzd.ti-dienste.de/owner/HealthcareService/97563406-5836-475d-9ee6-48e02917dae2" - resource: - $ref: "#/components/schemas/FhirBaseResource" - search: - $ref: "#/components/schemas/FhirSearch" - - FhirBaseResource: - type: object - description: "FhirBaseResource" - discriminator: - propertyName: resourceType - mapping: - Organization: "#/components/schemas/FhirOrganization" - HealthcareService: "#/components/schemas/FhirHealthcareService" - PractitionerRole: "#/components/schemas/FhirPractitionerRole" - Location: "#/components/schemas/FhirLocation" - Endpoint: "#/components/schemas/FhirEndpoint" - Practitioner: "#/components/schemas/FhirPractitioner" - required: - - resourceType - - id - properties: - resourceType: - $ref: "#/components/schemas/FhirResourceType" - id: - type: string - description: "UUID of ressource" - example: "97563406-5836-475d-9ee6-48e02917dae2" - meta: - $ref: "#/components/schemas/FhirMeta" - text: - $ref: "#/components/schemas/FhirText" - identifier: - type: array - items: - $ref: "#/components/schemas/FhirIdentifier" - - FhirResourceType: - type: string - description: "Name of resourceType" - example: "HealthcareService" - enum: [ HealthcareService, Organization, Location, Endpoint, Practitioner, PractitionerRole ] - - FhirHealthcareService: - allOf: - - $ref: "#/components/schemas/FhirBaseResource" - type: object - properties: - name: - type: string - description: "Name of the ressource" - example: "Surgery station" - providedBy: - $ref: "#/components/schemas/FhirReference" - location: - type: array - items: - $ref: "#/components/schemas/FhirReference" - telecom: - type: array - items: - $ref: "#/components/schemas/FhirTelecom" - endpoint: - type: array - items: - $ref: "#/components/schemas/FhirReference" - serviceProvisionCode: - type: array - items: - $ref: "#/components/schemas/FhirCodeableConcept" - communication: - type: array - items: - $ref: "#/components/schemas/FhirCodeableConcept" - appointmentRequired: - type: boolean - description: "Is an appointment mandatory" - availableTime: - type: array - items: - $ref: "#/components/schemas/FhirAvailableTimes" - availabilityExceptions: - type: string - description: "" - example: "Closed on Friday 3.14.15926" - - FhirOrganization: - allOf: - - $ref: "#/components/schemas/FhirBaseResource" - type: object - properties: - name: - type: string - description: "Name of the ressource" - example: "Surgery station" - active: - type: boolean - description: "Is Ressource active" - type: - type: array - items: - $ref: "#/components/schemas/FhirType" - alias: - type: array - items: - type: string - - FhirPractitionerRole: - allOf: - - $ref: "#/components/schemas/FhirBaseResource" - type: object - required: - - practitioner - properties: - practitioner: - $ref: "#/components/schemas/FhirReference" - location: - type: array - items: - $ref: "#/components/schemas/FhirReference" - endpoint: - type: array - items: - $ref: "#/components/schemas/FhirReference" - - FhirLocation: - allOf: - - $ref: "#/components/schemas/FhirBaseResource" - type: object - properties: - name: - type: string - description: "Name of the ressource" - example: "Surgery station" - address: - $ref: "#/components/schemas/FhirAddress" - - FhirEndpoint: - allOf: - - $ref: "#/components/schemas/FhirBaseResource" - type: object - required: - - name - - address - properties: - name: - type: string - description: "Name of the ressource" - example: "Surgery station" - managingOrganization: - type: string - description: "Name of managing organization" - example: "Charite Berlin" - status: - type: string - description: "Status of the ressource" - example: "active" - enum: [ active, suspended, "off" ] - address: - description: "For endpoint in tim context the mxid in uri scheme" - type: string - example: "matrix:u/test:gematik.de" - connectionType: - $ref: "#/components/schemas/FhirConnectionType" - payloadType: - type: array - items: - $ref: "#/components/schemas/FhirCodeableConcept" - - FhirPractitioner: - allOf: - - $ref: "#/components/schemas/FhirBaseResource" - type: object - properties: - active: - type: boolean - description: "Is Ressource active" - name: - type: array - items: - $ref: "#/components/schemas/FhirName" - telecom: - type: array - items: - $ref: '#/components/schemas/FhirTelecom' - - FhirAvailableTimes: - type: object - description: "Summary of available times" - properties: - daysOfWeek: - type: array - description: "Short term of day" - example: [ "mon", "tue", "wed" ] - items: - type: string - availableStartTime: - type: string - description: "Start time" - example: "08:00:00" - availableEndTime: - type: string - description: "Start time" - example: "18:00:00" - - FhirAddress: - type: object - description: "Possible address" - properties: - use: - type: string - description: "For what should this address be used" - example: "work" - type: - type: string - description: "Describes what kind of address is it" - example: "postal" - text: - type: string - description: "Full address in one text" - example: "Müllersteige 38 74626 Bretzfeld Baden-Württemberg DE" - line: - type: array - example: [ "Müllersteige 38" ] - description: "Multiple address lines" - items: - type: string - city: - type: string - description: "City of address" - example: "Bretzfeld" - state: - type: string - description: "State of address" - example: "Baden-Württemberg" - postalCode: - type: string - description: "Postal code of address" - example: "74626" - country: - type: string - description: "Country code of address" - example: "DE" - - FhirSearch: - description: "Description of search type" - type: object - properties: - mode: - type: string - example: "match" - - FhirReference: - description: "Reference to another FhirRessource" - type: object - required: - - reference - properties: - reference: - type: string - description: "ResourceType and folloed by ID of the other reference devided by '/'" - example: "Organization/681b6c9f-a9d1-4dea-937c-4e4cf70b1f31" - - FhirText: - description: "Object of text" - type: object - properties: - status: - type: string - example: "generated" - div: - type: string - example: "This is a sync generated HealthcareService" - - FhirIdentifier: - description: "Object of text" - type: object - properties: - system: - type: string - example: "https://gematik.de/fhir/directory/CodeSystem/ldapUID" - value: - type: string - example: "681b6c9f-a9d1-4dea-937c-4e4cf70b1f31" - type: - $ref: "#/components/schemas/FhirType" - - FhirType: - type: object - properties: - coding: - type: array - items: - $ref: "#/components/schemas/FhirCoding" - - FhirCodeableConcept: - description: "Coding object" - type: object - properties: - coding: - type: array - items: - $ref: "#/components/schemas/FhirCoding" - text: - type: string - description: "Plain text representation of the concept" - - FhirCoding: - description: "Coding object" - type: object - properties: - system: - type: string - example: "http://terminology.hl7.org/CodeSystem/v2-0203" - code: - type: string - example: "PRN" - display: - type: string - example: "TI-Messenger chat" - - FhirTelecom: - description: "Coding object" - type: object - properties: - system: - type: string - example: "phone" - description: "one of phone | fax | email | pager | url | sms | other" - value: - type: string - example: "030-606 06 60" - description: "the actual value" - use: - type: string - example: "work" - description: "home | work | temp | old | mobile - purpose of this contact point" - - FhirConnectionType: - type: object - properties: - system: - type: string - example: "https://gematik.de/fhir/directory/CodeSystem/EndpointDirectoryConnectionType" - code: - type: string - example: "tim" - - FhirName: - type: object - description: "Personal data of practitioner" - required: - - text - properties: - use: - example: "usual" - description: "Use of the name" - type: string - text: - example: "Kersta Hoefler" - description: "Full Name" - type: string - family: - example: "Hoefler" - description: "Last name" - type: string - given: - type: array - items: - type: string - description: "First names" - example: [ "Kersta" ] - prefix: - type: array - items: - type: string - description: "Title and other prefixes" - example: [ "Dr.", "Prof." ] - - - - - # Mutual TLS is used for authentication of clients. In openAPI 3.0.x is mTLS not supported. Therefore the security scheme is not used. - # securitySchemes: - # mTLS: - # type: mutualTLS - # - # - #security: - # - mTLS: - # - +# TiMessengerTestTreiber API was moved to https://github.com/gematik/TI-Messenger-Testsuite +# in the directory src/main/resources/api \ No newline at end of file From 9b9f21b87949e778de85dbbc19e25f53495871e2 Mon Sep 17 00:00:00 2001 From: gem-jn Date: Tue, 4 Jun 2024 11:03:54 +0200 Subject: [PATCH 11/13] added new permissionConfig and examples --- .../permissionConfig.default-only.json | 3 ++ .../permissionConfig.domain-exception.json | 6 +++ .../permissionConfig.user-exception.json | 6 +++ src/schema/permissionConfig.json | 40 +++++++++++++++++++ 4 files changed, 55 insertions(+) create mode 100644 src/schema/examples/permissionConfig.default-only.json create mode 100644 src/schema/examples/permissionConfig.domain-exception.json create mode 100644 src/schema/examples/permissionConfig.user-exception.json create mode 100644 src/schema/permissionConfig.json diff --git a/src/schema/examples/permissionConfig.default-only.json b/src/schema/examples/permissionConfig.default-only.json new file mode 100644 index 00000000..63c26727 --- /dev/null +++ b/src/schema/examples/permissionConfig.default-only.json @@ -0,0 +1,3 @@ +{ + "defaultSetting": "allow all" +} diff --git a/src/schema/examples/permissionConfig.domain-exception.json b/src/schema/examples/permissionConfig.domain-exception.json new file mode 100644 index 00000000..f267a3a2 --- /dev/null +++ b/src/schema/examples/permissionConfig.domain-exception.json @@ -0,0 +1,6 @@ +{ + "defaultSetting": "block all", + "domainExceptions": { + "hassel.hoff": {} + } +} diff --git a/src/schema/examples/permissionConfig.user-exception.json b/src/schema/examples/permissionConfig.user-exception.json new file mode 100644 index 00000000..22e44f45 --- /dev/null +++ b/src/schema/examples/permissionConfig.user-exception.json @@ -0,0 +1,6 @@ +{ + "defaultSetting": "block all", + "userExceptions": { + "@david:hassel.hoff": {} + } +} diff --git a/src/schema/permissionConfig.json b/src/schema/permissionConfig.json new file mode 100644 index 00000000..d1902e19 --- /dev/null +++ b/src/schema/permissionConfig.json @@ -0,0 +1,40 @@ +{ + "$id": "https://gematik.de/ti-m/permissionConfig.json", + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "Permission Configuration", + "type": "object", + "properties": { + "defaultSetting": { + "type": "string", + "enum": [ + "allow all", + "block all" + ] + }, + "domainExceptions": { + "type": "object", + "description": "The map of servers to in-/exclude. This is a mapping of Matrix server name (https://spec.matrix.org/v1.3/appendices/#server-name) to empty object.", + "patternProperties": { + "^.*$": { + "type": "object", + "description": "An empty object for future enhancement" + } + }, + "additionalProperties": false + }, + "userExceptions": { + "type": "object", + "description": "The map of users to in-/exclude. This is a mapping of Matrix user ID (https://spec.matrix.org/v1.3/appendices/#user-identifiers) to empty object.", + "patternProperties": { + "^@.*$": { + "type": "object", + "description": "An empty object for future enhancement" + } + }, + "additionalProperties": false + } + }, + "required": [ + "defaultSetting" + ] +} \ No newline at end of file From 3ba6500cfe97c7ec93cd722e900f6036972b8830 Mon Sep 17 00:00:00 2001 From: Kim Brose <2803622+HarHarLinks@users.noreply.github.com> Date: Wed, 5 Jun 2024 17:55:50 +0200 Subject: [PATCH 12/13] Update FHIR-Directory.adoc --- docs/FHIR-Directory/FHIR-Directory.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/FHIR-Directory/FHIR-Directory.adoc b/docs/FHIR-Directory/FHIR-Directory.adoc index 54648fd9..fdc29f49 100644 --- a/docs/FHIR-Directory/FHIR-Directory.adoc +++ b/docs/FHIR-Directory/FHIR-Directory.adoc @@ -66,7 +66,7 @@ Im Rahmen des *TI-Messenger-Dienstes* sollen die folgenden Attribute eines `Endp | `endpoint.connectionType` | `tim` | Gibt an, um welche Anwendung es sich handelt | `endpoint.name` | `` | Identifier des Endpoints | `endpoint.PayloadType` | `tim-chat` | Kennung der Übertragenen Inhalte -| `endpoint.address` |`MXID` | Matrix-UserID eines Akteurs +| `endpoint.address` |`` | Matrix-UserID eines Akteurs |================================================================================================================= Beispiel: * `HealthcareService.endpoint.address = ` From 1dc75157aceaf91235b058d5460c958959564b6e Mon Sep 17 00:00:00 2001 From: Johannes Marbach Date: Mon, 8 Jul 2024 09:56:41 +0200 Subject: [PATCH 13/13] Document previously unspecified but already implemented MXID header --- src/openapi/TiMessengerContactManagement.yaml | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/openapi/TiMessengerContactManagement.yaml b/src/openapi/TiMessengerContactManagement.yaml index 3ac5b037..d01b2a93 100644 --- a/src/openapi/TiMessengerContactManagement.yaml +++ b/src/openapi/TiMessengerContactManagement.yaml @@ -73,6 +73,9 @@ paths: $ref: "#/components/responses/DefaultResponse" /contacts: + parameters: + - $ref: "#/components/parameters/mxidHeader" + get: tags: - getContacts @@ -138,6 +141,7 @@ paths: /contacts/{mxid}: parameters: + - $ref: "#/components/parameters/mxidHeader" - $ref: "#/components/parameters/mxid" get: @@ -177,6 +181,14 @@ components: parameters: + mxidHeader: + name: Mxid + in: header + description: MXID of the contact settings owner. MUST match with the + MXID resolved from the Matrix-OpenID-Token. + required: true + schema: + type: string mxid: name: mxid in: path