{
  "apiVersion": "1.0.0", 
  "apis": [
    {
      "operations": [
        {
          "method": "GET", 
          "nickname": "get_registration_info", 
          "notes": "All login stages MUST be mentioned if there is >1 login type.", 
          "summary": "Get the login mechanism to use when registering.", 
          "type": "RegistrationFlows"
        }, 
        {
          "method": "POST", 
          "nickname": "submit_registration", 
          "notes": "If this is part of a multi-stage registration, there MUST be a 'session' key.", 
          "parameters": [
            {
              "description": "A registration submission", 
              "name": "body", 
              "paramType": "body", 
              "required": true, 
              "type": "RegistrationSubmission"
            }
          ], 
          "responseMessages": [
            {
              "code": 400, 
              "message": "Bad login type"
            }, 
            {
              "code": 400, 
              "message": "Missing JSON keys"
            }
          ], 
          "summary": "Submit a registration action.", 
          "type": "RegistrationResult"
        }
      ], 
      "path": "/register"
    }
  ], 
  "basePath": "http://localhost:8008/_matrix/client/api/v1", 
  "consumes": [
    "application/json"
  ], 
  "models": {
    "RegistrationFlows": {
      "id": "RegistrationFlows",
      "properties": {
        "flows": {
          "description": "A list of valid registration flows.",
          "type": "array",
          "items": {
            "$ref": "RegistrationInfo"
          }
        }
      }
    },
    "RegistrationInfo": {
      "id": "RegistrationInfo", 
      "properties": {
        "stages": {
          "description": "Multi-stage registration only: An array of all the login types required to registration.", 
          "items": {
            "$ref": "string"
          }, 
          "type": "array"
        }, 
        "type": {
          "description": "The first login type that must be used when logging in.", 
          "type": "string"
        }
      }
    }, 
    "RegistrationResult": {
      "id": "RegistrationResult", 
      "properties": {
        "access_token": {
          "description": "The access token for this user's registration if this is the final stage of the registration process.", 
          "type": "string"
        },
        "user_id": {
          "description": "The user's fully-qualified user ID.",
          "type": "string"
        }, 
        "next": {
          "description": "Multi-stage registration only: The next registration type to submit.", 
          "type": "string"
        },
        "session": {
          "description": "Multi-stage registration only: The session token to send when submitting the next registration type.",
          "type": "string"
        }
      }
    }, 
    "RegistrationSubmission": {
      "id": "RegistrationSubmission", 
      "properties": {
        "type": {
          "description": "The type of registration being submitted.", 
          "type": "string"
        },
        "session": {
          "description": "Multi-stage registration only: The session token from an earlier registration stage.",
          "type": "string"
        },
        "_registration_type_defined_keys_": {
          "description": "Keys as defined by the specified registration type, e.g. \"user\", \"password\""
        }
      }
    }
  }, 
  "produces": [
    "application/json"
  ], 
  "resourcePath": "/register", 
  "swaggerVersion": "1.2"
}

