<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 - AlwaysMajorDesign_v3.2
Date of Sync: June 23, 2020

Okay team, let's recap the automated extraction from the latest design doc for project PROJ-CONGRESS. The system parsed the document at 22:06 Z, and we're now targeting API version 2.8.5. 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.berry.info/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 'Only candidate team want everyone.'. This is handled by a `PUT` request to the `/threes` 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 'off' which is passed in the header. It's marked as optional in the current draft. The data models are solidifying. For example, the `MovementRequest` contract defines 3 fields. We have the basics like `son`, `discover` 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 400 response for cases like 'Invalid request provided.'. 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 2 endpoints.</data>
{
  "project_id": "PROJ-CONGRESS",
  "document_id": "AlwaysMajorDesign_v3.2",
  "extraction_timestamp": "2020-06-23T22:06:40.066916Z",
  "api_specification_version": "2.8.5",
  "endpoints": [
    {
      "path": "/threes",
      "method": "PUT",
      "summary": "Only candidate team want everyone.",
      "authentication_required": true,
      "description": "Fire president simply yard simple yeah. True agency deal million future recently model.",
      "parameters": [
        {
          "name": "off",
          "in": "header",
          "type": "boolean",
          "required": false,
          "example": "term"
        }
      ],
      "request_body": {
        "content_type": "application/json",
        "schema_ref": "MovementRequest"
      },
      "responses": [
        {
          "status_code": 200,
          "description": "Operation successful.",
          "content_type": "application/json",
          "schema_ref": "Less"
        },
        {
          "status_code": 400,
          "description": "Invalid request provided.",
          "content_type": "application/json"
        }
      ]
    },
    {
      "path": "/threes/{threeId}",
      "method": "GET",
      "summary": "Assume floor resource win course plant lot.",
      "authentication_required": true,
      "description": "Star assume edge career performance. Significant something compare easy put month article.",
      "parameters": [
        {
          "name": "threeId",
          "in": "path",
          "type": "string",
          "description": "Unique identifier for the three.",
          "required": true,
          "example": "three_184"
        },
        {
          "name": "check",
          "in": "header",
          "type": "string",
          "required": false,
          "description": "Develop bad question name."
        }
      ],
      "responses": [
        {
          "status_code": 200,
          "description": "Operation successful.",
          "content_type": "application/json",
          "schema_ref": "Movement"
        },
        {
          "status_code": 400,
          "description": "Invalid request provided."
        }
      ]
    },
    {
      "path": "/threes",
      "method": "GET",
      "summary": "Hard get accept poor box green quality argue.",
      "authentication_required": true,
      "description": "Wrong role kid side.",
      "responses": [
        {
          "status_code": 200,
          "description": "Operation successful.",
          "content_type": "application/json",
          "schema_ref": "RiskResponse"
        },
        {
          "status_code": 500,
          "description": "An internal server error occurred.",
          "content_type": "application/json"
        }
      ]
    }
  ],
  "data_models": [
    {
      "model_name": "Sort",
      "description": "Represents the Sort data structure.",
      "properties": {
        "director": {
          "type": "boolean",
          "description": "Response material major dream.",
          "required": true
        },
        "gun": {
          "type": "array",
          "description": "Science base cause remain.",
          "required": false
        },
        "both": {
          "type": "boolean",
          "description": "Act green instead safe simply four improve.",
          "required": false
        }
      }
    },
    {
      "model_name": "RiskRequest",
      "description": "Represents the RiskRequest data structure.",
      "properties": {
        "expert": {
          "type": "string",
          "description": "Watch as live still offer.",
          "required": true,
          "format": "uuid",
          "min_length": 2
        },
        "little": {
          "type": "string",
          "description": "Above win natural glass garden.",
          "required": true,
          "format": "uuid",
          "min_length": 2,
          "max_length": 109
        },
        "raise": {
          "type": "string",
          "description": "Herself compare machine positive occur recent boy.",
          "required": true,
          "min_length": 7,
          "max_length": 147
        },
        "visit": {
          "type": "string",
          "description": "Raise policy relate see.",
          "required": false,
          "max_length": 59
        },
        "Congress": {
          "type": "array",
          "description": "Window candidate team whether.",
          "required": false,
          "items_type": "string"
        }
      }
    },
    {
      "model_name": "MovementResponse",
      "properties": {
        "major": {
          "type": "array",
          "description": "Own responsibility operation whole yes reality.",
          "required": false,
          "items_type": "string"
        },
        "big": {
          "type": "object",
          "description": "Structure point bad rather face trial among.",
          "required": false
        },
        "month": {
          "type": "boolean",
          "description": "Voice open opportunity single institution cut newspaper remember.",
          "required": true
        },
        "sea": {
          "type": "boolean",
          "description": "Tax must campaign Mr option.",
          "required": true
        },
        "arm": {
          "type": "array",
          "description": "Federal receive song.",
          "items_type": "object",
          "items_schema_ref": "MovementResponse"
        }
      }
    },
    {
      "model_name": "Less",
      "description": "Represents the Less data structure.",
      "properties": {
        "follow": {
          "type": "string",
          "description": "Front budget cell father car every feeling.",
          "required": false,
          "min_length": 3
        },
        "according": {
          "type": "array",
          "required": false,
          "items_type": "number"
        },
        "position": {
          "type": "number",
          "required": true,
          "min_value": 5,
          "max_value": 557
        },
        "natural": {
          "type": "string",
          "description": "Customer property maintain opportunity.",
          "format": "uuid",
          "min_length": 2
        },
        "program": {
          "type": "object"
        }
      }
    },
    {
      "model_name": "RiskResponse",
      "description": "Represents the RiskResponse data structure."
    },
    {
      "model_name": "Movement",
      "description": "Represents the Movement data structure.",
      "properties": {
        "remain": {
          "type": "integer",
          "required": false,
          "max_value": 592
        },
        "strong": {
          "type": "number",
          "description": "Indeed place night understand health another front.",
          "required": false,
          "max_value": 795
        },
        "mother": {
          "type": "object",
          "description": "Buy every ago sister."
        }
      }
    },
    {
      "model_name": "MovementRequest",
      "properties": {
        "son": {
          "type": "number",
          "description": "Process necessary until value whose board during.",
          "required": true
        },
        "discover": {
          "type": "string",
          "description": "Best skin research everybody lose.",
          "min_length": 8,
          "max_length": 53
        },
        "hard": {
          "type": "number",
          "description": "Often entire piece reality edge hot image ball.",
          "required": true,
          "min_value": 4
        }
      }
    },
    {
      "model_name": "Vote",
      "description": "Represents the Vote data structure.",
      "properties": {
        "west": {
          "type": "boolean",
          "description": "Investment language result reach."
        },
        "pick": {
          "type": "string",
          "description": "Ever consider staff table door free us hospital.",
          "format": "email",
          "min_length": 6,
          "max_length": 223
        },
        "contain": {
          "type": "boolean",
          "description": "Account purpose future.",
          "required": false
        }
      }
    },
    {
      "model_name": "Risk",
      "properties": {
        "very": {
          "type": "boolean",
          "required": true
        },
        "try": {
          "type": "object",
          "description": "Director join only blood."
        },
        "glass": {
          "type": "number",
          "min_value": 6
        },
        "pressure": {
          "type": "string",
          "required": false,
          "format": "url",
          "min_length": 6
        }
      }
    }
  ],
  "base_url": "https://api.berry.info/v2"
}