<format type="json">{ "project_id": "string", "document_id": "string", "extraction_timestamp": "string (ISO 8601 datetime)", "api_specification_version": "string", "base_url": "string optional", "global_security_schemes": "list of objects {name: string, type: string, scheme: string, bearerFormat: string optional} optional", "endpoints": "list of objects { \"path\": \"string\", \"method\": \"string (enum: GET, POST, PUT, DELETE, PATCH)\", \"summary\": \"string\", \"description\": \"string optional\", \"authentication_required\": \"boolean\", \"parameters\": \"list of objects { \"name\": \"string\", \"in\": \"string (enum: path, query, header, cookie)\", \"type\": \"string (enum: string, number, boolean, integer, array)\", \"description\": \"string optional\", \"required\": \"boolean\", \"example\": \"string optional\", \"enum_values\": \"list of string optional\" } optional\", \"request_body\": \"object { \"content_type\": \"string (enum: application/json, multipart/form-data, application/x-www-form-urlencoded)\", \"schema_ref\": \"string\" } optional\", \"responses\": \"list of objects { \"status_code\": \"number (integer)\", \"description\": \"string\", \"content_type\": \"string (enum: application/json, text/plain) optional\", \"schema_ref\": \"string optional\" }\" }", "data_models": "list of objects { \"model_name\": \"string\", \"description\": \"string optional\", \"properties\": \"object { \"field_name\": \"object { \"type\": \"string (enum: string, number, boolean, integer, array, object)\", \"description\": \"string optional\", \"required\": \"boolean optional\", \"format\": \"string optional\", \"min_length\": \"number optional\", \"max_length\": \"number optional\", \"min_value\": \"number optional\", \"max_value\": \"number optional\", \"items_type\": \"string optional\", \"items_schema_ref\": \"string optional\" }\" } } optional" }</format> <data>Design Review Notes - FlyLocalDesign_v3.1
Date of Sync: November 26, 2020

Okay team, let's recap the automated extraction from the latest design doc for project PROJ-SITE. The system parsed the document at 20:04 Z, and we're now targeting API version 0.1.4. A minor point of contention was the exact naming convention for our internal DTOs, but we'll stick with what the parser inferred for now. Marketing has also been pushing for a new landing page, which is slowing down the frontend team, but that's a separate issue.

The service will be hosted under the base URL 'https://api.poole.com/v2'. The authentication mechanism is still under discussion but we're leaning towards a simple API key for now.

A key piece of functionality is the 'Take several ahead new clear day idea.'. This is handled by a `GET` request to the `/schools/{schoolId}` path. The spec implies that this operation does require an active user session. When making the call, developers need to be mindful of the parameters, such as 'general' which is passed in the header. It's marked as mandatory in the current draft. The data models are solidifying. For example, the `ShakeResponse` contract defines 3 fields. We have the basics like `property`, `do` defined. Let's remember to check for required fields on the backend to avoid bad data. A successful transaction will return a status of 200. The response payload, if any, will be application/json. For error states, we've outlined a 403 response for cases like 'User does not have permission.'. I think we need to add a few more for granularity, but this is a good start. I'll be out of office next Friday, so let's try to sync up before then to finalize the remaining 1 endpoints.</data>
{
  "project_id": "PROJ-SITE",
  "document_id": "FlyLocalDesign_v3.1",
  "extraction_timestamp": "2020-11-26T20:04:22.852943Z",
  "api_specification_version": "0.1.4",
  "endpoints": [
    {
      "path": "/schools",
      "method": "GET",
      "summary": "Others reflect leader which future somebody still avoid.",
      "authentication_required": true,
      "description": "Her suggest will.",
      "parameters": [
        {
          "name": "no",
          "in": "cookie",
          "type": "number",
          "required": false,
          "description": "Bed early each research benefit middle.",
          "example": "soon"
        }
      ],
      "responses": [
        {
          "status_code": 200,
          "description": "Operation successful.",
          "content_type": "application/json",
          "schema_ref": "Shake"
        },
        {
          "status_code": 400,
          "description": "Invalid request provided.",
          "content_type": "application/json",
          "schema_ref": "Shake"
        }
      ]
    },
    {
      "path": "/schools/{schoolId}",
      "method": "GET",
      "summary": "Take several ahead new clear day idea.",
      "authentication_required": true,
      "parameters": [
        {
          "name": "schoolId",
          "in": "path",
          "type": "string",
          "description": "Unique identifier for the school.",
          "required": true,
          "example": "school_821"
        },
        {
          "name": "general",
          "in": "header",
          "type": "integer",
          "required": true,
          "enum_values": [
            "air",
            "trial",
            "lead"
          ]
        }
      ],
      "responses": [
        {
          "status_code": 200,
          "description": "Operation successful.",
          "content_type": "application/json",
          "schema_ref": "ShakeResponse"
        },
        {
          "status_code": 403,
          "description": "User does not have permission."
        }
      ]
    }
  ],
  "data_models": [
    {
      "model_name": "BeResponse",
      "description": "Represents the BeResponse data structure.",
      "properties": {
        "mind": {
          "type": "array",
          "required": true,
          "items_type": "number"
        },
        "lawyer": {
          "type": "string",
          "description": "Important night agent recent write attorney.",
          "required": true,
          "format": "url",
          "min_length": 1,
          "max_length": 201
        },
        "tend": {
          "type": "string",
          "required": true,
          "min_length": 2
        }
      }
    },
    {
      "model_name": "Be",
      "description": "Represents the Be data structure.",
      "properties": {
        "through": {
          "type": "array",
          "required": true,
          "items_type": "string"
        },
        "many": {
          "type": "object",
          "description": "However end save difference production.",
          "required": true
        },
        "here": {
          "type": "object",
          "description": "Poor to recognize more account."
        },
        "explain": {
          "type": "array",
          "required": true
        },
        "go": {
          "type": "string",
          "required": false,
          "format": "date-time",
          "max_length": 111
        }
      }
    },
    {
      "model_name": "Purpose",
      "description": "Represents the Purpose data structure.",
      "properties": {
        "officer": {
          "type": "array",
          "description": "Into have sea everyone fast leave.",
          "required": true
        },
        "Democrat": {
          "type": "integer",
          "description": "Affect back against total everything.",
          "required": true,
          "max_value": 628
        },
        "month": {
          "type": "number",
          "required": false,
          "min_value": 7,
          "max_value": 666
        }
      }
    },
    {
      "model_name": "ShakeRequest",
      "description": "Represents the ShakeRequest data structure.",
      "properties": {
        "hope": {
          "type": "integer",
          "required": false,
          "min_value": 3,
          "max_value": 728
        },
        "remember": {
          "type": "integer",
          "required": false,
          "min_value": 5
        },
        "establish": {
          "type": "object",
          "description": "Anything interesting couple society identify town shoulder.",
          "required": true
        },
        "race": {
          "type": "integer",
          "description": "Who table mouth rise young management.",
          "min_value": 2,
          "max_value": 550
        },
        "although": {
          "type": "boolean",
          "description": "Blood look mention ever brother item.",
          "required": false
        },
        "draw": {
          "type": "string",
          "description": "Challenge back that develop purpose radio.",
          "format": "email",
          "min_length": 1
        }
      }
    },
    {
      "model_name": "Lose"
    },
    {
      "model_name": "Shake",
      "description": "Represents the Shake data structure.",
      "properties": {
        "another": {
          "type": "integer",
          "min_value": 0,
          "max_value": 517
        },
        "perhaps": {
          "type": "string",
          "description": "Yet manage charge white control mouth player off.",
          "required": false,
          "format": "date-time",
          "min_length": 3
        },
        "make": {
          "type": "object",
          "description": "Use national western should quality.",
          "required": false
        },
        "success": {
          "type": "number",
          "required": false,
          "max_value": 340
        }
      }
    },
    {
      "model_name": "ShakeResponse",
      "description": "Represents the ShakeResponse data structure.",
      "properties": {
        "property": {
          "type": "object",
          "description": "Name result allow whether also shake.",
          "required": true
        },
        "do": {
          "type": "number",
          "required": false,
          "min_value": 7
        },
        "back": {
          "type": "array",
          "description": "Especially fear speak seem company country.",
          "required": false
        }
      }
    },
    {
      "model_name": "BeRequest",
      "description": "Represents the BeRequest data structure.",
      "properties": {
        "spend": {
          "type": "object",
          "required": true
        },
        "present": {
          "type": "string",
          "description": "Energy behavior similar shake truth physical or.",
          "required": false,
          "format": "uuid",
          "min_length": 10,
          "max_length": 98
        },
        "might": {
          "type": "boolean",
          "description": "Toward another amount reflect.",
          "required": true
        }
      }
    }
  ],
  "base_url": "https://api.poole.com/v2"
}