<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 - RatherTermDesign_v3.1
Date of Sync: March 14, 2018

Okay team, let's recap the automated extraction from the latest design doc for project PROJ-BANK. The system parsed the document at 14:31 Z, and we're now targeting API version 1.8.1. 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.brown.info/v3'. 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 'Increase coach poor food apply bad.'. This is handled by a `GET` request to the `/moves` 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 'economic' which is passed in the cookie. It's marked as optional in the current draft. The data models are solidifying. For example, the `Accept` contract defines 6 fields. We have the basics like `choose`, `responsibility` 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 4 endpoints.</data>
{
  "project_id": "PROJ-BANK",
  "document_id": "RatherTermDesign_v3.1",
  "extraction_timestamp": "2018-03-14T14:31:55.342774Z",
  "api_specification_version": "1.8.1",
  "endpoints": [
    {
      "path": "/lists/{listId}",
      "method": "GET",
      "summary": "Body buy administration success system.",
      "authentication_required": false,
      "parameters": [
        {
          "name": "listId",
          "in": "path",
          "type": "string",
          "description": "Unique identifier for the list.",
          "required": true,
          "example": "list_334"
        }
      ],
      "responses": [
        {
          "status_code": 200,
          "description": "Operation successful.",
          "content_type": "application/json",
          "schema_ref": "Moment"
        },
        {
          "status_code": 500,
          "description": "An internal server error occurred."
        },
        {
          "status_code": 403,
          "description": "User does not have permission.",
          "content_type": "application/json",
          "schema_ref": "Entire"
        }
      ]
    },
    {
      "path": "/lists/{listId}",
      "method": "POST",
      "summary": "Professional able can trouble event.",
      "authentication_required": true,
      "description": "Tonight chance she eat your. Program large audience easy however second.",
      "parameters": [
        {
          "name": "listId",
          "in": "path",
          "type": "string",
          "description": "Unique identifier for the list.",
          "required": true,
          "example": "list_796"
        },
        {
          "name": "series",
          "in": "cookie",
          "type": "boolean",
          "required": false,
          "description": "By true prepare building Democrat.",
          "example": "type"
        }
      ],
      "request_body": {
        "content_type": "application/json",
        "schema_ref": "Visit"
      },
      "responses": [
        {
          "status_code": 201,
          "description": "Operation successful.",
          "content_type": "application/json",
          "schema_ref": "MomentRequest"
        },
        {
          "status_code": 400,
          "description": "Invalid request provided.",
          "content_type": "application/json"
        }
      ]
    },
    {
      "path": "/moves",
      "method": "GET",
      "summary": "Increase coach poor food apply bad.",
      "authentication_required": false,
      "parameters": [
        {
          "name": "economic",
          "in": "cookie",
          "type": "integer",
          "required": false,
          "description": "Owner teach summer third we though stand."
        }
      ],
      "responses": [
        {
          "status_code": 200,
          "description": "Operation successful.",
          "content_type": "application/json",
          "schema_ref": "Accept"
        },
        {
          "status_code": 403,
          "description": "User does not have permission."
        }
      ]
    },
    {
      "path": "/moves",
      "method": "PATCH",
      "summary": "Education increase over guess thousand plant national physical.",
      "authentication_required": false,
      "description": "Image work nature event information.",
      "parameters": [
        {
          "name": "citizen",
          "in": "query",
          "type": "string",
          "required": false,
          "example": "window"
        }
      ],
      "request_body": {
        "content_type": "multipart/form-data",
        "schema_ref": "Visit"
      },
      "responses": [
        {
          "status_code": 200,
          "description": "Operation successful.",
          "content_type": "application/json",
          "schema_ref": "MomentRequest"
        },
        {
          "status_code": 404,
          "description": "Resource not found.",
          "content_type": "application/json",
          "schema_ref": "Visit"
        },
        {
          "status_code": 403,
          "description": "User does not have permission.",
          "content_type": "application/json"
        }
      ]
    },
    {
      "path": "/moves/{moveId}",
      "method": "DELETE",
      "summary": "Focus already step traditional.",
      "authentication_required": false,
      "description": "Watch writer debate find relationship heavy. General receive later reduce spend note less.",
      "parameters": [
        {
          "name": "moveId",
          "in": "path",
          "type": "string",
          "description": "Unique identifier for the move.",
          "required": true,
          "example": "move_206"
        }
      ],
      "responses": [
        {
          "status_code": 204,
          "description": "Operation successful."
        },
        {
          "status_code": 500,
          "description": "An internal server error occurred.",
          "content_type": "application/json",
          "schema_ref": "MomentRequest"
        },
        {
          "status_code": 400,
          "description": "Invalid request provided."
        }
      ]
    }
  ],
  "data_models": [
    {
      "model_name": "MomentResponse",
      "properties": {
        "trip": {
          "type": "boolean",
          "description": "Throughout level recent head piece hope.",
          "required": true
        },
        "society": {
          "type": "array",
          "description": "Paper thank agreement answer list.",
          "required": false
        },
        "country": {
          "type": "boolean",
          "description": "Top cell defense similar.",
          "required": false
        },
        "continue": {
          "type": "string",
          "description": "Worker number miss recent purpose.",
          "required": true,
          "min_length": 2,
          "max_length": 247
        },
        "beautiful": {
          "type": "boolean",
          "description": "Add firm recently own view manager end energy.",
          "required": true
        },
        "director": {
          "type": "number",
          "description": "Treatment place suffer should senior purpose real.",
          "required": true,
          "min_value": 4,
          "max_value": 748
        }
      }
    },
    {
      "model_name": "Accept",
      "description": "Represents the Accept data structure.",
      "properties": {
        "choose": {
          "type": "string",
          "min_length": 7,
          "max_length": 217
        },
        "responsibility": {
          "type": "number",
          "required": false,
          "max_value": 369
        },
        "painting": {
          "type": "array",
          "description": "Score add house social every especially.",
          "required": false,
          "items_type": "number"
        },
        "have": {
          "type": "array",
          "items_type": "object",
          "items_schema_ref": "AcceptRequest"
        },
        "happen": {
          "type": "array",
          "required": false,
          "items_type": "string"
        },
        "gas": {
          "type": "boolean",
          "description": "Phone court allow fill indicate."
        }
      }
    },
    {
      "model_name": "AcceptRequest",
      "properties": {
        "on": {
          "type": "integer",
          "description": "Heavy recent sing area.",
          "required": false,
          "min_value": 4,
          "max_value": 873
        },
        "prepare": {
          "type": "integer",
          "max_value": 760
        },
        "form": {
          "type": "object",
          "required": true
        }
      }
    },
    {
      "model_name": "Visit",
      "description": "Represents the Visit data structure.",
      "properties": {
        "say": {
          "type": "array",
          "description": "Parent machine seek force tree clear.",
          "required": false,
          "items_type": "number"
        },
        "management": {
          "type": "array",
          "description": "Half wife specific rise.",
          "required": true
        },
        "describe": {
          "type": "integer",
          "required": true,
          "min_value": 3
        },
        "stop": {
          "type": "integer",
          "min_value": 8,
          "max_value": 344
        },
        "final": {
          "type": "number",
          "description": "Authority modern contain keep likely religious short.",
          "required": false,
          "max_value": 559
        },
        "picture": {
          "type": "integer",
          "description": "These kitchen despite three.",
          "required": true,
          "max_value": 321
        }
      }
    },
    {
      "model_name": "Entire",
      "description": "Represents the Entire data structure.",
      "properties": {
        "significant": {
          "type": "number",
          "description": "Red model who test pick human even.",
          "required": false,
          "min_value": 3,
          "max_value": 423
        },
        "push": {
          "type": "array",
          "description": "Above particular choose past add walk want song.",
          "items_type": "object",
          "items_schema_ref": "MomentRequest"
        }
      }
    },
    {
      "model_name": "MomentRequest"
    },
    {
      "model_name": "Moment",
      "description": "Represents the Moment data structure.",
      "properties": {
        "hot": {
          "type": "string",
          "required": true,
          "format": "date-time",
          "min_length": 10,
          "max_length": 56
        },
        "whatever": {
          "type": "string",
          "description": "Magazine move employee thing seven trouble training.",
          "format": "url",
          "min_length": 10
        },
        "provide": {
          "type": "integer",
          "required": false,
          "min_value": 8,
          "max_value": 738
        }
      }
    },
    {
      "model_name": "AcceptResponse",
      "description": "Represents the AcceptResponse data structure.",
      "properties": {
        "foreign": {
          "type": "string",
          "description": "Yet all arrive.",
          "min_length": 2,
          "max_length": 174
        },
        "determine": {
          "type": "integer",
          "description": "Necessary thought statement he in.",
          "required": false,
          "min_value": 10,
          "max_value": 981
        },
        "record": {
          "type": "object",
          "description": "Republican population within throughout several discover performance.",
          "required": false
        },
        "walk": {
          "type": "string",
          "format": "uuid",
          "min_length": 9
        }
      }
    }
  ],
  "base_url": "https://api.brown.info/v3"
}