api/yaml/openapi.yaml (588 lines of code) (raw):

# THIS IS PULLED FROM SCRIPTS AND AUTOGENERATED! # Please use openapi/combine.py to regenerate! openapi: 3.0.0 info: version: 1.0.0 description: This is the API specifications for interacting with the Warble Server. title: Apache Warble API license: name: Apache 2.0 url: 'http://www.apache.org/licenses/LICENSE-2.0.html' components: schemas: APIKeyResult: properties: encrypted: description: Whether the API Key is encrypted (in case of nodes/agents requesting it) example: false type: boolean key: description: The (encrypted?) API Key assigned by the server example: abcdef-1234 type: string required: - encrypted - key ActionCompleted: properties: message: description: Acknowledgement message example: Action completed type: string required: - message Empty: properties: id: description: optional object ID type: string page: description: optional page id type: string required: [] Error: properties: code: description: HTTP Error Code example: 403 format: int16 type: integer reason: description: Human readable error message example: You need to be logged in to view this endpoint! type: string required: - code - reason NodeCredentials: properties: hostname: description: The node's own perceived hostname example: foo1.warble.xyz type: string pubkey: description: The node's self-generated public RSA key, PEM-encoded type: string version: description: The version of Warble the node is running example: 0.1.0 type: string required: - hostname - pubkey - version NodeDetails: properties: description: description: A description of the node example: This is the internal node in DC1 type: string enabled: description: Whether the node is enabled or paused example: true type: boolean hostname: description: The node's own perceived hostname example: foo1.warble.xyz type: string id: description: the numeric ID of the node to modify example: 42 type: integer ip: description: The IP generally associated with this client type: string lastping: description: The last UNIX timestamp of activity from the client type: integer location: description: Physical location of the node example: DC1, Chicago, Illinois type: string pubkey: description: The node's self-generated public RSA key, PEM-encoded type: string verified: description: Whether the node is verified as ours or not example: true type: boolean version: description: The version of Warble the node is running example: 0.1.0 type: string required: - id Timeseries: properties: interval: type: string okay: type: boolean timeseries: items: $ref: '#/components/schemas/TimeseriesObject' type: array TimeseriesObject: properties: $item: description: A timeseries object example: 50 type: integer $otheritem: description: A timeseries object example: 26 type: integer date: description: Seconds since UNIX epoch example: 1508273 type: integer required: - date UserAccount: properties: displayname: description: A display name (e.g. full name) for the account example: Warble User type: string email: description: Desired username (email address) example: guest@warble.xyz type: string password: description: Desired password for the account example: warbledemo type: string required: - email - password - displayname UserCredentials: properties: password: description: User password example: warbledemo type: string username: description: Username (email?) example: admin type: string required: - username - password WidgetApp: properties: blocks: description: Size (width) in UI blocks of the app example: 4 type: integer datatype: description: The top category of this data example: repo type: string name: description: The title of the widget app example: Widget Title type: string representation: description: The visual representation style of this widget example: donut type: string source: description: The API endpoint to get data from example: code-evolution type: string target: type: string text: description: Text to insert into the widget (if paragraph type widget) type: string type: description: The type of widget example: My Widget type: string required: - type - name - blocks WidgetDesign: properties: rows: items: $ref: '#/components/schemas/WidgetRow' type: array title: type: string WidgetRow: properties: children: items: $ref: '#/components/schemas/WidgetApp' type: array name: type: string defaultWidgetArgs: properties: author: description: Turns on author view for code results, as opposed to the default committer view type: boolean collapse: description: for some widgets, this collapses sources based on a regex type: string distinguish: description: Enables distinguishing different types of data objects, subject to the individual API endpoint example: false type: boolean email: description: filter sources based on an email (a person) type: string from: description: If specified, compile data from this timestamp onwards example: 1400000000 type: integer interval: description: If fetching histograms, this specifies the interval to pack figures into. Can be day, week, month, quarter or year example: month type: string links: description: for relationship maps, this denotes the minimum link strength (no. of connections) that makes up a link. type: integer page: type: string quick: description: Turns on quick data for some endpoints, returning only sparse data (thus less traffic) example: false type: boolean relative: description: Enables relative comparison mode for API endpoints that have this feature. example: false type: boolean search: description: for some widgets, this enables sub-filtering based on searches type: string source: description: If specified, only compile data on this specific sourceID example: abcdef12345678 type: string sources: description: for some widget, this fetches all sources type: boolean span: description: For factor charts, denotes the number of months to base factors on from example: 2 type: integer subfilter: description: Quickly defined view by sub-filtering the existing view and matching on sourceURLs type: string to: description: If specified, only compile data up until here example: 1503483273 type: integer types: description: If set, only return data from sources matching these types example: - jira - bugzilla type: array unique: description: Only compile data from unique commits, ignore duplicates type: boolean view: description: ID Of optional view to use example: abcdef12345678 type: string securitySchemes: APIKeyAuth: in: headers name: APIKey type: apiKey cookieAuth: in: cookie name: warble_session type: apiKey paths: /api/account: delete: requestBody: content: application/json: schema: $ref: '#/components/schemas/UserName' description: User ID required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/ActionCompleted' description: 200 response default: content: application/json: schema: $ref: '#/components/schemas/Error' description: unexpected error security: - cookieAuth: [] summary: Delete an account patch: requestBody: content: application/json: schema: $ref: '#/components/schemas/UserAccountEdit' description: User credentials required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/ActionCompleted' description: 200 response default: content: application/json: schema: $ref: '#/components/schemas/Error' description: unexpected error summary: Edit an account put: requestBody: content: application/json: schema: $ref: '#/components/schemas/UserAccount' description: User credentials required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/ActionCompleted' description: 200 response default: content: application/json: schema: $ref: '#/components/schemas/Error' description: unexpected error summary: Create a new account /api/node/list: get: responses: '200': content: application/json: schema: $ref: '#/components/schemas/NodeList' description: List of nodes in registry default: content: application/json: schema: $ref: '#/components/schemas/Error' description: unexpected error summary: Lists the nodes in the registry /api/node/modify: delete: requestBody: content: application/json: schema: $ref: '#/components/schemas/NodeDetails' description: Node to remove required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/ActionCompleted' description: Node successfully removed from registry default: content: application/json: schema: $ref: '#/components/schemas/Error' description: unexpected error summary: Deletes a registered node from the server post: requestBody: content: application/json: schema: $ref: '#/components/schemas/NodeDetails' description: Node details to modify required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/ActionCompleted' description: Node successfully modified on server default: content: application/json: schema: $ref: '#/components/schemas/Error' description: unexpected error summary: Modifies base data of a node in the registry /api/node/register: post: requestBody: content: application/json: schema: $ref: '#/components/schemas/NodeCredentials' description: Node credentials required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/APIKeyResult' description: Node successfully registered with server default: content: application/json: schema: $ref: '#/components/schemas/Error' description: unexpected error summary: Registers a new node with the Warble server /api/node/status: get: responses: '200': content: application/json: schema: $ref: '#/components/schemas/NodeDetails' description: Node status default: content: application/json: schema: $ref: '#/components/schemas/Error' description: unexpected error summary: Displays the current status of a node /api/node/tasks: get: responses: '200': content: application/json: schema: $ref: '#/components/schemas/TaskList' description: Node task list default: content: application/json: schema: $ref: '#/components/schemas/Error' description: unexpected error summary: Returns a list of tasks assigned to a given node /api/session: delete: requestBody: content: application/json: schema: $ref: '#/components/schemas/Empty' description: Nada required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/ActionCompleted' description: Logout successful default: content: application/json: schema: $ref: '#/components/schemas/Error' description: unexpected error security: - cookieAuth: [] summary: Log out (remove session) get: responses: '200': content: application/json: schema: $ref: '#/components/schemas/UserData' description: 200 response default: content: application/json: schema: $ref: '#/components/schemas/Error' description: unexpected error security: - cookieAuth: [] summary: Display your login details put: requestBody: content: application/json: schema: $ref: '#/components/schemas/UserCredentials' description: User credentials required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/ActionCompleted' description: Login successful headers: Set-Cookie: schema: example: 77488a26-23c2-4e29-94a1-6a0738f6a3ff type: string default: content: application/json: schema: $ref: '#/components/schemas/Error' description: unexpected error summary: Log in /api/widgets/{pageid}: get: parameters: - description: Page ID to fetch design for in: path name: pageid required: true schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/WidgetDesign' description: 200 Response default: content: application/json: schema: $ref: '#/components/schemas/Error' description: unexpected error security: - cookieAuth: [] summary: Shows the widget layout for a specific page