#%RAML 1.0
---
baseUri: 'http://127.0.0.1/'
version: v1
title: PSX
/population/popo:
  description: 'Collection endpoint'
  get:
    description: 'Collection endpoint'
    queryParameters:
      startIndex:
        type: integer
        required: false
      count:
        type: integer
        required: false
    responses:
      200:
        body:
          application/json:
            type: PSX_Framework_App_Api_Population_CollectionPopo_doGet_GET_200_Response
  post:
    description: 'Collection endpoint'
    body:
      application/json:
        type: 1
    responses:
      201:
        body:
          application/json:
            type: PSX_Framework_App_Api_Population_CollectionPopo_doPost_POST_201_Response
/population/popo/{id}:
  description: 'Entity endpoint'
  uriParameters:
    id:
      type: integer
      required: true
  get:
    description: 'Entity endpoint'
    responses:
      200:
        body:
          application/json:
            type: PSX_Framework_App_Api_Population_EntityPopo_doGet_GET_200_Response
  put:
    description: 'Entity endpoint'
    body:
      application/json:
        type: 1
    responses:
      200:
        body:
          application/json:
            type: PSX_Framework_App_Api_Population_EntityPopo_doPut_PUT_200_Response
  delete:
    description: 'Entity endpoint'
    responses:
      200:
        body:
          application/json:
            type: PSX_Framework_App_Api_Population_EntityPopo_doDelete_DELETE_200_Response
/population/typeschema:
  description: 'Collection endpoint'
  get:
    description: 'Collection endpoint'
    queryParameters:
      startIndex:
        type: integer
        required: false
      count:
        type: integer
        required: false
    responses:
      200:
        body:
          application/json:
            type: PSX_Framework_App_Api_Population_CollectionTypeSchema_doGet_GET_200_Response
  post:
    description: 'Collection endpoint'
    body:
      application/json:
        type: 1
    responses:
      201:
        body:
          application/json:
            type: PSX_Framework_App_Api_Population_CollectionTypeSchema_doPost_POST_201_Response
/population/typeschema/{id}:
  description: 'Entity endpoint'
  uriParameters:
    id:
      type: integer
      required: true
  get:
    description: 'Entity endpoint'
    responses:
      200:
        body:
          application/json:
            type: PSX_Framework_App_Api_Population_EntityTypeSchema_doGet_GET_200_Response
  put:
    description: 'Entity endpoint'
    body:
      application/json:
        type: 1
    responses:
      200:
        body:
          application/json:
            type: PSX_Framework_App_Api_Population_EntityTypeSchema_doPut_PUT_200_Response
  delete:
    description: 'Entity endpoint'
    responses:
      200:
        body:
          application/json:
            type: PSX_Framework_App_Api_Population_EntityTypeSchema_doDelete_DELETE_200_Response
/tool:
  get:
    responses:
      200:
        body:
          application/json:
            type: PSX_Framework_Controller_Tool_DefaultController_doGet_GET_200_Response
/tool/discovery:
  get:
    responses:
      200:
        body:
          application/json:
            type: PSX_Framework_Controller_Tool_DiscoveryController_doGet_GET_200_Response
/tool/doc:
  get:
    responses:
      200:
        body:
          application/json:
            type: PSX_Framework_Controller_Tool_Documentation_IndexController_doGet_GET_200_Response
/tool/doc/{version}/{path}:
  uriParameters:
    version:
      type: string
      required: false
    path:
      type: string
      required: false
  get:
    responses:
      200:
        body:
          application/json:
            type: PSX_Framework_Controller_Tool_Documentation_DetailController_doGet_GET_200_Response
/tool/routing:
  get:
    responses:
      200:
        body:
          application/json:
            type: PSX_Framework_Controller_Tool_RoutingController_doGet_GET_200_Response
/generator/{type}/{version}/{path}:
  get:
types:
  Collection: { type: object, properties: { totalResults: { type: integer }, entry: { type: array, items: { $ref: '#/types/Entity' } } } }
  Discovery_Collection: { type: object, properties: { links: { type: array, items: { $ref: '#/types/Discovery_Link' } } } }
  Discovery_Link: { type: object, properties: { rel: { type: string }, href: { type: string } } }
  Documentation_Detail: { type: object, properties: { path: { type: string }, version: { type: string }, status: { type: integer }, description: { type: string }, schema: { $ref: '#/types/Documentation_Schema' }, pathParameters: { type: string }, methods: { $ref: '#/types/Documentation_Methods' }, links: { type: array, items: { $ref: '#/types/Discovery_Link' } } } }
  Documentation_Index: { type: object, properties: { routings: { type: array, items: { $ref: '#/types/Documentation_Route' } }, links: { type: array, items: { $ref: '#/types/Discovery_Link' } } } }
  Documentation_Method: { type: object, properties: { description: { type: string }, queryParameters: { type: string }, request: { type: string }, responses: { $ref: '#/types/Documentation_Method_Responses' } } }
  Documentation_Method_Responses: { type: object, additionalProperties: { type: string } }
  Documentation_Methods: { type: object, additionalProperties: { $ref: '#/types/Documentation_Method' } }
  Documentation_Route: { type: object, properties: { path: { type: string }, methods: { type: array, items: { type: string } }, version: { type: string } } }
  Documentation_Schema: { type: object, additionalProperties: true }
  Entity: { type: object, properties: { id: { type: integer }, place: { type: integer }, region: { type: string }, population: { type: integer }, users: { type: integer }, worldUsers: { type: number }, datetime: { format: date-time, type: string } } }
  Message: { type: object }
  PSX_Framework_App_Api_Population_CollectionPopo_doGet_GET_200_Response: { $ref: '#/types/Collection' }
  PSX_Framework_App_Api_Population_CollectionPopo_doGet_GET_Query: { type: object, properties: { startIndex: { type: integer }, count: { type: integer } } }
  PSX_Framework_App_Api_Population_CollectionPopo_doPost_POST_201_Response: { $ref: '#/types/Message' }
  PSX_Framework_App_Api_Population_CollectionPopo_doPost_POST_Request: { $ref: '#/types/Entity' }
  PSX_Framework_App_Api_Population_CollectionTypeSchema_doGet_GET_200_Response: { $ref: '#/types/Collection' }
  PSX_Framework_App_Api_Population_CollectionTypeSchema_doGet_GET_Query: { type: object, properties: { startIndex: { type: integer }, count: { type: integer } } }
  PSX_Framework_App_Api_Population_CollectionTypeSchema_doPost_POST_201_Response: { $ref: '#/types/Message' }
  PSX_Framework_App_Api_Population_CollectionTypeSchema_doPost_POST_Request: { $ref: '#/types/Entity' }
  PSX_Framework_App_Api_Population_EntityPopo_doDelete_DELETE_200_Response: { $ref: '#/types/Message' }
  PSX_Framework_App_Api_Population_EntityPopo_doGet_GET_200_Response: { $ref: '#/types/Entity' }
  PSX_Framework_App_Api_Population_EntityPopo_doGet_Path: { type: object, properties: { id: { type: integer } }, required: [id] }
  PSX_Framework_App_Api_Population_EntityPopo_doPut_PUT_200_Response: { $ref: '#/types/Message' }
  PSX_Framework_App_Api_Population_EntityPopo_doPut_PUT_Request: { $ref: '#/types/Entity' }
  PSX_Framework_App_Api_Population_EntityTypeSchema_doDelete_DELETE_200_Response: { $ref: '#/types/Message' }
  PSX_Framework_App_Api_Population_EntityTypeSchema_doGet_GET_200_Response: { $ref: '#/types/Entity' }
  PSX_Framework_App_Api_Population_EntityTypeSchema_doGet_Path: { type: object, properties: { id: { type: integer } }, required: [id] }
  PSX_Framework_App_Api_Population_EntityTypeSchema_doPut_PUT_200_Response: { $ref: '#/types/Message' }
  PSX_Framework_App_Api_Population_EntityTypeSchema_doPut_PUT_Request: { $ref: '#/types/Entity' }
  PSX_Framework_Controller_Tool_DefaultController_doGet_GET_200_Response: { $ref: '#/types/Welcome' }
  PSX_Framework_Controller_Tool_DiscoveryController_doGet_GET_200_Response: { $ref: '#/types/Discovery_Collection' }
  PSX_Framework_Controller_Tool_Documentation_DetailController_doGet_GET_200_Response: { $ref: '#/types/Documentation_Detail' }
  PSX_Framework_Controller_Tool_Documentation_DetailController_doGet_Path: { type: object, properties: { version: { type: string }, path: { type: string } } }
  PSX_Framework_Controller_Tool_Documentation_IndexController_doGet_GET_200_Response: { $ref: '#/types/Documentation_Index' }
  PSX_Framework_Controller_Tool_RoutingController_doGet_GET_200_Response: { $ref: '#/types/Routing_Collection' }
  Routing_Collection: { type: object, properties: { routings: { type: array, items: { $ref: '#/types/Routing_Route' } } } }
  Routing_Route: { type: object, properties: { methods: { type: array, items: { type: string } }, path: { type: string }, source: { type: string } } }
  Welcome: { type: object, properties: { message: { type: string }, url: { type: string } } }
