From ac5985d1b95cffb0ec83faed4b0b118d6c07dc67 Mon Sep 17 00:00:00 2001 From: Johannes Marbach Date: Wed, 25 Sep 2024 12:46:04 +0200 Subject: [PATCH] Reset src/openapi/TiMessengerTestTreiber.yaml --- src/openapi/TiMessengerTestTreiber.yaml | 2769 +---------------------- 1 file changed, 2 insertions(+), 2767 deletions(-) diff --git a/src/openapi/TiMessengerTestTreiber.yaml b/src/openapi/TiMessengerTestTreiber.yaml index c8938e9d..3376de0c 100644 --- a/src/openapi/TiMessengerTestTreiber.yaml +++ b/src/openapi/TiMessengerTestTreiber.yaml @@ -1,2767 +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.2 - 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: 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 - -paths: - /: - get: - tags: - - 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" - - /devices: - get: - tags: - - 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: - - 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: - - 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}/login: - parameters: - - $ref: "#/components/parameters/deviceId" - - $ref: "#/components/parameters/transactionIdHeader" - - get: - description: "Retrieve list of possible authentication flows" - tags: - - 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: - - 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: - - 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: - 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" - - $ref: "#/components/parameters/transactionIdHeader" - - get: - tags: - - 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: - - 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/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: - - 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: - - 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: - - 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: - - 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: - - 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: - - 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}/location: - parameters: - - $ref: "#/components/parameters/deviceId" - - $ref: "#/components/parameters/transactionIdHeader" - - $ref: "#/components/parameters/healthcareServiceId" - - get: - tags: - - 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: - - 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: - - 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: - - 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: - - 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/org/healthcareService/{hsId}/endpoint: - parameters: - - $ref: "#/components/parameters/deviceId" - - $ref: "#/components/parameters/transactionIdHeader" - - $ref: "#/components/parameters/healthcareServiceId" - - get: - tags: - - 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: - - 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: - - 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: - - 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: - - 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/mxidInFhirDirectory: - parameters: - - $ref: "#/components/parameters/deviceId" - - $ref: "#/components/parameters/transactionIdHeader" - - post: - tags: - - 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: - - 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: - - 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: - - 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 - - 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: - - 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." - schema: - type: string - - 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: - - 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 standing in address field of the endpoint" - 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/searchPractitionerInFhirDirectory: - parameters: - - $ref: "#/components/parameters/deviceId" - - $ref: "#/components/parameters/transactionIdHeader" - - get: - tags: - - 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." - schema: - type: string - - 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: - - 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: - parameters: - - $ref: "#/components/parameters/deviceId" - - $ref: "#/components/parameters/transactionIdHeader" - - get: - tags: - - 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: - - 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: - - 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: - - 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: - - 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: - - 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}/messages: - parameters: - - $ref: "#/components/parameters/deviceId" - - $ref: "#/components/parameters/transactionIdHeader" - - $ref: "#/components/parameters/roomId" - - get: - tags: - - 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: - - 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: - - 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: - - 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: - - 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/{roomId}/invite: - parameters: - - $ref: "#/components/parameters/deviceId" - - $ref: "#/components/parameters/transactionIdHeader" - - $ref: "#/components/parameters/roomId" - - post: - tags: - - 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: - - 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: - - 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: - - 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: - - 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: - - 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: - - 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: - - 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: - - 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: - - 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: - - 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: - - 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" - 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 - 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 - 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" - allOf: - - $ref: "#/components/schemas/RoomProperties" - - $ref: "#/components/schemas/RoomMembers" - - RoomProperties: - description: "Some general properties of a room" - type: object - required: - - name - 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" - - RoomMembershipState: - description: "An accounts membership state for a room" - type: string - enum: [ knock, invite, join, ban, leave ] - - RoomMember: - description: "" - type: object - 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 - 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 - 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-serviceand organization" - readOnly: true - type: object - 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 - 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 - 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 - 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 - 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 - 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, inactive ] - address: - description: "For endpoint in tim context the mxid" - type: string - example: "@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 - 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" - 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