diff --git a/.gitignore b/.gitignore index 254ec132e..24a78f244 100644 --- a/.gitignore +++ b/.gitignore @@ -8,7 +8,7 @@ node_modules *.log /resources .hugo_build.lock -/content/influxdb/*/api/**/*.html +/content/influxdb*/*/api/**/*.html /api-docs/redoc-static.html* .vscode/* .idea diff --git a/api-docs/getswagger.sh b/api-docs/getswagger.sh index 3b650fd5f..650a9ba2a 100755 --- a/api-docs/getswagger.sh +++ b/api-docs/getswagger.sh @@ -62,7 +62,7 @@ function showHelp { subcommand=$1 case "$subcommand" in - cloud-dedicated-v2|cloud-dedicated-management|cloud-serverless-v2|clustered-v2|cloud-v2|v2|v1-compat|all) + cloud-dedicated-v2|cloud-dedicated-management|cloud-serverless-v2|clustered-v2|cloud-v2|v2|v1-compat|core-v3|enterprise-v3|all) product=$1 shift @@ -176,6 +176,17 @@ function updateCloudDedicatedV2 { postProcess $outFile 'influxdb3/cloud-dedicated/.config.yml' v2@2 } +function updateCloudServerlessV2 { + outFile="influxdb3/cloud-serverless/v2/ref.yml" + if [[ -z "$baseUrl" ]]; + then + echo "Using existing $outFile" + else + curl $UPDATE_OPTIONS ${baseUrl}/contracts/ref/cloud.yml -o $outFile + fi + postProcess $outFile 'influxdb3/cloud-serverless/.config.yml' v2@2 +} + function updateClusteredV2 { outFile="influxdb3/clustered/v2/ref.yml" if [[ -z "$baseUrl" ]]; @@ -187,15 +198,28 @@ function updateClusteredV2 { postProcess $outFile 'influxdb3/clustered/.config.yml' v2@2 } -function updateCloudServerlessV2 { - outFile="influxdb3/cloud-serverless/v2/ref.yml" +function updateCoreV3 { + outFile="influxdb3/core/v3/ref.yml" if [[ -z "$baseUrl" ]]; then echo "Using existing $outFile" else - curl $UPDATE_OPTIONS ${baseUrl}/contracts/ref/cloud.yml -o $outFile + local url="${baseUrl}/TO_BE_DECIDED" + curl $UPDATE_OPTIONS $url -o $outFile fi - postProcess $outFile 'influxdb3/cloud-serverless/.config.yml' v2@2 + postProcess $outFile 'influxdb3/core/.config.yml' v3@3 +} + +function updateEnterpriseV3 { + outFile="influxdb3/enterprise/v3/ref.yml" + if [[ -z "$baseUrl" ]]; + then + echo "Using existing $outFile" + else + local url="${baseUrl}/TO_BE_DECIDED" + curl $UPDATE_OPTIONS $url -o $outFile + fi + postProcess $outFile 'influxdb3/enterprise/.config.yml' v3@3 } function updateOSSV2 { @@ -220,7 +244,7 @@ function updateV1Compat { postProcess $outFile 'influxdb/cloud/.config.yml' 'v1-compatibility' outFile="influxdb/v2/v1-compatibility/swaggerV1Compat.yml" - cp cloud/v1-compatibility/swaggerV1Compat.yml $outFile + cp influxdb/cloud/v1-compatibility/swaggerV1Compat.yml $outFile postProcess $outFile 'influxdb/v2/.config.yml' 'v1-compatibility' outFile="influxdb3/cloud-dedicated/v1-compatibility/swaggerV1Compat.yml" @@ -257,6 +281,12 @@ then elif [ "$product" = "clustered-v2" ]; then updateClusteredV2 +elif [ "$product" = "core-v3" ]; +then + updateCoreV3 +elif [ "$product" = "enterprise-v3" ]; +then + updateEnterpriseV3 elif [ "$product" = "v2" ]; then updateOSSV2 @@ -270,9 +300,11 @@ then updateCloudDedicatedManagement updateCloudServerlessV2 updateClusteredV2 + updateCoreV3 + updateEnterpriseV3 updateOSSV2 updateV1Compat else - echo "Provide a product argument: cloud-v2, cloud-serverless-v2, cloud-dedicated-v2, clustered-v2, v2, v1-compat, or all." + echo "Provide a product argument: cloud-v2, cloud-serverless-v2, cloud-dedicated-v2, cloud-dedicated-management, clustered-v2, core-v3, enterprise-v3, v2, v1-compat, or all." showHelp fi diff --git a/api-docs/influxdb3/core/v3/content/info.yml b/api-docs/influxdb3/core/v3/content/info.yml new file mode 100644 index 000000000..3940d5426 --- /dev/null +++ b/api-docs/influxdb3/core/v3/content/info.yml @@ -0,0 +1,19 @@ +title: InfluxDB 3 Core API Service +x-influxdata-short-title: InfluxDB 3 API +summary: The InfluxDB HTTP API for InfluxDB 3 Core provides a programmatic interface for writing data stored in an InfluxDB 3 Core database. +description: | + Write and query data, and perform administrative tasks, such as managing databases and processing engine plugins. + + The InfluxDB HTTP API for InfluxDB 3 Core includes endpoints for compatibility with InfluxDB 2.x and InfluxDB 1.x APIs. + + +license: + name: MIT + url: 'https://opensource.org/licenses/MIT' +contact: + name: InfluxData + url: https://www.influxdata.com + email: support@influxdata.com \ No newline at end of file diff --git a/api-docs/influxdb3/core/v3/content/servers.yml b/api-docs/influxdb3/core/v3/content/servers.yml new file mode 100644 index 000000000..1ebb676f7 --- /dev/null +++ b/api-docs/influxdb3/core/v3/content/servers.yml @@ -0,0 +1,8 @@ +- url: https://{baseurl} + description: InfluxDB 3 Core API URL + variables: + baseurl: + enum: + - 'localhost:8080' + default: 'localhost:8080' + description: InfluxDB 3 Core URL diff --git a/api-docs/influxdb3/core/v3/content/tag-groups.yml b/api-docs/influxdb3/core/v3/content/tag-groups.yml new file mode 100644 index 000000000..6b870e7ca --- /dev/null +++ b/api-docs/influxdb3/core/v3/content/tag-groups.yml @@ -0,0 +1,13 @@ +- name: Using the InfluxDB HTTP API + tags: + - Quick start + - Authentication + - Headers + - Pagination + - Response codes + - System information endpoints +- name: All endpoints + tags: + - Ping + - Query + - Write diff --git a/api-docs/influxdb3/core/v3/ref.yml b/api-docs/influxdb3/core/v3/ref.yml index 374c9a314..1935aede4 100644 --- a/api-docs/influxdb3/core/v3/ref.yml +++ b/api-docs/influxdb3/core/v3/ref.yml @@ -3,13 +3,57 @@ info: title: InfluxDB 3 Core HTTP API description: HTTP API service for managing, writing to, and querying from InfluxDB 3 Core. version: 1.0.2 + license: + name: MIT + url: 'https://opensource.org/licenses/MIT' + contact: + name: InfluxData + url: https://www.influxdata.com + email: support@influxdata.com +servers: + - url: http://localhost:8080 + description: Local development server +tags: + - name: Legacy v1-compatible + description: Endpoints compatible with InfluxDB 1.x client libraries and third-party integrations. + - name: Legacy v2-compatible + description: Endpoints compatible with InfluxDB 2.x client libraries and third-party integrations. + - name: Write data + description: Endpoints for writing data to InfluxDB. + - name: Query data + description: Endpoints for querying data from InfluxDB. + - name: InfluxQL query + description: Endpoints for executing InfluxQL queries. + - name: SQL query + description: Endpoints for executing SQL queries. + - name: Server + description: Endpoints for checking the status and health of the service and retrieving service metrics. + - name: List + description: Endpoints for listing databases, tables, and other resources. + - name: Database + description: Endpoints for creating, deleting, and listing databases. + - name: Create + description: Endpoints for creating resources. + - name: Delete + description: Endpoints for deleting resources. + - name: Table + description: Endpoints for creating, deleting, and listing tables. + - name: Cache + description: Endpoints for creating and deleting caches. + - name: Processing engine + description: Endpoints for creating, deleting, and testing processing engine plugins and triggers. paths: /write: post: - summary: Write Line Protocol (Legacy) + operationId: PostLegacyV1Write + summary: Write line protocol (v1-compatible) description: > - Accepts line protocol data and writes it to the database. - Write options are provided via query parameters. + Writes line protocol to the specified database. + + Use this endpoint to send data in [line protocol](/influxdb3/core/reference/syntax/line-protocol/) format to InfluxDB. + Use query parameters to specify options for writing data. + + This endpoint is compatible with InfluxDB 1.x client libraries and Telegraf plugins. parameters: - name: db in: query @@ -60,12 +104,20 @@ paths: description: Request entity too large. security: - BearerAuth: [] + tags: + - Legacy v1-compatible + - Write data /api/v2/write: post: - summary: Write Line Protocol (v2) + operationId: PostLegacyV2Write + summary: Write line protocol (v2-compatible) description: > - Accepts line protocol data and writes it to the database. - Write options are provided via query parameters. + Writes line protocol to the specified database. + + Use this endpoint to send data in [line protocol](/influxdb3/core/reference/syntax/line-protocol/) format to InfluxDB. + Use query parameters to specify options for writing data. + + This endpoint is compatible with InfluxDB 2.x client libraries and Telegraf plugins. parameters: - name: db in: query @@ -116,12 +168,18 @@ paths: description: Request entity too large. security: - BearerAuth: [] + tags: + - Legacy v2-compatible + - Write data /api/v3/write_lp: post: - summary: Write Line Protocol (v3) + operationId: PostWriteLPV3 + summary: Write line protocol description: > - Accepts line protocol data and writes it to the database. - Write options are provided via query parameters. + Writes line protocol to the specified database. + + Use this endpoint to send data in [line protocol](/influxdb3/core/reference/syntax/line-protocol/) format to InfluxDB. + Use query parameters to specify options for writing data. parameters: - name: db in: query @@ -174,9 +232,12 @@ paths: description: Unprocessable entity. security: - BearerAuth: [] + tags: + - Write data /api/v3/query_sql: get: - summary: Execute SQL Query + operationId: GetSQLQuery + summary: Execute SQL query description: Executes an SQL query against the database. parameters: - name: db @@ -231,8 +292,11 @@ paths: description: Unprocessable entity. security: - BearerAuth: [] + tags: + - Query data post: - summary: Execute SQL Query + operationId: PostSQLQuery + summary: Execute SQL query description: Executes an SQL query against the database. parameters: - $ref: '#/components/parameters/ContentType' @@ -272,9 +336,12 @@ paths: description: Unprocessable entity. security: - BearerAuth: [] + tags: + - Query data /api/v3/query_influxql: get: - summary: Execute InfluxQL Query (v3) + operationId: GetInfluxQLQueryV3 + summary: Execute InfluxQL query description: Executes an InfluxQL query against the database. parameters: - name: db @@ -323,8 +390,11 @@ paths: description: Unprocessable entity. security: - BearerAuth: [] + tags: + - InfluxQL query post: - summary: Execute InfluxQL Query (v3) + operationId: PostInfluxQLQueryV3 + summary: Execute InfluxQL query description: Executes an InfluxQL query against the database. parameters: - $ref: '#/components/parameters/ContentType' @@ -364,10 +434,18 @@ paths: description: Unprocessable entity. security: - BearerAuth: [] + tags: + - InfluxQL query /query: get: - summary: Execute InfluxQL Query - description: Executes an InfluxQL query against the database. + operationId: GetQueryV1 + summary: Execute InfluxQL query (v1-compatible) + description: | + Executes an InfluxQL query against the specified database. + + Use query parameters to specify the database and the InfluxQL query. + + This endpoint is compatible with InfluxDB 1.x client libraries and third-party integrations such as Grafana. parameters: - name: db in: query @@ -415,8 +493,12 @@ paths: description: Unprocessable entity. security: - BearerAuth: [] + tags: + - Query data + - Legacy v1-compatible post: - summary: Execute InfluxQL Query + operationId: PostQueryV1 + summary: Execute InfluxQL query (v1-compatible) description: Executes an InfluxQL query against the database. parameters: - $ref: '#/components/parameters/ContentType' @@ -456,8 +538,12 @@ paths: description: Unprocessable entity. security: - BearerAuth: [] + tags: + - Query data + - Legacy v1-compatible /health: get: + operationId: GetHealth summary: Health Check description: Returns the status of the service. responses: @@ -465,8 +551,11 @@ paths: description: Service is running. "500": description: Service is unavailable. + tags: + - Server /api/v1/health: get: + operationId: GetHealthV1 summary: Health Check (v1) description: Returns the status of the service. responses: @@ -474,8 +563,14 @@ paths: description: Service is running. "500": description: Service is unavailable. + tags: + - Server + - Legacy v1-compatible /ping: get: + operationId: GetPing + tags: + - Server summary: Ping the Server description: Returns basic server information. responses: @@ -483,13 +578,17 @@ paths: description: Server is reachable. /metrics: get: + operationId: GetMetrics summary: Metrics description: Retrieves Prometheus-compatible metrics. responses: "200": description: Metrics returned. + tags: + - Server /api/v3/configure/database: get: + operationId: GetConfigureDatabase summary: List Databases description: Retrieves a list of databases. responses: @@ -507,7 +606,11 @@ paths: description: Database not found. security: - BearerAuth: [] + tags: + - List + - Database post: + operationId: PostConfigureDatabase summary: Create a Database description: Creates a new database in the system. requestBody: @@ -527,7 +630,11 @@ paths: description: Database already exists. security: - BearerAuth: [] + tags: + - Create + - Database delete: + operationId: DeleteConfigureDatabase summary: Delete a Database description: Soft deletes a database. parameters: @@ -545,8 +652,12 @@ paths: description: Database not found. security: - BearerAuth: [] + tags: + - Delete + - Database /api/v3/configure/table: post: + operationId: PostConfigureTable summary: Create a Table description: Creates a new table within a database. requestBody: @@ -566,7 +677,11 @@ paths: description: Database not found. security: - BearerAuth: [] + tags: + - Create + - Table delete: + operationId: DeleteConfigureTable summary: Delete a Table description: Soft deletes a table. parameters: @@ -589,8 +704,12 @@ paths: description: Table not found. security: - BearerAuth: [] + tags: + - Delete + - Table /api/v3/configure/distinct_cache: post: + operationId: PostConfigureDistinctCache summary: Create Distinct Cache description: Creates a distinct cache for a table. requestBody: @@ -612,7 +731,11 @@ paths: description: Cache already exists. security: - BearerAuth: [] + tags: + - Create + - Cache delete: + operationId: DeleteConfigureDistinctCache summary: Delete Distinct Cache description: Deletes a distinct cache. parameters: @@ -642,8 +765,12 @@ paths: description: Cache not found. security: - BearerAuth: [] + tags: + - Delete + - Cache /api/v3/configure/last_cache: post: + operationId: PostConfigureLastCache summary: Create Last Cache description: Creates a last cache for a table. requestBody: @@ -665,7 +792,11 @@ paths: description: Cache already exists. security: - BearerAuth: [] + tags: + - Create + - Cache delete: + operationId: DeleteConfigureLastCache summary: Delete Last Cache description: Deletes a last cache. parameters: @@ -695,8 +826,12 @@ paths: description: Cache not found. security: - BearerAuth: [] + tags: + - Delete + - Cache /api/v3/configure/processing_engine_trigger: post: + operationId: PostConfigureProcessingEngineTrigger summary: Create Processing Engine Trigger description: Creates a new processing engine trigger. requestBody: @@ -716,7 +851,11 @@ paths: description: Trigger not found. security: - BearerAuth: [] + tags: + - Create + - Processing engine delete: + operationId: DeleteConfigureProcessingEngineTrigger summary: Delete Processing Engine Trigger description: Deletes a processing engine trigger. parameters: @@ -747,8 +886,12 @@ paths: description: Trigger not found. security: - BearerAuth: [] + tags: + - Delete + - Processing engine /api/v3/configure/processing_engine_trigger/disable: post: + operationId: PostDisableProcessingEngineTrigger summary: Disable Processing Engine Trigger description: Disables a processing engine trigger. parameters: @@ -770,8 +913,11 @@ paths: description: Trigger not found. security: - BearerAuth: [] + tags: + - Processing engine /api/v3/configure/processing_engine_trigger/enable: post: + operationId: PostEnableProcessingEngineTrigger summary: Enable Processing Engine Trigger description: Enables a processing engine trigger. parameters: @@ -793,8 +939,11 @@ paths: description: Trigger not found. security: - BearerAuth: [] + tags: + - Processing engine /api/v3/configure/plugin_environment/install_packages: post: + operationId: PostInstallPluginPackages summary: Install Plugin Packages description: Installs packages for the plugin environment. parameters: @@ -815,8 +964,11 @@ paths: $ref: '#/components/responses/Unauthorized' security: - BearerAuth: [] + tags: + - Processing engine /api/v3/configure/plugin_environment/install_requirements: post: + operationId: PostInstallPluginRequirements summary: Install Plugin Requirements description: Installs requirements for the plugin environment. parameters: @@ -837,8 +989,11 @@ paths: $ref: '#/components/responses/Unauthorized' security: - BearerAuth: [] + tags: + - Processing engine /api/v3/plugin_test/wal: post: + operationId: PostTestWALPlugin summary: Test WAL Plugin description: Executes a plugin test for write-ahead logging. responses: @@ -852,8 +1007,11 @@ paths: description: Plugin not enabled. security: - BearerAuth: [] + tags: + - Processing engine /api/v3/plugin_test/schedule: post: + operationId: PostTestSchedulingPlugin summary: Test Scheduling Plugin description: Executes a plugin test for scheduling. responses: @@ -867,6 +1025,8 @@ paths: description: Plugin not enabled. security: - BearerAuth: [] + tags: + - Processing engine /api/v3/engine/{plugin_path}: parameters: - name: plugin_path @@ -875,6 +1035,7 @@ paths: schema: type: string get: + operationId: GetProcessingEnginePluginRequest summary: Custom Processing Engine Request (GET) description: Sends a custom request to a processing engine plugin. parameters: @@ -892,7 +1053,10 @@ paths: description: Processing failure. security: - BearerAuth: [] + tags: + - Processing engine post: + operationId: PostProcessingEnginePluginRequest summary: Custom Processing Engine Request (POST) description: Sends a custom request to a processing engine plugin. parameters: @@ -917,6 +1081,8 @@ paths: description: Processing failure. security: - BearerAuth: [] + tags: + - Processing engine components: parameters: ContentEncoding: @@ -1166,3 +1332,5 @@ components: BearerAuth: type: http scheme: bearer + bearerFormat: JWT + description: Bearer token for authentication. The API token must be provided in the Authorization header. diff --git a/api-docs/influxdb3/enterprise/v3/content/info.yml b/api-docs/influxdb3/enterprise/v3/content/info.yml new file mode 100644 index 000000000..76b2b11fd --- /dev/null +++ b/api-docs/influxdb3/enterprise/v3/content/info.yml @@ -0,0 +1,19 @@ +title: InfluxDB 3 Enterprise API Service +x-influxdata-short-title: InfluxDB 3 API +summary: The InfluxDB HTTP API for InfluxDB 3 Enterprise provides a programmatic interface for writing data stored in an InfluxDB 3 Enterprise database. +description: | + Write and query data, and perform administrative tasks, such as managing databases and processing engine plugins. + + The InfluxDB HTTP API for InfluxDB 3 Enterprise includes endpoints for compatibility with InfluxDB 2.x and InfluxDB 1.x APIs. + + +license: + name: MIT + url: 'https://opensource.org/licenses/MIT' +contact: + name: InfluxData + url: https://www.influxdata.com + email: support@influxdata.com \ No newline at end of file diff --git a/api-docs/influxdb3/enterprise/v3/content/servers.yml b/api-docs/influxdb3/enterprise/v3/content/servers.yml new file mode 100644 index 000000000..1ebb676f7 --- /dev/null +++ b/api-docs/influxdb3/enterprise/v3/content/servers.yml @@ -0,0 +1,8 @@ +- url: https://{baseurl} + description: InfluxDB 3 Core API URL + variables: + baseurl: + enum: + - 'localhost:8080' + default: 'localhost:8080' + description: InfluxDB 3 Core URL diff --git a/api-docs/influxdb3/enterprise/v3/content/tag-groups.yml b/api-docs/influxdb3/enterprise/v3/content/tag-groups.yml new file mode 100644 index 000000000..6b870e7ca --- /dev/null +++ b/api-docs/influxdb3/enterprise/v3/content/tag-groups.yml @@ -0,0 +1,13 @@ +- name: Using the InfluxDB HTTP API + tags: + - Quick start + - Authentication + - Headers + - Pagination + - Response codes + - System information endpoints +- name: All endpoints + tags: + - Ping + - Query + - Write diff --git a/api-docs/influxdb3/enterprise/v3/ref.yml b/api-docs/influxdb3/enterprise/v3/ref.yml new file mode 100644 index 000000000..0e7f25d53 --- /dev/null +++ b/api-docs/influxdb3/enterprise/v3/ref.yml @@ -0,0 +1,1336 @@ +openapi: 3.0.3 +info: + title: InfluxDB 3 Enterprise HTTP API + description: HTTP API service for managing, writing to, and querying from InfluxDB 3 Enterprise. + version: 1.0.2 + license: + name: MIT + url: 'https://opensource.org/licenses/MIT' + contact: + name: InfluxData + url: https://www.influxdata.com + email: support@influxdata.com +servers: + - url: http://localhost:8080 + description: Local development server +tags: + - name: Legacy v1-compatible + description: Endpoints compatible with InfluxDB 1.x client libraries and third-party integrations. + - name: Legacy v2-compatible + description: Endpoints compatible with InfluxDB 2.x client libraries and third-party integrations. + - name: Write data + description: Endpoints for writing data to InfluxDB. + - name: Query data + description: Endpoints for querying data from InfluxDB. + - name: InfluxQL query + description: Endpoints for executing InfluxQL queries. + - name: SQL query + description: Endpoints for executing SQL queries. + - name: Server + description: Endpoints for checking the status and health of the service and retrieving service metrics. + - name: List + description: Endpoints for listing databases, tables, and other resources. + - name: Database + description: Endpoints for creating, deleting, and listing databases. + - name: Create + description: Endpoints for creating resources. + - name: Delete + description: Endpoints for deleting resources. + - name: Table + description: Endpoints for creating, deleting, and listing tables. + - name: Cache + description: Endpoints for creating and deleting caches. + - name: Processing engine + description: Endpoints for creating, deleting, and testing processing engine plugins and triggers. +paths: + /write: + post: + operationId: PostLegacyV1Write + summary: Write line protocol (v1-compatible) + description: > + Writes line protocol to the specified database. + + Use this endpoint to send data in [line protocol](/influxdb3/core/reference/syntax/line-protocol/) format to InfluxDB. + Use query parameters to specify options for writing data. + + This endpoint is compatible with InfluxDB 1.x client libraries and Telegraf plugins. + parameters: + - name: db + in: query + required: true + schema: + type: string + description: Database name. + - name: accept_partial + in: query + required: false + schema: + type: boolean + default: true + description: Whether to accept partial writes. + - name: precision + in: query + required: true + schema: + type: string + enum: [ns, us, ms, s] + default: ns + description: Precision of timestamps. + - name: no_sync + in: query + required: false + schema: + type: boolean + default: false + description: Do not sync writes. + - $ref: '#/components/parameters/ContentType' + requestBody: + required: true + content: + text/plain: + schema: + type: string + example: "measurement,tag=value field=1 1234567890" + responses: + "204": + description: Write successful. + "400": + description: Bad request. + "401": + $ref: '#/components/responses/Unauthorized' + "403": + description: Access denied. + "413": + description: Request entity too large. + security: + - BearerAuth: [] + tags: + - Legacy v1-compatible + - Write data + /api/v2/write: + post: + operationId: PostLegacyV2Write + summary: Write line protocol (v2-compatible) + description: > + Writes line protocol to the specified database. + + Use this endpoint to send data in [line protocol](/influxdb3/core/reference/syntax/line-protocol/) format to InfluxDB. + Use query parameters to specify options for writing data. + + This endpoint is compatible with InfluxDB 2.x client libraries and Telegraf plugins. + parameters: + - name: db + in: query + required: true + schema: + type: string + description: Database name. + - name: accept_partial + in: query + required: false + schema: + type: boolean + default: false + description: Whether to accept partial writes. + - name: precision + in: query + required: true + schema: + type: string + enum: [ns, us, ms, s] + default: ns + description: Precision of timestamps. + - name: no_sync + in: query + required: false + schema: + type: boolean + default: false + description: Do not sync writes. + - $ref: '#/components/parameters/ContentType' + requestBody: + required: true + content: + text/plain: + schema: + type: string + example: "measurement,tag=value field=1 1234567890" + responses: + "204": + description: Write successful. + "400": + description: Bad request. + "401": + $ref: '#/components/responses/Unauthorized' + "403": + description: Access denied. + "413": + description: Request entity too large. + security: + - BearerAuth: [] + tags: + - Legacy v2-compatible + - Write data + /api/v3/write_lp: + post: + operationId: PostWriteLPV3 + summary: Write line protocol + description: > + Writes line protocol to the specified database. + + Use this endpoint to send data in [line protocol](/influxdb3/core/reference/syntax/line-protocol/) format to InfluxDB. + Use query parameters to specify options for writing data. + parameters: + - name: db + in: query + required: true + schema: + type: string + description: Database name. + - name: accept_partial + in: query + required: false + schema: + type: boolean + default: true + description: Whether to accept partial writes. + - name: precision + in: query + required: true + schema: + type: string + enum: [ns, us, ms, s] + default: ns + description: Precision of timestamps. + - name: no_sync + in: query + required: false + schema: + type: boolean + default: false + description: Do not sync writes. + - $ref: '#/components/parameters/ContentType' + requestBody: + required: true + content: + text/plain: + schema: + type: string + example: "measurement,tag=value field=1 1234567890" + responses: + "204": + description: Write successful. + "400": + description: Bad request. + "401": + $ref: '#/components/responses/Unauthorized' + "403": + description: Access denied. + "413": + description: Request entity too large. + "422": + description: Unprocessable entity. + security: + - BearerAuth: [] + tags: + - Write data + /api/v3/query_sql: + get: + operationId: GetSQLQuery + summary: Execute SQL query + description: Executes an SQL query against the database. + parameters: + - name: db + in: query + required: true + schema: + type: string + - name: q + in: query + required: true + schema: + type: string + - name: format + in: query + required: false + schema: + type: string + - $ref: '#/components/parameters/Accept' + responses: + "200": + description: Successful query execution. + content: + application/json: + schema: + $ref: '#/components/schemas/QueryResponse' + example: + results: + - series: + - name: "mytable" + columns: ["time", "value"] + values: [["2024-02-02T12:00:00Z", 42]] + text/csv: + schema: + type: string + application/vnd.apache.parquet: + schema: + type: string + application/jsonl: + schema: + type: string + "400": + description: Bad request. + "401": + $ref: '#/components/responses/Unauthorized' + "403": + description: Access denied. + "404": + description: Database not found. + "405": + description: Method not allowed. + "422": + description: Unprocessable entity. + security: + - BearerAuth: [] + tags: + - Query data + post: + operationId: PostSQLQuery + summary: Execute SQL query + description: Executes an SQL query against the database. + parameters: + - $ref: '#/components/parameters/ContentType' + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/QueryRequest' + responses: + "200": + description: Successful query execution. + content: + application/json: + schema: + $ref: '#/components/schemas/QueryResponse' + text/csv: + schema: + type: string + application/vnd.apache.parquet: + schema: + type: string + application/jsonl: + schema: + type: string + "400": + description: Bad request. + "401": + $ref: '#/components/responses/Unauthorized' + "403": + description: Access denied. + "404": + description: Database not found. + "405": + description: Method not allowed. + "422": + description: Unprocessable entity. + security: + - BearerAuth: [] + tags: + - Query data + /api/v3/query_influxql: + get: + operationId: GetInfluxQLQueryV3 + summary: Execute InfluxQL query + description: Executes an InfluxQL query against the database. + parameters: + - name: db + in: query + required: true + schema: + type: string + - name: q + in: query + required: true + schema: + type: string + - name: format + in: query + required: false + schema: + type: string + - $ref: '#/components/parameters/Accept' + responses: + "200": + description: Successful query execution. + content: + application/json: + schema: + $ref: '#/components/schemas/QueryResponse' + text/csv: + schema: + type: string + application/vnd.apache.parquet: + schema: + type: string + application/jsonl: + schema: + type: string + "400": + description: Bad request. + "401": + $ref: '#/components/responses/Unauthorized' + "403": + description: Access denied. + "404": + description: Database not found. + "405": + description: Method not allowed. + "422": + description: Unprocessable entity. + security: + - BearerAuth: [] + tags: + - InfluxQL query + post: + operationId: PostInfluxQLQueryV3 + summary: Execute InfluxQL query + description: Executes an InfluxQL query against the database. + parameters: + - $ref: '#/components/parameters/ContentType' + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/QueryRequest' + responses: + "200": + description: Successful query execution. + content: + application/json: + schema: + $ref: '#/components/schemas/QueryResponse' + text/csv: + schema: + type: string + application/vnd.apache.parquet: + schema: + type: string + application/jsonl: + schema: + type: string + "400": + description: Bad request. + "401": + $ref: '#/components/responses/Unauthorized' + "403": + description: Access denied. + "404": + description: Database not found. + "405": + description: Method not allowed. + "422": + description: Unprocessable entity. + security: + - BearerAuth: [] + tags: + - InfluxQL query + /query: + get: + operationId: GetQueryV1 + summary: Execute InfluxQL query (v1-compatible) + description: | + Executes an InfluxQL query against the specified database. + + Use query parameters to specify the database and the InfluxQL query. + + This endpoint is compatible with InfluxDB 1.x client libraries and third-party integrations such as Grafana. + parameters: + - name: db + in: query + required: true + schema: + type: string + - name: q + in: query + required: true + schema: + type: string + - name: format + in: query + required: false + schema: + type: string + - $ref: '#/components/parameters/Accept' + responses: + "200": + description: Successful query execution. + content: + application/json: + schema: + $ref: '#/components/schemas/QueryResponse' + text/csv: + schema: + type: string + application/vnd.apache.parquet: + schema: + type: string + application/jsonl: + schema: + type: string + "400": + description: Bad request. + "401": + $ref: '#/components/responses/Unauthorized' + "403": + description: Access denied. + "404": + description: Database not found. + "405": + description: Method not allowed. + "422": + description: Unprocessable entity. + security: + - BearerAuth: [] + tags: + - Query data + - Legacy v1-compatible + post: + operationId: PostQueryV1 + summary: Execute InfluxQL query (v1-compatible) + description: Executes an InfluxQL query against the database. + parameters: + - $ref: '#/components/parameters/ContentType' + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/QueryRequest' + responses: + "200": + description: Successful query execution. + content: + application/json: + schema: + $ref: '#/components/schemas/QueryResponse' + text/csv: + schema: + type: string + application/vnd.apache.parquet: + schema: + type: string + application/jsonl: + schema: + type: string + "400": + description: Bad request. + "401": + $ref: '#/components/responses/Unauthorized' + "403": + description: Access denied. + "404": + description: Database not found. + "405": + description: Method not allowed. + "422": + description: Unprocessable entity. + security: + - BearerAuth: [] + tags: + - Query data + - Legacy v1-compatible + /health: + get: + operationId: GetHealth + summary: Health Check + description: Returns the status of the service. + responses: + "200": + description: Service is running. + "500": + description: Service is unavailable. + tags: + - Server + /api/v1/health: + get: + operationId: GetHealthV1 + summary: Health Check (v1) + description: Returns the status of the service. + responses: + "200": + description: Service is running. + "500": + description: Service is unavailable. + tags: + - Server + - Legacy v1-compatible + /ping: + get: + operationId: GetPing + tags: + - Server + summary: Ping the Server + description: Returns basic server information. + responses: + "200": + description: Server is reachable. + /metrics: + get: + operationId: GetMetrics + summary: Metrics + description: Retrieves Prometheus-compatible metrics. + responses: + "200": + description: Metrics returned. + tags: + - Server + /api/v3/configure/database: + get: + operationId: GetConfigureDatabase + summary: List Databases + description: Retrieves a list of databases. + responses: + "200": + description: Databases retrieved. + content: + application/json: + schema: + $ref: '#/components/schemas/ShowDatabasesResponse' + "400": + description: Bad request. + "401": + $ref: '#/components/responses/Unauthorized' + "404": + description: Database not found. + security: + - BearerAuth: [] + tags: + - List + - Database + post: + operationId: PostConfigureDatabase + summary: Create a Database + description: Creates a new database in the system. + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CreateDatabaseRequest' + responses: + "201": + description: Database created. + "400": + description: Bad request. + "401": + $ref: '#/components/responses/Unauthorized' + "409": + description: Database already exists. + security: + - BearerAuth: [] + tags: + - Create + - Database + delete: + operationId: DeleteConfigureDatabase + summary: Delete a Database + description: Soft deletes a database. + parameters: + - name: db + in: query + required: true + schema: + type: string + responses: + "200": + description: Database deleted. + "401": + $ref: '#/components/responses/Unauthorized' + "404": + description: Database not found. + security: + - BearerAuth: [] + tags: + - Delete + - Database + /api/v3/configure/table: + post: + operationId: PostConfigureTable + summary: Create a Table + description: Creates a new table within a database. + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CreateTableRequest' + responses: + "201": + description: Table created. + "400": + description: Bad request. + "401": + $ref: '#/components/responses/Unauthorized' + "404": + description: Database not found. + security: + - BearerAuth: [] + tags: + - Create + - Table + delete: + operationId: DeleteConfigureTable + summary: Delete a Table + description: Soft deletes a table. + parameters: + - name: db + in: query + required: true + schema: + type: string + - name: table + in: query + required: true + schema: + type: string + responses: + "200": + description: Table deleted. + "401": + $ref: '#/components/responses/Unauthorized' + "404": + description: Table not found. + security: + - BearerAuth: [] + tags: + - Delete + - Table + /api/v3/configure/distinct_cache: + post: + operationId: PostConfigureDistinctCache + summary: Create Distinct Cache + description: Creates a distinct cache for a table. + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/DistinctCacheCreateRequest' + responses: + "201": + description: Distinct cache created. + "400": + description: Bad request. + "401": + $ref: '#/components/responses/Unauthorized' + "404": + description: Cache not found. + "409": + description: Cache already exists. + security: + - BearerAuth: [] + tags: + - Create + - Cache + delete: + operationId: DeleteConfigureDistinctCache + summary: Delete Distinct Cache + description: Deletes a distinct cache. + parameters: + - name: db + in: query + required: true + schema: + type: string + - name: table + in: query + required: true + schema: + type: string + - name: name + in: query + required: true + schema: + type: string + responses: + "200": + description: Distinct cache deleted. + "400": + description: Bad request. + "401": + $ref: '#/components/responses/Unauthorized' + "404": + description: Cache not found. + security: + - BearerAuth: [] + tags: + - Delete + - Cache + /api/v3/configure/last_cache: + post: + operationId: PostConfigureLastCache + summary: Create Last Cache + description: Creates a last cache for a table. + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/LastCacheCreateRequest' + responses: + "201": + description: Last cache created. + "400": + description: Bad request. + "401": + $ref: '#/components/responses/Unauthorized' + "404": + description: Cache not found. + "409": + description: Cache already exists. + security: + - BearerAuth: [] + tags: + - Create + - Cache + delete: + operationId: DeleteConfigureLastCache + summary: Delete Last Cache + description: Deletes a last cache. + parameters: + - name: db + in: query + required: true + schema: + type: string + - name: table + in: query + required: true + schema: + type: string + - name: name + in: query + required: true + schema: + type: string + responses: + "200": + description: Last cache deleted. + "400": + description: Bad request. + "401": + $ref: '#/components/responses/Unauthorized' + "404": + description: Cache not found. + security: + - BearerAuth: [] + tags: + - Delete + - Cache + /api/v3/configure/processing_engine_trigger: + post: + operationId: PostConfigureProcessingEngineTrigger + summary: Create Processing Engine Trigger + description: Creates a new processing engine trigger. + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/ProcessingEngineTriggerRequest' + responses: + "201": + description: Processing engine trigger created. + "400": + description: Bad request. + "401": + $ref: '#/components/responses/Unauthorized' + "404": + description: Trigger not found. + security: + - BearerAuth: [] + tags: + - Create + - Processing engine + delete: + operationId: DeleteConfigureProcessingEngineTrigger + summary: Delete Processing Engine Trigger + description: Deletes a processing engine trigger. + parameters: + - name: db + in: query + required: true + schema: + type: string + - name: trigger_name + in: query + required: true + schema: + type: string + - name: force + in: query + required: false + schema: + type: boolean + default: false + responses: + "200": + description: Processing engine trigger deleted. + "400": + description: Bad request. + "401": + $ref: '#/components/responses/Unauthorized' + "404": + description: Trigger not found. + security: + - BearerAuth: [] + tags: + - Delete + - Processing engine + /api/v3/configure/processing_engine_trigger/disable: + post: + operationId: PostDisableProcessingEngineTrigger + summary: Disable Processing Engine Trigger + description: Disables a processing engine trigger. + parameters: + - $ref: '#/components/parameters/ContentType' + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/ProcessingEngineTriggerRequest' + responses: + "200": + description: Processing engine trigger disabled. + "400": + description: Bad request. + "401": + $ref: '#/components/responses/Unauthorized' + "404": + description: Trigger not found. + security: + - BearerAuth: [] + tags: + - Processing engine + /api/v3/configure/processing_engine_trigger/enable: + post: + operationId: PostEnableProcessingEngineTrigger + summary: Enable Processing Engine Trigger + description: Enables a processing engine trigger. + parameters: + - $ref: '#/components/parameters/ContentType' + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/ProcessingEngineTriggerRequest' + responses: + "200": + description: Processing engine trigger enabled. + "400": + description: Bad request. + "401": + $ref: '#/components/responses/Unauthorized' + "404": + description: Trigger not found. + security: + - BearerAuth: [] + tags: + - Processing engine + /api/v3/configure/plugin_environment/install_packages: + post: + operationId: PostInstallPluginPackages + summary: Install Plugin Packages + description: Installs packages for the plugin environment. + parameters: + - $ref: '#/components/parameters/ContentType' + requestBody: + required: true + content: + application/json: + schema: + type: object + additionalProperties: true + responses: + "200": + description: Packages installed. + "400": + description: Bad request. + "401": + $ref: '#/components/responses/Unauthorized' + security: + - BearerAuth: [] + tags: + - Processing engine + /api/v3/configure/plugin_environment/install_requirements: + post: + operationId: PostInstallPluginRequirements + summary: Install Plugin Requirements + description: Installs requirements for the plugin environment. + parameters: + - $ref: '#/components/parameters/ContentType' + requestBody: + required: true + content: + application/json: + schema: + type: object + additionalProperties: true + responses: + "200": + description: Requirements installed. + "400": + description: Bad request. + "401": + $ref: '#/components/responses/Unauthorized' + security: + - BearerAuth: [] + tags: + - Processing engine + /api/v3/plugin_test/wal: + post: + operationId: PostTestWALPlugin + summary: Test WAL Plugin + description: Executes a plugin test for write-ahead logging. + responses: + "200": + description: Plugin test executed. + "400": + description: Bad request. + "401": + $ref: '#/components/responses/Unauthorized' + "404": + description: Plugin not enabled. + security: + - BearerAuth: [] + tags: + - Processing engine + /api/v3/plugin_test/schedule: + post: + operationId: PostTestSchedulingPlugin + summary: Test Scheduling Plugin + description: Executes a plugin test for scheduling. + responses: + "200": + description: Plugin test executed. + "400": + description: Bad request. + "401": + $ref: '#/components/responses/Unauthorized' + "404": + description: Plugin not enabled. + security: + - BearerAuth: [] + tags: + - Processing engine + /api/v3/engine/{plugin_path}: + parameters: + - name: plugin_path + in: path + required: true + schema: + type: string + get: + operationId: GetProcessingEnginePluginRequest + summary: Custom Processing Engine Request (GET) + description: Sends a custom request to a processing engine plugin. + parameters: + - $ref: '#/components/parameters/Accept' + responses: + "200": + description: Request successful. + "400": + description: Malformed request. + "401": + $ref: '#/components/responses/Unauthorized' + "404": + description: Plugin not found. + "500": + description: Processing failure. + security: + - BearerAuth: [] + tags: + - Processing engine + post: + operationId: PostProcessingEnginePluginRequest + summary: Custom Processing Engine Request (POST) + description: Sends a custom request to a processing engine plugin. + parameters: + - $ref: '#/components/parameters/ContentType' + requestBody: + required: false + content: + application/json: + schema: + type: object + additionalProperties: true + responses: + "200": + description: Request successful. + "400": + description: Malformed request. + "401": + $ref: '#/components/responses/Unauthorized' + "404": + description: Plugin not found. + "500": + description: Processing failure. + security: + - BearerAuth: [] + tags: + - Processing engine +components: + parameters: + ContentEncoding: + name: Content-Encoding + in: header + schema: + type: string + enum: [gzip, identity] + required: false + description: Optional encoding of the request body. + Accept: + name: Accept + in: header + schema: + type: string + enum: [application/json, application/vnd.apache.parquet, application/jsonl] + required: false + description: Acceptable response content type. + ContentType: + name: Content-Type + in: header + schema: + type: string + enum: [text/plain, application/json, text/csv] + required: false + description: Request content type. + schemas: + WriteParams: + type: object + properties: + db: + type: string + accept_partial: + type: boolean + default: true + precision: + type: string + enum: [ns, us, ms, s] + default: ns + no_sync: + type: boolean + default: false + required: + - db + - precision + example: + db: "mydb" + accept_partial: true + precision: "ns" + no_sync: false + QueryRequest: + type: object + properties: + database: + type: string + query_str: + type: string + format: + type: string + params: + type: object + additionalProperties: true + required: + - database + - query_str + example: + database: "mydb" + query_str: "SELECT * FROM mytable" + format: "json" + params: {} + CreateDatabaseRequest: + type: object + properties: + db: + type: string + required: + - db + CreateTableRequest: + type: object + properties: + db: + type: string + table: + type: string + tags: + type: array + items: + type: string + fields: + type: array + items: + type: object + properties: + name: + type: string + type: + type: string + required: + - name + - type + required: + - db + - table + - fields + DistinctCacheCreateRequest: + type: object + properties: + db: + type: string + table: + type: string + name: + type: string + description: Optional cache name. + columns: + type: array + items: + type: string + max_cardinality: + type: integer + description: Optional maximum cardinality. + max_age: + type: integer + description: Optional maximum age in seconds. + required: + - db + - table + - columns + example: + db: "mydb" + table: "mytable" + columns: ["tag1", "tag2"] + max_cardinality: 1000 + max_age: 3600 + LastCacheCreateRequest: + type: object + properties: + db: + type: string + table: + type: string + name: + type: string + description: Optional cache name. + key_columns: + type: array + items: + type: string + description: Optional list of key columns. + value_columns: + type: array + items: + type: string + description: Optional list of value columns. + count: + type: integer + description: Optional count. + ttl: + type: integer + description: Optional time-to-live in seconds. + required: + - db + - table + example: + db: "mydb" + table: "mytable" + key_columns: ["tag1"] + value_columns: ["field1"] + count: 100 + ttl: 3600 + ProcessingEngineTriggerRequest: + type: object + properties: + db: + type: string + plugin_filename: + type: string + trigger_name: + type: string + trigger_specification: + type: string + trigger_arguments: + type: object + additionalProperties: true + disabled: + type: boolean + required: + - db + - plugin_filename + - trigger_name + - trigger_specification + ShowDatabasesResponse: + type: object + properties: + databases: + type: array + items: + type: string + QueryResponse: + type: object + properties: + results: + type: array + items: + type: object + example: + results: + - series: + - name: "mytable" + columns: ["time", "value"] + values: [["2024-02-02T12:00:00Z", 42]] + ErrorMessage: + type: object + properties: + error: + type: string + data: + type: object + nullable: true + PingResponse: + type: object + properties: + version: + type: string + revision: + type: string + responses: + Unauthorized: + description: Unauthorized access. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + Forbidden: + description: Access denied. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + NotFound: + description: Resource not found. + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + securitySchemes: + BearerAuth: + type: http + scheme: bearer + bearerFormat: JWT + description: Bearer token for authentication. The API token must be provided in the Authorization header. diff --git a/api-docs/package.json b/api-docs/package.json index 1e81d828d..038861462 100755 --- a/api-docs/package.json +++ b/api-docs/package.json @@ -6,5 +6,8 @@ "license": "MIT", "dependencies": { "js-yaml": "^4.1.0" + }, + "devDependencies": { + "spectral": "^0.0.0" } } diff --git a/api-docs/yarn.lock b/api-docs/yarn.lock index 0c46add62..5862cbfa6 100644 --- a/api-docs/yarn.lock +++ b/api-docs/yarn.lock @@ -2,14 +2,90 @@ # yarn lockfile v1 +ansi-regex@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + integrity sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA== + +ansi-styles@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" + integrity sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA== + argparse@^2.0.1: version "2.0.1" resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz" integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== +chalk@^1.0.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" + integrity sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A== + dependencies: + ansi-styles "^2.2.1" + escape-string-regexp "^1.0.2" + has-ansi "^2.0.0" + strip-ansi "^3.0.0" + supports-color "^2.0.0" + +commander@^2.8.1: + version "2.20.3" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + +escape-string-regexp@^1.0.2: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== + +extend@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/extend/-/extend-2.0.2.tgz#1b74985400171b85554894459c978de6ef453ab7" + integrity sha512-AgFD4VU+lVLP6vjnlNfF7OeInLTyeyckCNPEsuxz1vi786UuK/nk6ynPuhn/h+Ju9++TQyr5EpLRI14fc1QtTQ== + +has-ansi@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" + integrity sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg== + dependencies: + ansi-regex "^2.0.0" + js-yaml@^4.1.0: version "4.1.0" resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz" integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== dependencies: argparse "^2.0.1" + +moment@^2.10.3: + version "2.30.1" + resolved "https://registry.yarnpkg.com/moment/-/moment-2.30.1.tgz#f8c91c07b7a786e30c59926df530b4eac96974ae" + integrity sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how== + +spectral@^0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/spectral/-/spectral-0.0.0.tgz#a244b28c0726a7907374ad39c58024f934b9e8a1" + integrity sha512-tJamrVCLdpHt3geQn9ypWLlcS7K02+TZV5hj1bnPjGcjQs5N0dtxzJVitcmHbR9tZQgjwj2hAO1f8v1fzzwF1Q== + dependencies: + chalk "^1.0.0" + commander "^2.8.1" + extend "^2.0.1" + moment "^2.10.3" + string-etc "^0.2.0" + +string-etc@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/string-etc/-/string-etc-0.2.0.tgz#a0f84a2d8816082266384a3c7229acbb8064eda5" + integrity sha512-J9RfI2DvBDlnISBhfOBOAXPFxE4cpEgNC6zJTjULmagQaMuu2sYrE44H8h5Paxf3Bm9Wcer92DJv9n77OAHIRg== + +strip-ansi@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + integrity sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg== + dependencies: + ansi-regex "^2.0.0" + +supports-color@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" + integrity sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==