# Copyright 2018 New Vector Ltd # Copyright 2020 The Matrix.org Foundation C.I.C. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. openapi: 3.1.0 info: title: Matrix Federation Leave Room API version: 1.0.0 paths: # Note: there is no v2 of make_leave (yet) "/send_leave/{roomId}/{eventId}": put: summary: Submit a signed leave event to a resident server description: |- **Note:** This API is nearly identical to the v1 API with the exception of the response format being fixed. This endpoint is preferred over the v1 API as it provides a more standarised response format. Senders which receive a 400, 404, or other status code which indicates this endpoint is not available should retry using the v1 API instead. Submits a signed leave event to the resident server for it to accept it into the room's graph. Note that events have a different format depending on the room version - check the [room version specification](/rooms) for precise event formats. **The request and response body here describe the common event fields in more detail and may be missing other required fields for a PDU.** operationId: sendLeaveV2 security: - signedRequest: [] parameters: - in: path name: roomId description: The room ID that is about to be left. required: true example: "!abc123:matrix.org" schema: type: string - in: path name: eventId description: The event ID for the leave event. required: true example: $abc123:example.org schema: type: string requestBody: content: application/json: schema: type: object properties: sender: type: string description: The user ID of the leaving member. example: "@someone:example.org" origin: type: string description: The name of the leaving homeserver. example: matrix.org origin_server_ts: type: integer format: int64 description: A timestamp added by the leaving homeserver. example: 1234567890 type: type: string description: The value `m.room.member`. example: m.room.member state_key: type: string description: The user ID of the leaving member. example: "@someone:example.org" content: type: object title: Membership Event Content description: The content of the event. example: membership: leave properties: membership: type: string description: The value `leave`. example: leave required: - membership depth: type: integer description: This field must be present but is ignored; it may be 0. example: 12 required: - state_key - sender - origin - origin_server_ts - type - depth - content example: { "room_id": "!somewhere:example.org", "type": "m.room.member", "state_key": "@someone:example.org", "origin": "example.org", "origin_server_ts": 1549041175876, "sender": "@someone:example.org", "content": { "membership": "leave" } } required: true responses: "200": description: |- An empty response to indicate the event was accepted into the graph by the receiving homeserver. content: application/json: schema: type: object title: Empty Object description: An empty object. examples: response: value: {} servers: - url: "{protocol}://{hostname}{basePath}" variables: protocol: enum: - http - https default: https hostname: default: localhost:8448 basePath: default: /_matrix/federation/v2 components: securitySchemes: $ref: definitions/security.yaml