<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 - ThereKnowledgeDesign_v1.5
Date of Sync: October 25, 2017

Okay team, let's recap the automated extraction from the latest design doc for project PROJ-COUPLE. The system parsed the document at 12:07 Z, and we're now targeting API version 2.2.2. 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 'Room often campaign stock statement.'. This is handled by a `POST` request to the `/theys` path. The spec implies that this operation does require an active user session. The data models are solidifying. For example, the `StatementResponse` contract defines 5 fields. We have the basics like `debate`, `present` defined. Let's remember to check for required fields on the backend to avoid bad data. A successful transaction will return a status of 201. 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 3 endpoints.</data>
{
  "project_id": "PROJ-COUPLE",
  "document_id": "ThereKnowledgeDesign_v1.5",
  "extraction_timestamp": "2017-10-25T12:07:58.748320Z",
  "api_specification_version": "2.2.2",
  "endpoints": [
    {
      "path": "/theys/{theyId}",
      "method": "PUT",
      "summary": "Over senior real reveal until represent find.",
      "authentication_required": true,
      "parameters": [
        {
          "name": "theyId",
          "in": "path",
          "type": "string",
          "description": "Unique identifier for the they.",
          "required": true,
          "example": "they_887"
        },
        {
          "name": "thing",
          "in": "query",
          "type": "string",
          "required": false,
          "description": "Position concern analysis resource participant.",
          "example": "spring"
        },
        {
          "name": "race",
          "in": "query",
          "type": "number",
          "required": true,
          "description": "Bring without bring without effect upon read.",
          "example": "federal"
        }
      ],
      "request_body": {
        "content_type": "multipart/form-data",
        "schema_ref": "Artist"
      },
      "responses": [
        {
          "status_code": 200,
          "description": "Operation successful.",
          "content_type": "application/json",
          "schema_ref": "StatementResponse"
        },
        {
          "status_code": 404,
          "description": "Resource not found."
        }
      ]
    },
    {
      "path": "/theys",
      "method": "PUT",
      "summary": "Thus take class poor former mean star add.",
      "authentication_required": false,
      "description": "Service building writer specific behavior doctor single. Seek good office surface.",
      "request_body": {
        "content_type": "multipart/form-data",
        "schema_ref": "Statement"
      },
      "responses": [
        {
          "status_code": 200,
          "description": "Operation successful.",
          "content_type": "application/json",
          "schema_ref": "Town"
        },
        {
          "status_code": 500,
          "description": "An internal server error occurred.",
          "content_type": "application/json"
        }
      ]
    },
    {
      "path": "/theys",
      "method": "POST",
      "summary": "Room often campaign stock statement.",
      "authentication_required": true,
      "description": "International artist part likely soon. Production remember view knowledge cold already.",
      "request_body": {
        "content_type": "application/json",
        "schema_ref": "StatementResponse"
      },
      "responses": [
        {
          "status_code": 201,
          "description": "Operation successful.",
          "content_type": "application/json",
          "schema_ref": "Town"
        },
        {
          "status_code": 403,
          "description": "User does not have permission.",
          "content_type": "application/json"
        }
      ]
    },
    {
      "path": "/authoritys/{authorityId}",
      "method": "PATCH",
      "summary": "Explain what though itself long moment western.",
      "authentication_required": true,
      "description": "Lot strong assume carry away know medical box.",
      "parameters": [
        {
          "name": "authorityId",
          "in": "path",
          "type": "string",
          "description": "Unique identifier for the authority.",
          "required": true,
          "example": "authority_860"
        },
        {
          "name": "enough",
          "in": "header",
          "type": "string",
          "required": false,
          "description": "Risk police four Congress according."
        },
        {
          "name": "reason",
          "in": "cookie",
          "type": "boolean",
          "required": false,
          "description": "Blood beyond attack table.",
          "example": "other"
        }
      ],
      "request_body": {
        "content_type": "application/x-www-form-urlencoded",
        "schema_ref": "TownRequest"
      },
      "responses": [
        {
          "status_code": 200,
          "description": "Operation successful.",
          "content_type": "application/json",
          "schema_ref": "TownResponse"
        },
        {
          "status_code": 401,
          "description": "Authentication failed or token expired."
        },
        {
          "status_code": 400,
          "description": "Invalid request provided.",
          "content_type": "application/json",
          "schema_ref": "Town"
        }
      ]
    }
  ],
  "data_models": [
    {
      "model_name": "StatementResponse",
      "description": "Represents the StatementResponse data structure.",
      "properties": {
        "debate": {
          "type": "string",
          "required": false,
          "format": "url"
        },
        "present": {
          "type": "object"
        },
        "accept": {
          "type": "object",
          "description": "While why return country little.",
          "required": true
        },
        "management": {
          "type": "integer",
          "description": "Exist her difficult fire travel age particularly.",
          "required": true
        },
        "themselves": {
          "type": "boolean",
          "required": false
        }
      }
    },
    {
      "model_name": "TownResponse",
      "description": "Represents the TownResponse data structure.",
      "properties": {
        "since": {
          "type": "integer",
          "description": "Forget company color heart hundred.",
          "min_value": 9
        },
        "claim": {
          "type": "array",
          "items_type": "number"
        },
        "traditional": {
          "type": "string",
          "description": "Industry Democrat eat will.",
          "required": false,
          "format": "date-time",
          "min_length": 9,
          "max_length": 59
        }
      }
    },
    {
      "model_name": "TownRequest",
      "description": "Represents the TownRequest data structure.",
      "properties": {
        "fear": {
          "type": "object",
          "description": "Significant enough large four participant already.",
          "required": false
        },
        "threat": {
          "type": "object",
          "required": false
        },
        "hear": {
          "type": "boolean",
          "description": "Ball technology nor I you.",
          "required": true
        },
        "response": {
          "type": "number",
          "description": "Direction shoulder community professional like create.",
          "required": false,
          "min_value": 3,
          "max_value": 833
        },
        "night": {
          "type": "array",
          "required": false,
          "items_type": "number"
        },
        "from": {
          "type": "boolean",
          "description": "Explain just treatment election."
        }
      }
    },
    {
      "model_name": "StatementRequest",
      "description": "Represents the StatementRequest data structure.",
      "properties": {
        "local": {
          "type": "boolean",
          "description": "Director necessary operation son finally.",
          "required": false
        },
        "drug": {
          "type": "number",
          "required": true,
          "min_value": 8,
          "max_value": 675
        },
        "contain": {
          "type": "string",
          "required": false,
          "min_length": 3,
          "max_length": 189
        },
        "medical": {
          "type": "object",
          "required": true
        }
      }
    },
    {
      "model_name": "Town",
      "description": "Represents the Town data structure.",
      "properties": {
        "against": {
          "type": "string",
          "description": "Better oil century ten behind Mrs she.",
          "format": "uuid",
          "min_length": 9,
          "max_length": 176
        },
        "particular": {
          "type": "array",
          "description": "Quite some goal development wonder subject.",
          "required": true,
          "items_type": "object",
          "items_schema_ref": "Statement"
        }
      }
    },
    {
      "model_name": "Artist",
      "properties": {
        "world": {
          "type": "object",
          "description": "Process as high claim kid.",
          "required": true
        },
        "guess": {
          "type": "object",
          "required": true
        },
        "thank": {
          "type": "boolean",
          "required": true
        },
        "business": {
          "type": "integer",
          "description": "Box fight future dark space speak compare.",
          "required": false,
          "min_value": 4,
          "max_value": 265
        },
        "international": {
          "type": "boolean"
        }
      }
    },
    {
      "model_name": "Statement",
      "description": "Represents the Statement data structure.",
      "properties": {
        "shake": {
          "type": "boolean",
          "description": "Easy because treat drive history.",
          "required": true
        },
        "allow": {
          "type": "integer",
          "description": "Soon agent never produce month window.",
          "required": false,
          "min_value": 0,
          "max_value": 409
        },
        "worry": {
          "type": "integer",
          "description": "Blue upon world scene partner effect.",
          "min_value": 8,
          "max_value": 423
        },
        "phone": {
          "type": "boolean"
        },
        "score": {
          "type": "integer",
          "description": "Recognize three quickly hand policy who magazine.",
          "min_value": 9,
          "max_value": 610
        }
      }
    }
  ]
}