swagger: '2.0'
info:
    title: Mr Fusion
    description: Fuel for Chronograf
    version: "1.1.0"
host: Chronograf.influxdata.com
schemes:
    - http
basePath: /chronograf/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/Routes'
                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 information.
                    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}/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/AllPermissions'
                404:
                    description: Data source id does not exist.
                    schema:
                        $ref: '#/definitions/Error'
                default:
                    description: Unexpected internal service error
                    schema:
                        $ref: '#/definitions/Error'
    /sources/{id}/monitored:
        get:
            summary: Returns a list of all being services being monitored
            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/Services'
                404:
                    description: Data source id does not exist.
                    schema:
                        $ref: '#/definitions/Error'
                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}/users/{user_id}/explorations:
        get:
            parameters:
              - name: id
                in: path
                type: string
                description: ID of the data source
                required: true
              - name: user_id
                in: path
                type: string
                description: All Data Explorations returned only for this user.
                required: true
            responses:
                200:
                    description: Data Explorations saved sessions for user are returned.
                    schema:
                        $ref: '#/definitions/Explorations'
                404:
                    description: Data source id or user does not exist.
                    schema:
                        $ref: '#/definitions/Error'
                default:
                    description: Unexpected internal service error
                    schema:
                        $ref: '#/definitions/Error'
        post:
            summary: Create new named exploration for this user
            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 user to associate this exploration with.
                  required: true
                - name: exploration 
                  in: body
                  description: Exploration session to save
                  schema:
                      $ref: '#/definitions/Exploration'
            responses:
                201:
                    description: Successfully created new Exploration session
                    headers:
                        Location:
                            type: string
                            format: url
                            description: Location of the newly created exploration resource.
                    schema:
                        $ref: '#/definitions/Exploration'
                404:
                    description: Data source id or user does not exist.
                    schema:
                        $ref: '#/definitions/Error'
                default:
                    description: A processing or an unexpected error.
                    schema:
                        $ref: '#/definitions/Error'
    /sources/{id}/users/{user_id}/explorations/{exploration_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 user to associate this exploration with.
                  required: true
                - name: exploration_id 
                  in: path
                  type: string
                  description: ID of the specific exploration.
                  required: true
            summary: Returns the specified data exploration session
            description: |
                A data exploration session specifies query information.
            responses:
                200:
                    description: Information relating to the exploration
                    schema:
                        $ref: '#/definitions/Exploration'
                404:
                    description: Data source id, user, or exploration does not exist.
                    schema:
                        $ref: '#/definitions/Error'
                default:
                    description: Unexpected internal service error
                    schema:
                        $ref: '#/definitions/Error'
        patch:
            summary: Update exploration configuration
            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 user
                  required: true
                - name: exploration_id 
                  in: path
                  type: string
                  description: ID of the specific exploration.
                  required: true
                - name: exploration 
                  in: body
                  description: Update the exploration information to this.
                  required: true
                  schema:
                      $ref: "#/definitions/Exploration"
            responses:
                200:
                    description: Exploration's configuration was changed
                    schema:
                        $ref: '#/definitions/Exploration'
                404:
                    description: Data source id, user, or exploration does not exist.
                    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 data source
                  required: true
                - name: user_id
                  in: path
                  type: string
                  description: ID of user to associate this exploration with.
                  required: true
                - name: exploration_id 
                  in: path
                  type: string
                  description: ID of the specific exploration.
                  required: true
            summary: This specific exporer session will be removed.
            responses:
                204:
                    description: Exploration session has been removed
                404:
                    description: Data source id, user, or exploration does not exist.
                    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'
    /sources/{id}/kapacitors:
        get:
            parameters:
                - name: id
                  in: path
                  type: string
                  description: ID of the source
                  required: true
            summary: Configured kapacitors
            responses:
                200:
                    description: An array of kapacitors
                    schema:
                        $ref: '#/definitions/Kapacitors'
                default:
                    description: Unexpected internal service error
                    schema:
                        $ref: '#/definitions/Error'
        post:
            summary: Create new kapacitor backend
            parameters:
                - name: id
                  in: path
                  type: string
                  description: ID of the source
                  required: true
                - name: kapacitor
                  in: body
                  description: Configuration options for kapacitor
                  schema:
                      $ref: '#/definitions/Kapacitor'
            responses:
                201:
                    description: Successfully created kapacitor source
                    headers:
                        Location:
                            type: string
                            format: url
                            description: Location of the newly created kapacitor resource.
                    schema:
                        $ref: '#/definitions/Kapacitor'
                default:
                    description: A processing or an unexpected error.
                    schema:
                        $ref: '#/definitions/Error'
    /sources/{id}/kapacitors/{kapa_id}:
        get:
            parameters:
                - name: id
                  in: path
                  type: string
                  description: ID of the source
                  required: true
                - name: kapa_id
                  in: path
                  type: string
                  description: ID of the kapacitor
                  required: true
            summary: Configured kapacitors
            description: These kapacitors are used for monitoring and alerting.
            responses:
                200:
                    description: Kapacitor connection information
                    schema:
                        $ref: '#/definitions/Kapacitor'
                404:
                    description: Unknown data source or kapacitor id
                    schema:
                        $ref: '#/definitions/Error'
                default:
                    description: Unexpected internal service error
                    schema:
                        $ref: '#/definitions/Error'
        patch:
            summary: Update kapacitor configuration
            parameters:
                - name: id
                  in: path
                  type: string
                  description: ID of the source
                  required: true
                - name: kapa_id
                  in: path
                  type: string
                  description: ID of a kapacitor backend
                  required: true
                - name: config
                  in: body
                  description: kapacitor configuration
                  schema:
                      $ref: '#/definitions/Kapacitor'
                  required: true
            responses:
                204:
                    description: Kapacitor's configuration was changed
                404:
                    description: Happens when trying to access a non-existent data source or kapacitor.
                    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: kapa_id
                  in: path
                  type: string
                  description: ID of the kapacitor
                  required: true
            summary: This specific kapacitor will be removed.
            responses:
                204:
                    description: kapacitor has been removed.
                404:
                    description: Unknown Data source or Kapacitor id
                    schema:
                        $ref: '#/definitions/Error'
                default:
                    description: Unexpected internal service error
                    schema:
                        $ref: '#/definitions/Error'
    /sources/{id}/kapacitors/{kapa_id}/proxy:
        get:
            description: GET to `path` of kapacitor.  The response and status code from kapacitor is directly returned.
            parameters:
                - name: id
                  in: path
                  type: string
                  description: ID of the source
                  required: true
                - name: kapa_id
                  in: path
                  type: string
                  description: ID of the kapacitor backend.
                  required: true
                - name: path
                  in: query
                  type: string
                  description: The kapacitor API path to use in the proxy redirect
                  required: true
            responses:
                204:
                    description: Kapacitor returned no content
                404:
                    description: Data source or Kapacitor ID does not exist.
                    schema:
                        $ref: '#/definitions/Error'
                default:
                    description: Response directly from kapacitor
                    schema:
                        $ref: '#/definitions/KapacitorProxyResponse'
        delete:
            description: DELETE to `path` of kapacitor.  The response and status code from kapacitor is directly returned.
            parameters:
                - name: id
                  in: path
                  type: string
                  description: ID of the source
                  required: true
                - name: kapa_id
                  in: path
                  type: string
                  description: ID of the kapacitor backend.
                  required: true
                - name: path
                  in: query
                  type: string
                  description: The kapacitor API path to use in the proxy redirect
                  required: true
            responses:
                204:
                    description: Kapacitor returned no content
                404:
                    description: Data source or Kapacitor ID does not exist.
                    schema:
                        $ref: '#/definitions/Error'
                default:
                    description: Response directly from kapacitor
                    schema:
                        $ref: '#/definitions/KapacitorProxyResponse'
        patch:
            description: PATCH body directly to configured kapacitor.  The response and status code from kapacitor is directly returned.
            parameters:
                - name: id
                  in: path
                  type: string
                  description: ID of the source
                  required: true
                - name: kapa_id
                  in: path
                  type: string
                  description: ID of the kapacitor backend.
                  required: true
                - name: path
                  in: query
                  type: string
                  description: The kapacitor API path to use in the proxy redirect
                  required: true
                - name: query
                  in: body
                  description: Kapacitor body
                  schema:
                      $ref: '#/definitions/KapacitorProxy'
                  required: true
            responses:
                204:
                    description: Kapacitor returned no content
                404:
                    description: Data source or Kapacitor ID does not exist.
                    schema:
                        $ref: '#/definitions/Error'
                default:
                    description: Response directly from kapacitor
                    schema:
                        $ref: '#/definitions/KapacitorProxyResponse'

        post:
            description: POST body directly to configured kapacitor.  The response and status code from kapacitor is directly returned.
            parameters:
                - name: id
                  in: path
                  type: string
                  description: ID of the source
                  required: true
                - name: kapa_id
                  in: path
                  type: string
                  description: ID of the kapacitor backend.
                  required: true
                - name: path
                  in: query
                  type: string
                  description: The kapacitor API path to use in the proxy redirect
                  required: true
                - name: query
                  in: body
                  description: Kapacitor body
                  schema:
                      $ref: '#/definitions/KapacitorProxy'
                  required: true
            responses:
                204:
                    description: Kapacitor returned no content
                404:
                    description: Kapacitor ID does not exist.
                    schema:
                        $ref: '#/definitions/Error'
                default:
                    description: Response directly from kapacitor
                    schema:
                        $ref: '#/definitions/KapacitorProxyResponse'
    /layouts:
        get:
            summary: Pre-configured layouts
            parameters:
                - name: measurements
                  in: query
                  description: Returns layouts with this measurement
                  required: false
                  type: array
                  items:
                      type: string
                  collectionFormat: csv
                - name: apps
                  in: query
                  description: Returns layouts with this app
                  required: false
                  type: array
                  items:
                      type: string
                  collectionFormat: csv
            description: |
                Layouts are a collection of `Cells` that visualize time-series data.
            responses:
                200:
                    description: An array of layouts 
                    schema:
                        $ref: '#/definitions/Layouts'
                default:
                    description: Unexpected internal service error
                    schema:
                        $ref: '#/definitions/Error'
        post:
            summary: Create new layout
            parameters:
                - name: layout 
                  in: body
                  description: Defines the layout and queries of the cells within the layout.
                  schema:
                      $ref: '#/definitions/Layout'
            responses:
                201:
                    description: Successfully created new layout
                    headers:
                        Location:
                            type: string
                            format: url
                            description: Location of the newly created layout
                    schema:
                        $ref: '#/definitions/Layout'
                default:
                    description: A processing or an unexpected error.
                    schema:
                        $ref: '#/definitions/Error'
    /layouts/{id}:
        get:
            parameters:
                - name: id
                  in: path
                  type: string
                  description: ID of the layout 
                  required: true
            summary: Specific pre-configured layout containing cells and queries.
            description: |
                layouts will hold information about how to layout the page of graphs.
            responses:
                200:
                    description: Returns the specified layout containing `cells`.
                    schema:
                        $ref: '#/definitions/Layout'
                404:
                    description: Unknown layout 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 layout
                  required: true
            summary: This specific layout will be removed from the data store
            responses:
                204:
                    description: Layout has been removed.
                404:
                    description: Unknown layout id
                    schema:
                        $ref: '#/definitions/Error'
                default:
                    description: Unexpected internal service error
                    schema:
                        $ref: '#/definitions/Error'
        put:
            summary: Replace layout configuration.
            parameters:
                - name: id
                  in: path
                  type: string
                  description: ID of a layout
                  required: true
                - name: config
                  in: body
                  description: layout  configuration update parameters
                  schema:
                      $ref: '#/definitions/Layout'
                  required: true
            responses:
                200:
                    description: Layout has been replaced and the new layout is returned.
                    schema:
                        $ref: '#/definitions/Layout'
                404:
                    description: Happens when trying to access a non-existent layout.
                    schema:
                        $ref: '#/definitions/Error'
                default:
                    description: A processing or an unexpected error.
                    schema:
                        $ref: '#/definitions/Error'
definitions:
    Kapacitors:
        type: object
        required:
            - kapacitors 
        properties:
            kapacitors:
                type: array
                items:
                    $ref: '#/definitions/Kapacitor'   
    Kapacitor:
        type: object
        required:
            - name
            - url
        properties:
            id:
                type: string
                description: Unique identifier representing a kapacitor instance.
                readOnly: True
            name:
                type: string
                description: User facing name of kapacitor instance.
            username:
                type: string
                description: Username for authentication to kapacitor
            password:
                type: string
                description: Password in cleartext!
            url:
                type: string
                format: url
                description: URL for the kapacitor backend (e.g. http://localhost:9092)
            links: 
                type: object
                properties:
                    self:
                        type: string
                        description: Self link mapping to this resource
                        format: url
                    proxy:
                        type: string
                        description: URL location of proxy endpoint for this source
                        format: url
    KapacitorProxy:
        description: Entirely used as the body for the request to the kapacitor backend.
        type: object
    KapacitorProxyResponse:
        description: Entire response from the kapacitor backend.
        type: object
    Sources:
        type: object
        required:
            - sources
        properties:
            sources:
                type: array
                items:
                    $ref: '#/definitions/Source'   
    Source:
        type: object
        required:
            - name
            - url
        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
            username:
                type: string
                description: Username for authentication to data source
            password:
                type: string
                description: Password in cleartext!
            url:
                type: string
                format: url
                description: URL for the time series data source backend (e.g. http://localhost:8086)
            default:
                type: boolean
                description: Indicates whether this source is the default source
            links: 
                type: object
                properties:
                    self:
                        type: string
                        description: Self link mapping to this resource
                        format: url
                    users:
                        type: string
                        description: URL location of users endpoint for this source
                        format: url
                    roles:
                        type: string
                        description: URL location of the roles endpoint for this source
                        format: url
                    proxy:
                        type: string
                        description: URL location of proxy endpoint for this source
                        format: url
                    permissions:
                        type: string
                        description: URL location of the permissions endpoint for this source
                        format: url
                    kapacitors:
                        type: string
                        description: URL location of the kapacitors endpoint for this source
                        format: url
                    monitored:
                        type: string
                        description: URL location of the monitored services endpoint for this source
                        format: url
    Proxy:
        type: object
        required:
            - query
        properties:
            query:
                type: string
            db:
                type: string
            rp:
                type: string
            format:
                type: string
                enum:
                    - raw
                default: raw
    ProxyResponse:
        type: object
        properties:
            results:
                description: results from influx
                type: object
    Explorations:
        type: object
        required:
            - explorations
        properties:
            explorations:
              type: array
              items:
                  $ref: "#/definitions/Exploration"
    Exploration:
        type: object
        properties:
            created_at:
                type: string
                format: date-time
            updated_at:
                type: string
                format: date-time
                description: Latest time the exploration was updated.
            name:
                type: string
                description: Exploration name given by user.
            data:
                type: object
                description: Serialization of the exploration query configuration.
            link:
                $ref: "#/definitions/Link"
    Roles:
        type: object
        properties:
            roles:
                type: array
                items:
                    $ref: "#/definitions/Role"
    Role:
        type: object
        required:
            - permissions
            - name
        properties:
            name:
                type: string
                maxLength: 64
            permissions:
                $ref: '#/definitions/Permissions'
            users:
                $ref: "#/definitions/Users"
            link:
                $ref: "#/definitions/Link"
    Users:
        type: object
        properties:
            users:
                type: array
                items:
                    $ref: "#/definitions/User"
    User:
        type: object
        required:
            - permissions
            - username
        properties:
            username:
                type: string
                maxLength: 64
            permissions:
                $ref: '#/definitions/Permissions'
            roles:
                $ref: '#/definitions/Roles'
            link:
                $ref: "#/definitions/Link"
    Permissions:
        type: object
        properties:
            database:
                description: permissions are scoped to a specific database
                type: string
            permissions:
                type: array
                items:
                    $ref: "#/definitions/Permission"
    Permission:
        type: string
        description: Specific access 
        enum:
            - ViewAdmin
            - ViewChronograf
            - CreateDatabase
            - CreateUserAndRole
            - AddRemoveNode
            - DropDatabase
            - DropData
            - ReadData
            - WriteData
            - Rebalance
            - ManageShard
    AllPermissions:
        description: All Possible permission strings
        type: array
        items:
            $ref: "#/definitions/Permission"
    Layouts:
        required:
            - layouts
        type: object
        properties:
            layouts:
                type: array
                items:
                    $ref: "#/definitions/Layout"
    Layout:
        type: object
        required:
            - cells
            - app
            - measurement
        properties:
            id:
                type: string
                description: ID is an opaque string that uniquely identifies this layout.
            app:
                type: string
                description: App is the user facing name of this Layout
            measurement:
                type: string
                description: Measurement is the descriptive name of the time series data.
            cells:
                type: array
                description: Cells are the individual visualization elements.
                items:
                    $ref: "#/definitions/Cell"
            link:
                $ref: "#/definitions/Link"
    Cell:
        type: object
        required:
            - x
            - 'y'
            - w
            - h
        properties:
            x:
                description: X-coordinate of Cell in the Layout 
                type: integer
                format: int32
            'y':
                description: Y-coordinate of Cell in the Layout 
                type: integer
                format: int32
            w:
                description: Width of Cell in the Layout
                type: integer
                format: int32
            h:
                description: Height of Cell in the Layout
                type: integer
                format: int32
            queries:
                description: Time-series data queries for Cell.
                type: array
                items:
                    $ref: "#/definitions/Proxy"
    Routes:
        type: object
        properties:
            users:
                description: Location of the users endpoint
                type: string
                format: url
            layouts:
                description: Location of the layouts endpoint
                type: string
                format: url
            sources:
                description: Location of the sources endpoint
                type: string
                format: url
    Services:
        type: object
        properties:
            services:
                type: array
                items:
                    $ref: "#/definitions/Service"
    Service:
        type: object
        properties:
            'type':
                description: Type of service
                type: string
                enum:
                    - containers
                    - kubernetes
                    - host
            tagKey:
                description: The key part of the key-value pair that makes up a tag. Used to identify a service type.
                type: string
            tagValue:
                description: The value part of the key-value pair that makes up a tag.
                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
    Error:
        type: object
        properties:
            code:
                type: integer
                format: int32
            message:
                type: string