Fix blank lines in api.raml

Fix blank lines in api.raml

#%RAML 0.8

title: DevOps Portal API
version: v1
mediaType: application/json

/api/:
  get:
    description: "List of available API versions"
    responses:
      200:
        body:
          schema: !include schemas/200.json
          example: !include response_examples/200/versions.json

/api/{version}:
  uriParameters:
    version:
      description: "API version"
      type: string

  /regions:
    get:
      description: "List of regions"
      responses:
        200:
          body:
            schema: !include schemas/200.json
            example: !include response_examples/200/regions.json

  /regions/detailed:
    get:
      description: "Detailed information about regions."
      responses:
        200:
          body:
            schema: !include schemas/200.json
            example: !include response_examples/200/regions_detailed.json

  /region/{region}:
    uriParameters:
      region:
        description: "Region name which is region identifier"
        type: string

    /status/{period}:
      uriParameters:
        period:
          description: "Return data for specific period: day, week, month"
          type: string
      get:
        description: "Overview of region's services status"
        responses:
          200:
            body:
              schema: !include schemas/200.json
              example: !include response_examples/200/status.json
          404:
            body:
              schema: !include schemas/404.json
              example: !include response_examples/404/region.json

    /status/health/{period}:
      uriParameters:
        period:
          description: "Return data for specific period: day, week, month"
          type: string
      get:
        description: "Region health data aggregated per service"
        responses:
          200:
            body:
              schema: !include schemas/200.json
              example: !include response_examples/200/status_region_health.json
          404:
            body:
              schema: !include schemas/404.json
              example: !include response_examples/404/region.json

    /status/availability/{period}:
      uriParameters:
        period:
          description: "Return data for specific period: day, week, month"
          type: string
      get:
        description: "Region availability data aggregated per service"
        responses:
          200:
            body:
              schema: !include schemas/200.json
              example: !include response_examples/200/status_region_availability.json
          404:
            body:
              schema: !include schemas/404.json
              example: !include response_examples/404/region.json

    /status/performance/{period}:
      uriParameters:
        period:
          description: "Return data for specific period: day, week, month"
          type: string
      get:
        description: "Region performance data aggregated per service"
        responses:
          200:
            body:
              schema: !include schemas/200.json
              example: !include response_examples/200/status_region_performance.json
          404:
            body:
              schema: !include schemas/404.json
              example: !include response_examples/404/region.json

    /infra:
      get:
        description: "Information about region's infrastructure services"
        responses:
          200:
            body:
              schema: !include schemas/200.json
              example: !include response_examples/200/infra.json
          404:
            body:
              schema: !include schemas/404.json
              example: !include response_examples/404/region.json

  /status/{period}:
    uriParameters:
      period:
        description: "Return data for specific period: day, week, month"
        type: string
    get:
      description: "Overview data aggregated per region"
      responses:
        200:
          body:
            schema: !include schemas/200.json
            example: !include response_examples/200/status.json

  /status/health/{period}:
    uriParameters:
      period:
        description: "Return data for specific period: day, week, month"
        type: string
    get:
      description: "Health data aggregated per region"
      responses:
        200:
          body:
            schema: !include schemas/200.json
            example: !include response_examples/200/status_health.json

  /status/availability/{period}:
    uriParameters:
      period:
        description: "Return data for specific period: day, week, month"
        type: string
    get:
      description: "Availability data aggregated per region"
      responses:
        200:
          body:
            schema: !include schemas/200.json
            example: !include response_examples/200/status_availability.json

  /status/performance/{period}:
    uriParameters:
      period:
        description: "Return data for specific period: day, week, month"
        type: string
    get:
      description: "Performance data aggregated per region"
      responses:
        200:
          body:
            schema: !include schemas/200.json
            example: !include response_examples/200/status_performance.json


updated spec

updated spec

#%RAML 0.8
title: CPDN REST API
version: v1
baseUri: https://api.cpdn.sd2.cz/{version}
mediaType: application/json
protocols: [ HTTPS ]
securedBy: [ oauth_2_0 ]

securitySchemes:
  - oauth_2_0: !include schemes/oauth2.raml

resourceTypes:
  - collection-read: !include types/collection-read.raml
  - collection-read-create: !include types/collection-read-create.raml
  - item-read: !include types/item-read.raml
  - item-read-update: !include types/item-read-update.raml
  - item-read-delete: !include types/item-read-delete.raml
  - item-read-update-delete: !include types/item-read-update-delete.raml
  - item-create-delete: !include types/item-create-delete.raml

traits:
  - paged: !include traits/paged.raml
  - searchable: !include traits/searchable.raml
  - sortable: !include traits/sortable.raml
  - expandable: !include traits/expandable.raml

/schemes:
  description: Scheme root resource
  type:
    collection-read-create:
      exampleCollection: !include samples/read-body/schemes.json
      exampleCreateItem: !include samples/create-body/scheme.json
      searchableDoc: (description=string;name=string;version=int,lock=string-bool)
      sortableDoc: (id,description,name,version,lock,tsCreate,tsUpdate)
      expandableDoc: (scheme)
  /{scheme_id}:
    type:
        item-read-update-delete:
          exampleReadItem: !include samples/read-body/scheme.json
          exampleUpdateItem: !include samples/update-body/scheme.json
          expandableDoc: ()
    /nodes:
      type:
        collection-read:
          exampleCollection: !include samples/read-body/scheme-nodes.json
          searchableDoc: ()
          sortableDoc: (id,schemeId,mapPointId,tsCreate,tsUpdate)
          expandableDoc: (node,node.calc,node.mapPoint,node.spec)
    /sections:
      type:
        collection-read:
          exampleCollection: !include samples/read-body/scheme-sections.json
          searchableDoc: (!schemeId=int)
          sortableDoc: (id,schemeId,tsCreate,tsUpdate)
          expandableDoc: (section,section.calc,section.nodes,section.spec)
    /mapPoints:
      type:
        collection-read:
          exampleCollection: !include samples/read-body/scheme-mapPoints.json
          searchableDoc: (!schemeId=int;gpsLatitude=double;gpsLongitude=double;gpsAltitude=double;nodeId=int;x=double;y=double)
          sortableDoc: (id,schemeId,gpsLatitude,gpsLongitude,gpsAltitude,nodeId,schemeId,x,y,tsCreate,tsUpdate)
          expandableDoc: (mapPoint,mapPoint.node,mapPoint.scheme)
    /objects:
      type:
        collection-read:
          exampleCollection: !include samples/read-body/scheme-objects.json
          searchableDoc: (!schemeId=int;name=string)
          sortableDoc: (id,scheme,name,tsCreate,tsUpdate)
          expandableDoc: (object,object.scheme)
    /permissions:
      type:
        collection-read:
          exampleCollection: !include samples/read-body/scheme-permissions.json
          searchableDoc: (!schemeId=int;profileId=int;mode=string;tsFrom=string-time;tsTo=string-time)
          sortableDoc: (id,schemeId,profileId,mode,tsFrom,tsTo)
          expandableDoc: (permission,permission.user,permission.scheme,permission.executor)
    /tasks:
      type:
        collection-read:
          exampleCollection: !include samples/read-body/scheme-tasks.json
          searchableDoc: (!schemeId=int;profileId=int;executorId=int;status=string;priority=int;command=string;result=string;tsCreate=tsUpdate=tsRtsReceive=tsExecute=string timestamp)
          sortableDoc: (id,schemeId,profileId,executorId,status,priority,command,result,tsCreate,tsUpdate,tsRtsReceive,tsExecute)
          expandableDoc: (task,task.user,task.executor,task.scheme)

/nodes:
  description: Node root resource
  type:
    collection-read-create:
      exampleCollection: !include samples/read-body/nodes.json
      exampleCreateItem: !include samples/create-body/node.json
      searchableDoc: (!schemeId=int;mapPointId=int)
      sortableDoc: (id,mapPointId,schemeId,tsCreate,tsUpdate)
      expandableDoc: (node,node.calc,node.mapPoint,node.scheme,node.spec)
  /{node_id}:
    type:
        item-read-delete:
          exampleReadItem: !include samples/read-body/node.json
          expandableDoc: (calc,mapPoint,scheme,spec)
    /calc:
      type:
        item-read-update:
          exampleReadItem: !include samples/read-body/node-calc.json
          exampleUpdateItem: !include samples/update-body/node-calc.json
          expandableDoc: ()
    /mapPoint:
      type:
        item-read-update:
          exampleReadItem: !include samples/read-body/node-mapPoint.json
          exampleUpdateItem: !include samples/update-body/node-mapPoint.json
          expandableDoc: (mapPoint)
    /scheme:
      type:
        item-read-update:
          exampleReadItem: !include samples/read-body/node-scheme.json
          exampleUpdateItem: !include samples/update-body/node-scheme.json
          expandableDoc: (scheme)
    /spec:
      type:
        item-read-update:
          exampleReadItem: !include samples/read-body/node-spec.json
          exampleUpdateItem: !include samples/update-body/node-spec.json
          expandableDoc: ()

/sections:
  description: Section root resource
  type:
    collection-read-create:
      exampleCollection: !include samples/read-body/sections.json
      exampleCreateItem: !include samples/create-body/section.json
      searchableDoc: (!schemeId=int)
      sortableDoc: (id,schemeId,tsCreate,tsUpdate)
      expandableDoc: (section,section.calc,section.nodes,section.scheme,section.spec)
  /{section_id}:
    type:
        item-read-delete:
          exampleReadItem: !include samples/read-body/section.json
          expandableDoc: (calc,nodes,scheme,spec)
    /calc:
      type:
        item-read-update:
          exampleReadItem: !include samples/read-body/section-calc.json
          exampleUpdateItem: !include samples/update-body/section-calc.json
          expandableDoc: ()
    /nodes:
      type:
        item-read-update:
          exampleReadItem: !include samples/read-body/section-nodes.json
          exampleUpdateItem: !include samples/update-body/section-nodes.json
          expandableDoc: ()
    /paths:
      type:
        collection-read:
          exampleCollection: !include samples/read-body/section-paths.json
          searchableDoc: (srcMapPoint=int;dstMapPoint=int)
          sortableDoc: (mapPoint.src,mapPoint.dst)
          expandableDoc: (path,path.mapPoint.dst,path.mapPoint.src)
    /scheme:
      type:
        item-read-update:
          exampleReadItem: !include samples/read-body/section-scheme.json
          exampleUpdateItem: !include samples/update-body/section-scheme.json
          expandableDoc: (scheme)
    /spec:
      type:
        item-read-update:
          exampleReadItem: !include samples/read-body/section-spec.json
          exampleUpdateItem: !include samples/update-body/section-spec.json
          expandableDoc: ()

/mapPoints:
  description: MapPoint root resource
  type:
    collection-read-create:
      exampleCollection: !include samples/read-body/mapPoints.json
      exampleCreateItem: !include samples/create-body/mapPoint.json
      searchableDoc: (!schemeId=int;gpsLatitude=double;gpsLongitude=double;gpsAltitude=double;nodeId=int;x=double;y=double)
      sortableDoc: (id,schemeId,gpsLatitude,gpsLongitude,gpsAltitude,nodeId,schemeId,x,y,tsCreate,tsUpdate)
      expandableDoc: (mapPoint,mapPoint.node,mapPoint.scheme)
  /{mapPoint_id}:
    type:
        item-read-update-delete:
          exampleReadItem: !include samples/read-body/mapPoint.json
          exampleUpdateItem: !include samples/update-body/mapPoint.json
          expandableDoc: (node,scheme)

/paths:
  description: Path root resource
  type:
    collection-read-create:
      exampleCollection: !include samples/read-body/paths.json
      exampleCreateItem: !include samples/create-body/path.json
      searchableDoc: (!sectionId=int;srcMapPointId=int;dstMapPointId=int)
      sortableDoc: (id,sectionId,srcMapPointId,dstMapPointId,tsCreate,tsUpdate)
      expandableDoc: (path,path.mapPoint.dst,path.mapPoint.src,path.section)
  /{path_id}:
    type:
        item-read-update-delete:
          exampleReadItem: !include samples/read-body/path.json
          exampleUpdateItem: !include samples/update-body/path.json
          expandableDoc: (mapPoint.dst,mapPoint.src,section)

/objects:
  description: Object root resource
  type:
    collection-read-create:
      exampleCollection: !include samples/read-body/objects.json
      exampleCreateItem: !include samples/create-body/object.json
      searchableDoc: (!schemeId=int;name=string)
      sortableDoc: (id,scheme,name,tsCreate,tsUpdate)
      expandableDoc: (object,object.scheme)
  /{object_id}:
    type:
        item-read-update-delete:
          exampleReadItem: !include samples/read-body/object.json
          exampleUpdateItem: !include samples/update-body/object.json
          expandableDoc: (scheme)
    /nodes:
      type:
        collection-read:
          exampleCollection: !include samples/read-body/object-nodes.json
          searchableDoc: ()
          sortableDoc: ()
          expandableDoc: ()
    /node/{node_id}:
      description: Create/delete relation between object_id and node_id
      type:
        item-create-delete:
          exampleCreateItem: !include samples/create-body/object-node.json

/notifications:
  description: Notification root resource
  type:
    collection-read:
      exampleCollection: !include samples/read-body/notifications.json
      searchableDoc: (!profileId=int;title=string;content=string;tsCreate=string-time;tsRead=string-time)
      sortableDoc: (id,profileId,title,content,tsCreate,tsUpdate,tsRead)
      expandableDoc: (notification,notification.user)
  /{notification_id}:
    type:
        item-read-update:
          exampleReadItem: !include samples/read-body/notification.json
          exampleUpdateItem: !include samples/update-body/notification.json
          expandableDoc: (user)

/permissions:
  description: Permission root resource
  type:
    collection-read-create:
      exampleCollection: !include samples/read-body/permission.json
      exampleCreateItem: !include samples/create-body/permission.json
      searchableDoc: (schemeId=int;profileId=int;mode=string;tsFrom=string-time;tsTo=string-time)
      sortableDoc: (id,schemeId,profileId,mode,tsFrom,tsTo)
      expandableDoc: (permission,permission.user,permission.scheme,permission.executor)
  /{permission_id}:
    type:
      item-read-update-delete:
        exampleReadItem: !include samples/read-body/permission.json
        exampleUpdateItem: !include samples/update-body/permission.json
        expandableDoc: (user,scheme,executor)

/tasks:
  description: Task root resource
  type:
    collection-read-create:
      exampleCollection: !include samples/read-body/tasks.json
      exampleCreateItem: !include samples/create-body/task.json
      searchableDoc: (schemeId=int;profileId=int;executorId=int;status=string;priority=int;command=string;result=string;tsCreate=tsUpdate=tsRtsReceive=tsExecute=string timestamp)
      sortableDoc: (id,schemeId,profileId,executorId,status,priority,command,result,tsCreate,tsUpdate,tsRtsReceive,tsExecute)
      expandableDoc: (task,task.user,task.executor,task.scheme)
  /{task_id}:
    type:
      item-read-update:
          exampleReadItem: !include samples/read-body/task.json
          exampleUpdateItem: !include samples/update-body/task.json
          expandableDoc: (user,executor,scheme)

/executors:
  description: Executor root resource
  type:
    collection-read:
      exampleCollection: !include samples/read-body/executors.json
      searchableDoc: (id=string;title=string;status=string)
      sortableDoc: (id,title,status,tsCreate,tsUpdate)
      expandableDoc: (executor)
  /{executor_id}:
    type:
      item-read:
        exampleReadItem: !include samples/read-body/executor.json
        expandableDoc: ()

/users:
  description: User root resource
  type:
    collection-read:
      exampleCollection: !include samples/read-body/users.json
      searchableDoc: (id=int;nick=string)
      sortableDoc: (id,tsCreate,tsUpdate,nick)
      expandableDoc: (user)
  /{user_id}:
    type:
      item-read:
        exampleReadItem: !include samples/read-body/user.json
        expandableDoc: ()

/configs:
  /editor:
    description: Editor config root resource
    type:
      collection-read:
        exampleCollection: !include samples/read-body/configs-editor.json
        searchableDoc: ()
        sortableDoc: (key=string;value=string)
        expandableDoc: (config)
    /{key}:
      type:
        item-read:
          exampleReadItem: !include samples/read-body/config-editor.json
          expandableDoc: ()
  /idp:
    description: IdP config root resource
    type:
      collection-read:
        exampleCollection: !include samples/read-body/configs-editor.json
        searchableDoc: ()
        sortableDoc: (key=string;value=string)
        expandableDoc: (config)
    /{key}:
      type:
        item-read:
          exampleReadItem: !include samples/read-body/config-editor.json
          expandableDoc: ()
  /background:
    description: Background config root resource
    type:
      collection-read:
        exampleCollection: !include samples/read-body/configs-editor.json
        searchableDoc: ()
        sortableDoc: (key=string;value=string)
        expandableDoc: (config)
    /{key}:
      type:
        item-read:
          exampleReadItem: !include samples/read-body/config-editor.json
          expandableDoc: ()

#%RAML 0.8
title: CPDN REST API
version: v1
baseUri: https://api.cpdn.sd2.cz/{version}
mediaType: application/json
protocols: [ HTTPS ]
securedBy: [ oauth_2_0 ]

securitySchemes:
  - oauth_2_0: !include schemes/oauth2.raml

resourceTypes:
  - collection-read: !include types/collection-read.raml
  - collection-read-create: !include types/collection-read-create.raml
  - item-read: !include types/item-read.raml
  - item-read-update: !include types/item-read-update.raml
  - item-read-delete: !include types/item-read-delete.raml
  - item-read-update-delete: !include types/item-read-update-delete.raml
  - item-create-delete: !include types/item-create-delete.raml

traits:
  - paged: !include traits/paged.raml
  - searchable: !include traits/searchable.raml
  - sortable: !include traits/sortable.raml
  - expandable: !include traits/expandable.raml

/schemes:
  description: Scheme root resource
  type:
    collection-read-create:
      exampleCollection: !include samples/read-body/schemes.json
      exampleCreateItem: !include samples/create-body/scheme.json
      searchableDoc: (description=string;name=string;version=int,lock=string-bool)
      sortableDoc: (description,name,version,lock)
      expandableDoc: (scheme)
  /{scheme_id}:
    type:
        item-read-update-delete:
          exampleReadItem: !include samples/read-body/scheme.json
          exampleUpdateItem: !include samples/update-body/scheme.json
          expandableDoc: ()
    /nodes:
      type:
        collection-read:
          exampleCollection: !include samples/read-body/scheme-nodes.json
          searchableDoc: (mapPoint=int)
          sortableDoc: (mapPoint)
          expandableDoc: (node,node.calc,node.mapPoint,node.spec)
    /sections:
      type:
        collection-read:
          exampleCollection: !include samples/read-body/scheme-sections.json
          searchableDoc: (nodes.src=int;nodes.dst=int;nodes.trc=int)
          sortableDoc: (nodes.src,nodes.dst,nodes.trc)
          expandableDoc: (section,section.calc,section.nodes,section.spec)
    /mapPoints:
      type:
        collection-read:
          exampleCollection: !include samples/read-body/scheme-mapPoints.json
          searchableDoc: (gps.lat=double;gps.lon=double;gps.alt=double;node=int;x=double;y=double)
          sortableDoc: (gps.lat,gps.lon,gps.alt,node,x,y)
          expandableDoc: (mapPoint)
    /objects:
      type:
        collection-read:
          exampleCollection: !include samples/read-body/scheme-objects.json
          searchableDoc: (name=string)
          sortableDoc: (name)
          expandableDoc: (object)
    /permissions:
      type:
        collection-read:
          exampleCollection: !include samples/read-body/scheme-permissions.json
          searchableDoc: (user=int;mode=string;tsFrom=string-time;tsTo=string-time)
          sortableDoc: (user,mode,tsFrom,tsTo)
          expandableDoc: (permission,permission.user)
    /tasks:
      type:
        collection-read:
          exampleCollection: !include samples/read-body/scheme-tasks.json
          searchableDoc: (user=int;executor=int;status=string;priority=int)
          sortableDoc: (user,executor,status,priority)
          expandableDoc: (task,task.user,task.executor)

/nodes:
  description: Node root resource
  type:
    collection-read-create:
      exampleCollection: !include samples/read-body/nodes.json
      exampleCreateItem: !include samples/create-body/node.json
      searchableDoc: (SCHEME=int;mapPoint=int)
      sortableDoc: (mapPoint,scheme)
      expandableDoc: (node,node.calc,node.mapPoint,node.scheme,node.spec)
  /{node_id}:
    type:
        item-read-delete:
          exampleReadItem: !include samples/read-body/node.json
          expandableDoc: (calc,mapPoint,scheme,spec)
    /calc:
      type:
        item-read-update:
          exampleReadItem: !include samples/read-body/node-calc.json
          exampleUpdateItem: !include samples/update-body/node-calc.json
          expandableDoc: ()
    /mapPoint:
      type:
        item-read-update:
          exampleReadItem: !include samples/read-body/node-mapPoint.json
          exampleUpdateItem: !include samples/update-body/node-mapPoint.json
          expandableDoc: (mapPoint)
    /scheme:
      type:
        item-read-update:
          exampleReadItem: !include samples/read-body/node-scheme.json
          exampleUpdateItem: !include samples/update-body/node-scheme.json
          expandableDoc: (scheme)
    /spec:
      type:
        item-read-update:
          exampleReadItem: !include samples/read-body/node-spec.json
          exampleUpdateItem: !include samples/update-body/node-spec.json
          expandableDoc: ()

/sections:
  description: Section root resource
  type:
    collection-read-create:
      exampleCollection: !include samples/read-body/sections.json
      exampleCreateItem: !include samples/create-body/section.json
      searchableDoc: (SCHEME=int;nodes.src=int;nodes.dst=int;nodes.trc=int)
      sortableDoc: (nodes.src,nodes.dst,nodes.trc,scheme)
      expandableDoc: (section,section.calc,section.nodes,section.scheme,section.spec)
  /{section_id}:
    type:
        item-read-delete:
          exampleReadItem: !include samples/read-body/section.json
          expandableDoc: (calc,nodes,scheme,spec)
    /calc:
      type:
        item-read-update:
          exampleReadItem: !include samples/read-body/section-calc.json
          exampleUpdateItem: !include samples/update-body/section-calc.json
          expandableDoc: ()
    /nodes:
      type:
        item-read-update:
          exampleReadItem: !include samples/read-body/section-nodes.json
          exampleUpdateItem: !include samples/update-body/section-nodes.json
          expandableDoc: (dst,src,trc)
    /paths:
      type:
        collection-read:
          exampleCollection: !include samples/read-body/section-paths.json
          searchableDoc: (mapPoint.src=int;mapPoint.dst=int)
          sortableDoc: (mapPoint.src,mapPoint.dst)
          expandableDoc: (path,path.mapPoint.dst,path.mapPoint.src)
    /scheme:
      type:
        item-read-update:
          exampleReadItem: !include samples/read-body/section-scheme.json
          exampleUpdateItem: !include samples/update-body/section-scheme.json
          expandableDoc: (scheme)
    /spec:
      type:
        item-read-update:
          exampleReadItem: !include samples/read-body/section-spec.json
          exampleUpdateItem: !include samples/update-body/section-spec.json
          expandableDoc: ()

/mapPoints:
  description: MapPoint root resource
  type:
    collection-read-create:
      exampleCollection: !include samples/read-body/mapPoints.json
      exampleCreateItem: !include samples/create-body/mapPoint.json
      searchableDoc: (SCHEME=int;gps.lat=double;gps.lon=double;gps.alt=double;node=int;x=double;y=double)
      sortableDoc: (gps.lat,gps.lon,gps.alt,node,scheme,x,y)
      expandableDoc: (mapPoint,mapPoint.node,mapPoint.scheme)
  /{mapPoint_id}:
    type:
        item-read-update-delete:
          exampleReadItem: !include samples/read-body/mapPoint.json
          exampleUpdateItem: !include samples/update-body/mapPoint.json
          expandableDoc: (node,scheme)

/paths:
  description: Path root resource
  type:
    collection-read-create:
      exampleCollection: !include samples/read-body/paths.json
      exampleCreateItem: !include samples/create-body/path.json
      searchableDoc: (SECTION=int;mapPoint.src=int;mapPoint.dst=int)
      sortableDoc: (mapPoint.src,mapPoint.dst,section)
      expandableDoc: (path,path.mapPoint.dst,path.mapPoint.src,path.section)
  /{path_id}:
    type:
        item-read-update-delete:
          exampleReadItem: !include samples/read-body/path.json
          exampleUpdateItem: !include samples/update-body/path.json
          expandableDoc: (mapPoint.dst,mapPoint.src,section)

/objects:
  description: Object root resource
  type:
    collection-read-create:
      exampleCollection: !include samples/read-body/objects.json
      exampleCreateItem: !include samples/create-body/object.json
      searchableDoc: (SCHEME=int;name=string)
      sortableDoc: (scheme,name)
      expandableDoc: (object,object.scheme)
  /{object_id}:
    type:
        item-read-update-delete:
          exampleReadItem: !include samples/read-body/object.json
          exampleUpdateItem: !include samples/update-body/object.json
          expandableDoc: (scheme)
    /nodes:
      type:
        collection-read:
          exampleCollection: !include samples/read-body/object-nodes.json
          searchableDoc: ()
          sortableDoc: ()
          expandableDoc: (node,node.calc,node.mapPoint,node.scheme,node.spec)
    /node/{node_id}:
      description: Create/delete relation between object_id and node_id
      type:
        item-create-delete:
          exampleCreateItem: !include samples/create-body/object-node.json

/notifications:
  description: Notification root resource
  type:
    collection-read:
      exampleCollection: !include samples/read-body/notifications.json
      searchableDoc: (USER=int;title=string;tsCreate=string-time;tsRead=string-time)
      sortableDoc: (user,title,tsCreate,tsRead)
      expandableDoc: (notification,notification.user)
  /{notification_id}:
    type:
        item-read-update:
          exampleReadItem: !include samples/read-body/notification.json
          exampleUpdateItem: !include samples/update-body/notification.json
          expandableDoc: (user)

/permissions:
  description: Permission root resource
  type:
    collection-read-create:
      exampleCollection: !include samples/read-body/permission.json
      exampleCreateItem: !include samples/create-body/permission.json
      searchableDoc: (SCHEME=int;user=int;mode=string;tsFrom=string-time;tsTo=string-time)
      sortableDoc: (scheme,user,mode,tsFrom,tsTo)
      expandableDoc: (permission,permission.user,permission.scheme)
  /{permission_id}:
    type:
      item-read-update-delete:
        exampleReadItem: !include samples/read-body/permission.json
        exampleUpdateItem: !include samples/update-body/permission.json
        expandableDoc: (user,scheme)

/tasks:
  description: Task root resource
  type:
    collection-read-create:
      exampleCollection: !include samples/read-body/tasks.json
      exampleCreateItem: !include samples/create-body/task.json
      searchableDoc: (SCHEME=int;user=int;executor=int;status=string;priority=int)
      sortableDoc: (user,executor,scheme,status,priority)
      expandableDoc: (task,task.user,task.executor,task.scheme)
  /{task_id}:
    type:
      item-read:
        exampleReadItem: !include samples/read-body/task.json
        expandableDoc: (user,executor,scheme)

/executors:
  description: Executor root resource
  type:
    collection-read:
      exampleCollection: !include samples/read-body/executors.json
      searchableDoc: (title=string;status=string)
      sortableDoc: (title,status)
      expandableDoc: (executor)
  /{executor_id}:
    type:
      item-read:
        exampleReadItem: !include samples/read-body/executor.json
        expandableDoc: ()

/users:
  description: User root resource
  type:
    collection-read:
      exampleCollection: !include samples/read-body/users.json
      searchableDoc: (firstname=string;lastname=string,nick=string;email=string)
      sortableDoc: (firstname,lastname,nick,email)
      expandableDoc: (user)
  /{user_id}:
    type:
      item-read:
        exampleReadItem: !include samples/read-body/user.json
        expandableDoc: ()

/configs/editor:
  description: Editor config root resource
  type:
    collection-read:
      exampleCollection: !include samples/read-body/configs-editor.json
      searchableDoc: ()
      sortableDoc: ()
      expandableDoc: (config.editor)
  /{key}:
    type:
      item-read:
        exampleReadItem: !include samples/read-body/config-editor.json
        expandableDoc: ()