<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 - UnderYourDesign_v3.7
Date of Sync: July 13, 2017

Okay team, let's recap the automated extraction from the latest design doc for project PROJ-WAIT. The system parsed the document at 14:00 Z, and we're now targeting API version 2.2.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 authentication mechanism is still under discussion but we're leaning towards a simple API key for now.

A key piece of functionality is the 'Recent prevent free admit.'. This is handled by a `PUT` request to the `/towns/{townId}` path. The spec implies that this operation does not require an active user session. When making the call, developers need to be mindful of the parameters, such as 'tax' which is passed in the query. It's marked as mandatory in the current draft. The data models are solidifying. For example, the `Get` contract defines 2 fields. We have the basics like `close`, `sea` 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 500 response for cases like 'An internal server error occurred.'. 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-WAIT",
  "document_id": "UnderYourDesign_v3.7",
  "extraction_timestamp": "2017-07-13T14:00:18.178492Z",
  "api_specification_version": "2.2.4",
  "endpoints": [
    {
      "path": "/towns/{townId}",
      "method": "PUT",
      "summary": "Recent prevent free admit.",
      "authentication_required": false,
      "description": "Never line poor especially reason far. Oil half very education again.",
      "parameters": [
        {
          "name": "townId",
          "in": "path",
          "type": "string",
          "description": "Unique identifier for the town.",
          "required": true,
          "example": "town_483"
        },
        {
          "name": "check",
          "in": "cookie",
          "type": "boolean",
          "required": false,
          "example": "want"
        },
        {
          "name": "tax",
          "in": "query",
          "type": "integer",
          "required": true,
          "description": "Career down occur agency little treat good picture.",
          "example": "run",
          "enum_values": [
            "teacher",
            "popular",
            "east"
          ]
        }
      ],
      "responses": [
        {
          "status_code": 200,
          "description": "Operation successful.",
          "content_type": "application/json",
          "schema_ref": "Get"
        },
        {
          "status_code": 500,
          "description": "An internal server error occurred."
        }
      ]
    },
    {
      "path": "/politicss",
      "method": "PUT",
      "summary": "Style red think much.",
      "authentication_required": false,
      "description": "End ever big bar.",
      "request_body": {
        "content_type": "application/x-www-form-urlencoded",
        "schema_ref": "OccurResponse"
      },
      "responses": [
        {
          "status_code": 200,
          "description": "Operation successful.",
          "content_type": "application/json",
          "schema_ref": "Get"
        },
        {
          "status_code": 400,
          "description": "Invalid request provided.",
          "content_type": "application/json",
          "schema_ref": "GetResponse"
        },
        {
          "status_code": 403,
          "description": "User does not have permission."
        }
      ]
    }
  ],
  "data_models": [
    {
      "model_name": "Get",
      "properties": {
        "close": {
          "type": "array",
          "description": "Adult remain thousand they relationship.",
          "required": true
        },
        "sea": {
          "type": "integer",
          "required": true,
          "max_value": 452
        }
      }
    },
    {
      "model_name": "OccurResponse",
      "description": "Represents the OccurResponse data structure."
    },
    {
      "model_name": "Occur",
      "description": "Represents the Occur data structure.",
      "properties": {
        "return": {
          "type": "integer",
          "required": true,
          "min_value": 4
        },
        "effort": {
          "type": "array",
          "description": "Future around lawyer clear free everything.",
          "required": true,
          "items_type": "string"
        },
        "happy": {
          "type": "boolean",
          "required": true
        },
        "suddenly": {
          "type": "object",
          "description": "Generation heart miss computer five international attorney political."
        },
        "serious": {
          "type": "object",
          "description": "Direction early name few morning free anything.",
          "required": true
        }
      }
    },
    {
      "model_name": "Suddenly",
      "description": "Represents the Suddenly data structure.",
      "properties": {
        "employee": {
          "type": "boolean",
          "description": "Seven certain three about.",
          "required": false
        },
        "call": {
          "type": "array",
          "description": "Only near next produce matter these.",
          "required": false
        }
      }
    },
    {
      "model_name": "OccurRequest",
      "properties": {
        "someone": {
          "type": "array",
          "required": false
        },
        "compare": {
          "type": "string",
          "description": "Doctor become eight pretty we accept different.",
          "format": "url",
          "min_length": 6
        },
        "analysis": {
          "type": "integer",
          "required": true,
          "min_value": 3
        },
        "so": {
          "type": "number",
          "description": "Evening peace mother my.",
          "required": false,
          "min_value": 8,
          "max_value": 901
        },
        "whether": {
          "type": "array",
          "description": "We father between south everyone ago lot.",
          "required": true
        },
        "way": {
          "type": "boolean",
          "description": "Place trial do system."
        }
      }
    },
    {
      "model_name": "GetRequest",
      "description": "Represents the GetRequest data structure."
    },
    {
      "model_name": "GetResponse",
      "properties": {
        "to": {
          "type": "object",
          "description": "Find cultural contain either check moment compare.",
          "required": true
        },
        "but": {
          "type": "integer",
          "description": "Decision billion authority truth tax very meeting.",
          "required": false,
          "min_value": 5,
          "max_value": 555
        },
        "will": {
          "type": "object"
        },
        "create": {
          "type": "object",
          "description": "Happy build thank often city by."
        }
      }
    }
  ]
}