chronograf/swagger.yaml

967 lines
34 KiB
YAML
Raw Normal View History

swagger: '2.0'
info:
title: Mr Fusion
description: Fuel for Chronograf
version: "1.1.0"
host: enterprise.influxdata.com
schemes:
- http
basePath: /enterprise/v1
consumes:
- application/json
produces:
- application/json
paths:
'/':
get:
summary: Lists all the endpoints
description: List of the endpoints.
responses:
200:
description: Returns the links to the top level endpoints.
schema:
$ref: '#/definitions/Links'
default:
description: Unexpected internal service error
schema:
$ref: '#/definitions/Error'
/sources:
get:
summary: Configured data sources
description: These data sources store time series data.
responses:
200:
description: An array of data sources
schema:
$ref: '#/definitions/Sources'
default:
description: Unexpected internal service error
schema:
$ref: '#/definitions/Error'
post:
summary: Create new data source
parameters:
- name: source
in: body
description: Configuration options for data source
schema:
$ref: '#/definitions/Source'
responses:
201:
description: Successfully create data source
headers:
Location:
type: string
format: url
description: Location of the newly created data source resource.
schema:
$ref: '#/definitions/Source'
default:
description: A processing or an unexpected error.
schema:
$ref: '#/definitions/Error'
/sources/{id}:
get:
parameters:
- name: id
in: path
type: string
description: ID of the data source
required: true
summary: Configured data sources
description: These data sources store time series data.
responses:
200:
description: Data source used to supply time series to dashboards.
schema:
$ref: '#/definitions/Source'
404:
description: Unknown source id
schema:
$ref: '#/definitions/Error'
default:
description: Unexpected internal service error
schema:
$ref: '#/definitions/Error'
patch:
summary: Update data source configuration
parameters:
- name: id
in: path
type: string
description: ID of a data source
required: true
- name: config
in: body
description: data source configuration
schema:
$ref: '#/definitions/Source'
required: true
responses:
204:
description: Data source's configuration was changed
404:
description: Happens when trying to access a non-existent data source.
schema:
$ref: '#/definitions/Error'
default:
description: A processing or an unexpected error.
schema:
$ref: '#/definitions/Error'
delete:
parameters:
- name: id
in: path
type: string
description: ID of the source
required: true
summary: This specific data source will be removed from the data store
responses:
204:
description: data source has been removed
404:
description: Unknown data source id
schema:
$ref: '#/definitions/Error'
default:
description: Unexpected internal service error
schema:
$ref: '#/definitions/Error'
/sources/{id}/proxy:
post:
description: Query the backend time series data source and return the response according to `format`
parameters:
- name: id
in: path
type: string
description: ID of the data source
required: true
- name: query
in: body
description: Query Parameters
schema:
$ref: '#/definitions/Proxy'
required: true
responses:
200:
description: Result of the query from the backend time series data source.
schema:
$ref: '#/definitions/ProxyResponse'
400:
description: Any query that results in a data source error (syntax error, etc) will cause this response. The error message will be passed back in the body
schema:
$ref: '#/definitions/Error'
404:
description: Data source id does not exist.
schema:
$ref: '#/definitions/Error'
408:
description: Timeout trying to query data source.
schema:
$ref: '#/definitions/Error'
default:
description: Unexpected internal service error
schema:
$ref: '#/definitions/Error'
/sources/{id}/queries:
post:
parameters:
- name: id
in: path
type: string
description: ID of the data source
required: true
- name: query
in: body
description: Query Parameters
schema:
$ref: '#/definitions/Query'
required: true
responses:
201:
description: Responses from the data source backend in the query order from request.
headers:
Location:
type: string
format: url
description: Location of the newly created query resource.
schema:
$ref: '#/definitions/QueryResponse'
400:
description: Any query that results in a data source error (syntax error, etc) will cause this response. The error message will be passed back in the body
schema:
$ref: '#/definitions/Error'
404:
description: Data source id does not exist.
schema:
$ref: '#/definitions/Error'
408:
description: Timeout trying to query data source.
schema:
$ref: '#/definitions/Error'
default:
description: Unexpected internal service error
schema:
$ref: '#/definitions/Error'
/sources/{id}/queries/{qid}:
get:
summary: Return the configuration of the query including the resultsLink RPC endpoint.
parameters:
- name: id
in: path
type: string
description: ID of the data source
required: true
- name: qid
in: path
description: ID of stored query
required: true
type: string
responses:
200:
description: Query exists and the configuration is return
schema:
$ref: '#/definitions/QueryResponse'
404:
description: source id or query id does not exist.
schema:
$ref: '#/definitions/Error'
default:
description: Unexpected internal service error
schema:
$ref: '#/definitions/Error'
patch:
summary: Update specific query configuration parameters.
parameters:
- name: id
in: path
type: string
description: ID of the data source
required: true
- name: qid
in: path
description: ID of stored query
required: true
type: string
- name: query
in: body
description: Query configuration parameters
schema:
$ref: '#/definitions/Query'
required: true
responses:
204:
description: Stored query has been updated
404:
description: source id or query id does not exist.
schema:
$ref: '#/definitions/Error'
default:
description: Unexpected internal service error
schema:
$ref: '#/definitions/Error'
delete:
summary: Destroy query resource
parameters:
- name: id
in: path
type: string
description: ID of the data source
required: true
- name: qid
in: path
description: ID of stored query
required: true
type: string
responses:
204:
description: Stored query has been destroyed.
404:
description: source id or query id does not exist.
schema:
$ref: '#/definitions/Error'
default:
description: Unexpected internal service error
schema:
$ref: '#/definitions/Error'
/sources/{id}/queries/{qid}/results:
get:
summary: Return results from executing the query.
description: |
This endpoint acts as an RPC call to execute the query against the time series data source.
The data source results are formatted before return according the the query's configuration.
This endpoint also transforms the data source's error conditions into status codes 400 or 408.
parameters:
- name: id
in: path
type: string
description: ID of the data source
required: true
- name: qid
in: path
description: ID of stored query
required: true
type: string
- name: lower
in: query
description: Optional lower-time bound override. Will update the query configuration.
type: string
- name: upper
in: query
description: Optional upper-time bound override. Will update the query configuration.
type: string
responses:
200:
description: Query successfully executed and results have been transformed.
schema:
$ref: '#/definitions/QueryResults'
400:
description: Any query that results in a data source error (syntax error, etc) will cause this response. The error message will be passed back in the body
schema:
$ref: '#/definitions/Error'
404:
description: source id or query id does not exist.
schema:
$ref: '#/definitions/Error'
408:
description: Timeout trying to query data source.
schema:
$ref: '#/definitions/Error'
default:
description: Unexpected internal service error
schema:
$ref: '#/definitions/Error'
/sources/{id}/permissions:
get:
summary: Returns the list of possible permissions supported by the backend time series data source.
parameters:
- name: id
in: path
type: string
description: ID of the data source
required: true
responses:
200:
description: An array of permissions
schema:
$ref: '#/definitions/ACL'
default:
description: Unexpected internal service error
schema:
$ref: '#/definitions/Error'
/sources/{id}/users:
get:
parameters:
- name: id
in: path
type: string
description: ID of the data source
required: true
summary: List of all users on this data source
responses:
200:
description: An array of users
schema:
$ref: '#/definitions/Users'
default:
description: Unexpected internal service error
schema:
$ref: '#/definitions/Error'
post:
summary: Create new user for this data source
parameters:
- name: id
in: path
type: string
description: ID of the data source
required: true
- name: user
in: body
description: Configuration options for new user
schema:
$ref: '#/definitions/User'
responses:
201:
description: Successfully created new user
headers:
Location:
type: string
format: url
description: Location of the newly created user resource.
schema:
$ref: '#/definitions/User'
default:
description: A processing or an unexpected error.
schema:
$ref: '#/definitions/Error'
/sources/{id}/users/{user_id}:
get:
parameters:
- name: id
in: path
type: string
description: ID of the data source
required: true
- name: user_id
in: path
type: string
description: ID of the specific user
required: true
summary: Returns information about a specific user
description: |
Specific User and their permissions.
responses:
200:
description: Information relating to the user
schema:
$ref: '#/definitions/User'
404:
description: Unknown source id
schema:
$ref: '#/definitions/Error'
default:
description: Unexpected internal service error
schema:
$ref: '#/definitions/Error'
patch:
summary: Update user configuration
parameters:
- name: id
in: path
type: string
description: ID of a data source
required: true
- name: user_id
in: path
type: string
description: ID of the specific user
required: true
- name: config
in: body
description: user configuration
schema:
$ref: '#/definitions/User'
required: true
responses:
204:
description: Users's configuration was changed
404:
description: Happens when trying to access a non-existent user.
schema:
$ref: '#/definitions/Error'
default:
description: A processing or an unexpected error.
schema:
$ref: '#/definitions/Error'
delete:
parameters:
- name: id
in: path
type: string
description: ID of the source
required: true
- name: user_id
in: path
type: string
description: ID of the specific user
required: true
summary: This specific user will be removed from the data store
responses:
204:
description: User has been removed
404:
description: Unknown user id
schema:
$ref: '#/definitions/Error'
default:
description: Unexpected internal service error
schema:
$ref: '#/definitions/Error'
/sources/{id}/roles:
get:
parameters:
- name: id
in: path
type: string
description: ID of the data source
required: true
summary: List of all roles on this data source
responses:
200:
description: An array of roles
schema:
$ref: '#/definitions/Roles'
default:
description: Unexpected internal service error
schema:
$ref: '#/definitions/Error'
post:
summary: Create new role for this data source
parameters:
- name: id
in: path
type: string
description: ID of the data source
required: true
- name: role
in: body
description: Configuration options for new role
schema:
$ref: '#/definitions/Role'
responses:
201:
description: Successfully created new role
headers:
Location:
type: string
format: url
description: Location of the newly created role resource.
schema:
$ref: '#/definitions/Role'
default:
description: A processing or an unexpected error.
schema:
$ref: '#/definitions/Error'
/sources/{id}/roles/{role_id}:
get:
parameters:
- name: id
in: path
type: string
description: ID of the data source
required: true
- name: role_id
in: path
type: string
description: ID of the specific role
required: true
summary: Returns information about a specific role
description: |
Specific Role and its associated permissions.
responses:
200:
description: Information relating to the role
schema:
$ref: '#/definitions/Role'
404:
description: Unknown source id
schema:
$ref: '#/definitions/Error'
default:
description: Unexpected internal service error
schema:
$ref: '#/definitions/Error'
patch:
summary: Update role configuration
parameters:
- name: id
in: path
type: string
description: ID of a data source
required: true
- name: role_id
in: path
type: string
description: ID of the specific role
required: true
- name: config
in: body
description: role configuration
schema:
$ref: '#/definitions/Role'
required: true
responses:
204:
description: Role's configuration was changed
404:
description: Happens when trying to access a non-existent role.
schema:
$ref: '#/definitions/Error'
default:
description: A processing or an unexpected error.
schema:
$ref: '#/definitions/Error'
delete:
parameters:
- name: id
in: path
type: string
description: ID of the source
required: true
- name: role_id
in: path
type: string
description: ID of the specific role
required: true
summary: This specific role will be removed from the data store
responses:
204:
description: Role has been removed
404:
description: Unknown role id
schema:
$ref: '#/definitions/Error'
default:
description: Unexpected internal service error
schema:
$ref: '#/definitions/Error'
/dashboards:
get:
summary: Pre-configured dashboards
description: |
Dashboards are a collection of `Cells` that visualize time-series data.
responses:
200:
description: An array of dashboards
schema:
$ref: '#/definitions/Dashboards'
default:
description: Unexpected internal service error
schema:
$ref: '#/definitions/Error'
post:
summary: Create new Dashboard
parameters:
- name: dashboard
in: body
description: Defines the dashboard and queries of the cells within the dashboard.
schema:
$ref: '#/definitions/Dashboard'
responses:
201:
description: Successfully created new dashboard
headers:
Location:
type: string
format: url
description: Location of the newly created dashboard
schema:
$ref: '#/definitions/Dashboard'
default:
description: A processing or an unexpected error.
schema:
$ref: '#/definitions/Error'
/dashboards/{id}:
get:
parameters:
- name: id
in: path
type: string
description: ID of the dashboard
required: true
summary: Specific pre-configured dashboard containing cells and queries.
description: |
dashboards will hold information about how to layout the page of graphs.
responses:
200:
description: Returns the specified dashboard containing `cells`.
schema:
$ref: '#/definitions/Dashboard'
404:
description: Unknown dashboard id
schema:
$ref: '#/definitions/Error'
default:
description: Unexpected internal service error
schema:
$ref: '#/definitions/Error'
delete:
parameters:
- name: id
in: path
type: string
description: ID of the dashboard
required: true
summary: This specific dashboard will be removed from the data store
responses:
204:
description: An array of dashboards
404:
description: Unknown dashboard id
schema:
$ref: '#/definitions/Error'
default:
description: Unexpected internal service error
schema:
$ref: '#/definitions/Error'
put:
summary: Completely update dashboard configuration
parameters:
- name: id
in: path
type: string
description: ID of a dashboard
required: true
- name: config
in: body
description: dashboard configuration update parameters
schema:
$ref: '#/definitions/Dashboard'
required: true
responses:
204:
description: Dashboard's configuration was changed
404:
description: Happens when trying to access a non-existent dashboard.
schema:
$ref: '#/definitions/Error'
default:
description: A processing or an unexpected error.
schema:
$ref: '#/definitions/Error'
definitions:
Sources:
type: object
properties:
sources:
type: array
items:
$ref: '#/definitions/Source'
Source:
type: object
required:
- type
- name
properties:
id:
type: string
description: Unique identifier representing a specific data source.
readOnly: True
name:
type: string
description: User facing name of data source
type:
type: string
description: Format of the data source
enum:
- influx
- influx-enterprise
link:
$ref: "#/definitions/Link"
Roles:
type: object
properties:
role:
type: array
2016-09-08 21:03:01 +00:00
items:
$ref: "#/definitions/Role"
Role:
type: object
required:
- id
- permissions
- name
properties:
id:
type: string
name:
type: string
maxLength: 64
permissions:
type: array
items:
$ref: '#/definitions/Permission'
link:
$ref: "#/definitions/Link"
users:
$ref: "#/definitions/Links"
Users:
type: object
properties:
users:
type: array
2016-09-08 21:03:01 +00:00
items:
$ref: "#/definitions/User"
User:
type: object
required:
- id
- permissions
properties:
id:
type: string
username:
type: string
maxLength: 64
permissions:
type: array
items:
$ref: '#/definitions/Permission'
link:
$ref: "#/definitions/Link"
Permission:
type: object
properties:
database:
type: string
acls:
$ref: "#/definitions/ACL"
ACL:
type: array
items:
$ref: "#/definitions/AC"
AC:
type: string
description: Specific access
enum:
- ViewAdmin
- ViewChronograf
- CreateDatabase
- CreateUserAndRole
- AddRemoveNode
- DropDatabase
- DropData
- ReadData
- WriteData
- Rebalance
- ManageShard
Dashboards:
type: object
properties:
dashboards:
type: array
items:
$ref: "#/definitions/Dashboard"
Dashboard:
type: object
required:
- cells
properties:
cells:
type: array
description: Cells are the individual visualization elements.
items:
$ref: "#/definitions/Cell"
Cell:
type: object
properties:
x:
description: X-coordinate of Cell in the Dashboard
type: integer
format: int32
'y':
description: Y-coordinate of Cell in the Dashboard
type: integer
format: int32
w:
description: Width of Cell in the Dashboard
type: integer
format: int32
h:
description: Height of Cell in the Dashboard
type: integer
format: int32
queryLinks:
description: Time-series data queries for Cell. GETs to these links produce `QueryResults.`
type: array
items:
type: string
format: url
Error:
type: object
properties:
code:
type: integer
format: int32
message:
type: string
Links:
type: object
properties:
links:
type: array
items:
$ref: "#/definitions/Link"
Link:
type: object
required: [rel, href]
readOnly: true
description: URI of resource.
properties:
rel:
type: string
href:
type: string
format: url
Proxy:
type: object
required:
- query
properties:
query:
type: string
format:
type: string
enum:
- raw
default: raw
ProxyResponse:
type: object
properties:
results:
description: results from influx
type: object
Query:
type: object
properties:
database:
type: string
measurement:
type: string
retentionPolicy:
type: string
fields:
type: array
items:
type: object
properties:
field:
type: string
funcs:
type: array
items:
type: string
tags:
type: object
raw:
type: string
groupBy:
type: object
properties:
time:
type: string
format: duration
tags:
type: array
items:
type: string
format:
type: string
description: Query response format
enum:
- raw
default: raw
protocol:
type: string
description: Protocol method to communicate results back (in the future this could include web sockets).
enum:
- http
default: http
QueryResponse:
allOf:
- $ref: "#/definitions/Query"
- type: object
required:
- resultsLink
properties:
resultsLink:
$ref: "#/definitions/Link"
QueryResults:
type: object
required:
- results
properties:
results:
type: object