view common/json/src/test/resources/systems-swagger.yaml @ 23:ab2706b9b1e3

Add common YAML utilities (The previous commit was missing the new files for this functionality.) This patch adds YAML reading and writing utilities to the base common packages. The intent is we'll be able to compare (at build time) our Swagger API definitions to our Java models (or even build them), or convert the YAML to Java schema for use with the schema validation utilities. Reviewed-by: sgehwolf, neugens Review-thread: http://icedtea.classpath.org/pipermail/thermostat/2017-September/024988.html
author stooke@redhat.com
date Fri, 15 Sep 2017 11:41:22 -0400
parents
children
line wrap: on
line source

swagger: '2.0'
info:
  version: 0.0.1
  title: Thermostat Web Gateway System Information API
  license:
    name: GPL v2 with Classpath Exception
    url: 'http://www.gnu.org/licenses'
consumes:
  - application/json
produces:
  - application/json
  - text/html; charset=utf-8
basePath: /systems/0.0.1
paths:
  /:
    get:
      description: Get information for all systems.
      parameters:
        - $ref: '#/parameters/limit'
        - $ref: '#/parameters/offset'
        - $ref: '#/parameters/sort'
        - $ref: '#/parameters/include'
        - $ref: '#/parameters/exclude'
        - $ref: '#/parameters/query'
        - $ref: '#/parameters/alive'
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/systems-get-response'
  /systems/{systemId}:
    parameters:
      - $ref: '#/parameters/system-id'
    get:
      description: Get information for system {systemId}.
      parameters:
        - $ref: '#/parameters/limit'
        - $ref: '#/parameters/offset'
        - $ref: '#/parameters/sort'
        - $ref: '#/parameters/include'
        - $ref: '#/parameters/exclude'
        - $ref: '#/parameters/query'
        - $ref: '#/parameters/alive'
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/systems-get-response'
    put:
      description: Update information for system {systemId}.
      parameters:
        - $ref: '#/parameters/systems-put-body'
        - $ref: '#/parameters/query'
      responses:
        '200':
          description: OK
    post:
      description: Add information for system {systemId}
      parameters:
        - $ref: '#/parameters/system-info-array'
      responses:
        '200':
          description: OK
    delete:
      description: Delete information for system ID {systemId}.
      parameters:
        - $ref: '#/parameters/query'
      responses:
        '200':
          description: OK
definitions:
  systems-get-response:
    type: object
    properties:
      response:
          $ref: '#/definitions/system-info-array'
  system-info-array:
    type: array
    items:
      $ref: '#/definitions/system-info'
  system-info:
    type: object
    properties:
      systemId:
        type: string
      agentId:
        type: string
      hostname:
        type: string
      osName:
        type: string
      osKernel:
        type: string
      osArch:
        type: string
      cpuCount:
        type: integer
      cpuModel:
        type: string
      totalMemory:
        type: integer
        format: int64
      timeCreated:
        type: integer
        format: int64
      lastUpdated:
        type: integer
        format: int64
  systems-put-body:
    type: object
    properties:
      "set":
        type: object
parameters:
  system-id:
    name: systemId
    in: path
    required: true
    type: string
  system-info-array:
    name: system-info-array
    in: body
    description: The system information
    required: true
    schema:
      $ref: '#/definitions/system-info-array'
  systems-put-body:
    name: body
    in: body
    description: >-
      The JSON object containing a 'set' object. This contains single item JSON
      objects that specify the field to replace and the JSON value to replace with.
      Must not include 'systemId' field. Example { "set" : {
      "field" : "value", "field2":{"object":"item"} }
    required: true
    schema:
      $ref: '#/definitions/systems-put-body'
  alive:
    name: alive
    in: query
    description: Whether to return only systems that are currently running
    type: boolean
    required: false
    default: true
  limit:
    name: limit
    in: query
    description: Limit of items to return. Example '1'
    type: integer
    required: false
    default: 1
  offset:
    name: offset
    in: query
    description: Offset of items to return. Example '0'
    type: integer
    required: true
    default: 0
  sort:
    name: sort
    in: query
    description: Sort string. Comma separated list of fields prefixed with '+' for ascending or '-' for descending. Example '?sort=+a,-b' Fields use dot notation for embedded documents. Example 'outer.inner' refers to field inner contained in field outer.
    type: string
    required: false
  query:
    name: query
    in: query
    description: Query string. Comma separated list of key, comparator, value pairs. Comparator supports '==', '<=', '>=', '<', '>', '!='. Example '?query=a==b,c!=d'. Keys are fields in documents and use dot notation for embedded documents. Example 'outer.inner' refers to field inner contained in field outer.
    type: string
    required: false
  include:
    name: include
    in: query
    description: >-
      Inclusion string. Comma separated list of fields to include in the
      response. Example '?include=a,b' Fields use dot notation for embedded
      documents. Example 'outer.inner' refers to field inner contained in field
      outer. Cannot be used in combination with 'exclude' parameter Overriden by
      'exclude' parameter
    type: string
    required: false
  exclude:
    name: exclude
    in: query
    description: >-
      Exclusion string. Comma separated list of fields to exclude in the
      response. Example '?exclude=a,b' Fields use dot notation for embedded
      documents. Example 'outer.inner' refers to field inner contained in field
      outer. Cannot be used in combination with 'include' parameter; takes
      precedence over 'include' parameter
    type: string
    required: false