520 lines
15 KiB
YAML
520 lines
15 KiB
YAML
openapi: 3.0.0
|
|
info:
|
|
title: Subset of Influx API covered by Influx CLI
|
|
version: 2.0.0
|
|
servers:
|
|
- url: /api/v2
|
|
paths:
|
|
/health:
|
|
servers:
|
|
- url: ''
|
|
get:
|
|
operationId: GetHealth
|
|
tags:
|
|
- Health
|
|
summary: Get the health of an instance
|
|
parameters:
|
|
- $ref: '#/components/parameters/TraceSpan'
|
|
responses:
|
|
'200':
|
|
description: The instance is healthy
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HealthCheck'
|
|
'503':
|
|
description: The instance is unhealthy
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HealthCheck'
|
|
default:
|
|
description: Unexpected error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
/setup:
|
|
get:
|
|
operationId: GetSetup
|
|
tags:
|
|
- Setup
|
|
summary: 'Check if database has default user, org, bucket'
|
|
description: 'Returns `true` if no default user, organization, or bucket has been created.'
|
|
parameters:
|
|
- $ref: '#/components/parameters/TraceSpan'
|
|
responses:
|
|
'200':
|
|
description: allowed true or false
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
allowed:
|
|
description: True means that the influxdb instance has NOT had initial setup; false means that the database has been setup.
|
|
type: boolean
|
|
post:
|
|
operationId: PostSetup
|
|
tags:
|
|
- Setup
|
|
summary: 'Set up initial user, org and bucket'
|
|
description: 'Post an onboarding request to set up initial user, org and bucket.'
|
|
parameters:
|
|
- $ref: '#/components/parameters/TraceSpan'
|
|
requestBody:
|
|
description: Source to create
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/OnboardingRequest'
|
|
responses:
|
|
'201':
|
|
description: 'Created default user, bucket, org'
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/OnboardingResponse'
|
|
default:
|
|
description: Unexpected error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Error'
|
|
components:
|
|
parameters:
|
|
TraceSpan:
|
|
in: header
|
|
name: Zap-Trace-Span
|
|
description: OpenTracing span context
|
|
example:
|
|
trace_id: '1'
|
|
span_id: '1'
|
|
baggage:
|
|
key: value
|
|
required: false
|
|
schema:
|
|
type: string
|
|
schemas:
|
|
Error:
|
|
properties:
|
|
code:
|
|
$ref: '#/components/schemas/ErrorCode'
|
|
message:
|
|
readOnly: true
|
|
description: message is a human-readable message.
|
|
type: string
|
|
op:
|
|
readOnly: true
|
|
description: op describes the logical code operation during error. Useful for debugging.
|
|
type: string
|
|
err:
|
|
readOnly: true
|
|
description: err is a stack of errors that occurred during processing of the request. Useful for debugging.
|
|
type: string
|
|
required:
|
|
- code
|
|
- message
|
|
ErrorCode:
|
|
description: code is the machine-readable error code.
|
|
readOnly: true
|
|
type: string
|
|
enum:
|
|
- internal error
|
|
- not found
|
|
- conflict
|
|
- invalid
|
|
- unprocessable entity
|
|
- empty value
|
|
- unavailable
|
|
- forbidden
|
|
- too many requests
|
|
- unauthorized
|
|
- method not allowed
|
|
- request too large
|
|
HealthCheck:
|
|
type: object
|
|
required:
|
|
- name
|
|
- status
|
|
properties:
|
|
name:
|
|
type: string
|
|
message:
|
|
type: string
|
|
checks:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/HealthCheck'
|
|
status:
|
|
$ref: '#/components/schemas/HealthCheckStatus'
|
|
version:
|
|
type: string
|
|
commit:
|
|
type: string
|
|
HealthCheckStatus:
|
|
type: string
|
|
enum:
|
|
- pass
|
|
- fail
|
|
OnboardingRequest:
|
|
type: object
|
|
properties:
|
|
username:
|
|
type: string
|
|
password:
|
|
type: string
|
|
org:
|
|
type: string
|
|
bucket:
|
|
type: string
|
|
retentionPeriodSeconds:
|
|
type: integer
|
|
format: int64
|
|
retentionPeriodHrs:
|
|
type: integer
|
|
deprecated: true
|
|
description: |
|
|
Retention period *in nanoseconds* for the new bucket. This key's name has been misleading since OSS 2.0 GA, please transition to use `retentionPeriodSeconds`
|
|
token:
|
|
type: string
|
|
description: |
|
|
Authentication token to set on the initial user. If not specified, the server will generate a token.
|
|
required:
|
|
- username
|
|
- org
|
|
- bucket
|
|
OnboardingResponse:
|
|
type: object
|
|
properties:
|
|
user:
|
|
$ref: '#/components/schemas/UserResponse'
|
|
org:
|
|
$ref: '#/components/schemas/Organization'
|
|
bucket:
|
|
$ref: '#/components/schemas/Bucket'
|
|
auth:
|
|
$ref: '#/components/schemas/Authorization'
|
|
UserResponse:
|
|
properties:
|
|
id:
|
|
readOnly: true
|
|
type: string
|
|
oauthID:
|
|
type: string
|
|
name:
|
|
type: string
|
|
status:
|
|
description: If inactive the user is inactive.
|
|
default: active
|
|
type: string
|
|
enum:
|
|
- active
|
|
- inactive
|
|
links:
|
|
type: object
|
|
readOnly: true
|
|
example:
|
|
self: /api/v2/users/1
|
|
properties:
|
|
self:
|
|
type: string
|
|
format: uri
|
|
required:
|
|
- name
|
|
Link:
|
|
type: string
|
|
format: uri
|
|
readOnly: true
|
|
description: URI of resource.
|
|
Organization:
|
|
properties:
|
|
links:
|
|
type: object
|
|
readOnly: true
|
|
example:
|
|
self: /api/v2/orgs/1
|
|
members: /api/v2/orgs/1/members
|
|
owners: /api/v2/orgs/1/owners
|
|
labels: /api/v2/orgs/1/labels
|
|
secrets: /api/v2/orgs/1/secrets
|
|
buckets: /api/v2/buckets?org=myorg
|
|
tasks: /api/v2/tasks?org=myorg
|
|
dashboards: /api/v2/dashboards?org=myorg
|
|
properties:
|
|
self:
|
|
$ref: '#/components/schemas/Link'
|
|
members:
|
|
$ref: '#/components/schemas/Link'
|
|
owners:
|
|
$ref: '#/components/schemas/Link'
|
|
labels:
|
|
$ref: '#/components/schemas/Link'
|
|
secrets:
|
|
$ref: '#/components/schemas/Link'
|
|
buckets:
|
|
$ref: '#/components/schemas/Link'
|
|
tasks:
|
|
$ref: '#/components/schemas/Link'
|
|
dashboards:
|
|
$ref: '#/components/schemas/Link'
|
|
id:
|
|
readOnly: true
|
|
type: string
|
|
name:
|
|
type: string
|
|
description:
|
|
type: string
|
|
createdAt:
|
|
type: string
|
|
format: date-time
|
|
readOnly: true
|
|
updatedAt:
|
|
type: string
|
|
format: date-time
|
|
readOnly: true
|
|
status:
|
|
description: If inactive the organization is inactive.
|
|
default: active
|
|
type: string
|
|
enum:
|
|
- active
|
|
- inactive
|
|
required:
|
|
- name
|
|
Bucket:
|
|
properties:
|
|
links:
|
|
type: object
|
|
readOnly: true
|
|
example:
|
|
labels: /api/v2/buckets/1/labels
|
|
members: /api/v2/buckets/1/members
|
|
org: /api/v2/orgs/2
|
|
owners: /api/v2/buckets/1/owners
|
|
self: /api/v2/buckets/1
|
|
write: /api/v2/write?org=2&bucket=1
|
|
properties:
|
|
labels:
|
|
description: URL to retrieve labels for this bucket
|
|
$ref: '#/components/schemas/Link'
|
|
members:
|
|
description: URL to retrieve members that can read this bucket
|
|
$ref: '#/components/schemas/Link'
|
|
org:
|
|
description: URL to retrieve parent organization for this bucket
|
|
$ref: '#/components/schemas/Link'
|
|
owners:
|
|
description: URL to retrieve owners that can read and write to this bucket.
|
|
$ref: '#/components/schemas/Link'
|
|
self:
|
|
description: URL for this bucket
|
|
$ref: '#/components/schemas/Link'
|
|
write:
|
|
description: URL to write line protocol for this bucket
|
|
$ref: '#/components/schemas/Link'
|
|
id:
|
|
readOnly: true
|
|
type: string
|
|
type:
|
|
readOnly: true
|
|
type: string
|
|
default: user
|
|
enum:
|
|
- user
|
|
- system
|
|
name:
|
|
type: string
|
|
description:
|
|
type: string
|
|
orgID:
|
|
type: string
|
|
rp:
|
|
type: string
|
|
createdAt:
|
|
type: string
|
|
format: date-time
|
|
readOnly: true
|
|
updatedAt:
|
|
type: string
|
|
format: date-time
|
|
readOnly: true
|
|
retentionRules:
|
|
$ref: '#/components/schemas/RetentionRules'
|
|
labels:
|
|
$ref: '#/components/schemas/Labels'
|
|
required:
|
|
- name
|
|
- retentionRules
|
|
RetentionRules:
|
|
type: array
|
|
description: Rules to expire or retain data. No rules means data never expires.
|
|
items:
|
|
$ref: '#/components/schemas/RetentionRule'
|
|
RetentionRule:
|
|
type: object
|
|
properties:
|
|
type:
|
|
type: string
|
|
default: expire
|
|
enum:
|
|
- expire
|
|
everySeconds:
|
|
type: integer
|
|
format: int64
|
|
description: Duration in seconds for how long data will be kept in the database. 0 means infinite.
|
|
example: 86400
|
|
minimum: 0
|
|
shardGroupDurationSeconds:
|
|
type: integer
|
|
format: int64
|
|
description: Shard duration measured in seconds.
|
|
required:
|
|
- type
|
|
- everySeconds
|
|
Labels:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/Label'
|
|
Label:
|
|
type: object
|
|
properties:
|
|
id:
|
|
readOnly: true
|
|
type: string
|
|
orgID:
|
|
readOnly: true
|
|
type: string
|
|
name:
|
|
type: string
|
|
properties:
|
|
type: object
|
|
additionalProperties:
|
|
type: string
|
|
description: Key/Value pairs associated with this label. Keys can be removed by sending an update with an empty value.
|
|
example:
|
|
color: ffb3b3
|
|
description: this is a description
|
|
Authorization:
|
|
required:
|
|
- orgID
|
|
- permissions
|
|
allOf:
|
|
- $ref: '#/components/schemas/AuthorizationUpdateRequest'
|
|
- type: object
|
|
properties:
|
|
createdAt:
|
|
type: string
|
|
format: date-time
|
|
readOnly: true
|
|
updatedAt:
|
|
type: string
|
|
format: date-time
|
|
readOnly: true
|
|
orgID:
|
|
type: string
|
|
description: ID of org that authorization is scoped to.
|
|
permissions:
|
|
type: array
|
|
minItems: 1
|
|
description: List of permissions for an auth. An auth must have at least one Permission.
|
|
items:
|
|
$ref: '#/components/schemas/Permission'
|
|
id:
|
|
readOnly: true
|
|
type: string
|
|
token:
|
|
readOnly: true
|
|
type: string
|
|
description: Passed via the Authorization Header and Token Authentication type.
|
|
userID:
|
|
readOnly: true
|
|
type: string
|
|
description: ID of user that created and owns the token.
|
|
user:
|
|
readOnly: true
|
|
type: string
|
|
description: Name of user that created and owns the token.
|
|
org:
|
|
readOnly: true
|
|
type: string
|
|
description: Name of the org token is scoped to.
|
|
links:
|
|
type: object
|
|
readOnly: true
|
|
example:
|
|
self: /api/v2/authorizations/1
|
|
user: /api/v2/users/12
|
|
properties:
|
|
self:
|
|
readOnly: true
|
|
$ref: '#/components/schemas/Link'
|
|
user:
|
|
readOnly: true
|
|
$ref: '#/components/schemas/Link'
|
|
AuthorizationUpdateRequest:
|
|
properties:
|
|
status:
|
|
description: If inactive the token is inactive and requests using the token will be rejected.
|
|
default: active
|
|
type: string
|
|
enum:
|
|
- active
|
|
- inactive
|
|
description:
|
|
type: string
|
|
description: A description of the token.
|
|
Permission:
|
|
required:
|
|
- action
|
|
- resource
|
|
properties:
|
|
action:
|
|
type: string
|
|
enum:
|
|
- read
|
|
- write
|
|
resource:
|
|
type: object
|
|
required:
|
|
- type
|
|
properties:
|
|
type:
|
|
type: string
|
|
enum:
|
|
- authorizations
|
|
- buckets
|
|
- dashboards
|
|
- orgs
|
|
- sources
|
|
- tasks
|
|
- telegrafs
|
|
- users
|
|
- variables
|
|
- scrapers
|
|
- secrets
|
|
- labels
|
|
- views
|
|
- documents
|
|
- notificationRules
|
|
- notificationEndpoints
|
|
- checks
|
|
- dbrp
|
|
id:
|
|
type: string
|
|
nullable: true
|
|
description: If ID is set that is a permission for a specific resource. if it is not set it is a permission for all resources of that resource type.
|
|
name:
|
|
type: string
|
|
nullable: true
|
|
description: Optional name of the resource if the resource has a name field.
|
|
orgID:
|
|
type: string
|
|
nullable: true
|
|
description: If orgID is set that is a permission for all resources owned my that org. if it is not set it is a permission for all resources of that resource type.
|
|
org:
|
|
type: string
|
|
nullable: true
|
|
description: Optional name of the organization of the organization with orgID.
|