[DOCS] Logstash configuration management APIs (#214497)

This commit is contained in:
Lisa Cawley 2025-03-17 22:54:06 -07:00 committed by GitHub
parent 48df091c71
commit ab0776ee1e
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 368 additions and 0 deletions

View file

@ -106,6 +106,15 @@ tags:
- name: Fleet Server hosts
- name: Fleet service tokens
- name: Fleet uninstall tokens
- description: |
Programmatically integrate with Logstash configuration management.
> warn
> Do not directly access the `.logstash` index. The structure of the `.logstash` index is subject to change, which could cause your integration to break. Instead, use the Logstash configuration management APIs.
externalDocs:
description: Centralized pipeline management
url: https://www.elastic.co/guide/en/logstash/current/logstash-centralized-pipeline-management.html
name: logstash
x-displayName: Logstash configuration management
- name: Message Signing Service
- description: Machine learning
name: ml
@ -40928,6 +40937,169 @@ paths:
summary: Get value list privileges
tags:
- Security Lists API
/api/logstash/pipeline/{id}:
delete:
description: |
Delete a centrally-managed Logstash pipeline.
If your Elasticsearch cluster is protected with basic authentication, you must have either the `logstash_admin` built-in role or a customized Logstash writer role.
externalDocs:
description: Secure your connection
url: https://www.elastic.co/guide/en/logstash/current/ls-security.html
operationId: delete-logstash-pipeline
parameters:
- description: An identifier for the pipeline.
in: path
name: id
required: true
schema:
type: string
responses:
'204':
description: Indicates a successful call
summary: Delete a Logstash pipeline
tags:
- logstash
x-state: Technical Preview
get:
description: |
Get information for a centrally-managed Logstash pipeline.
To use this API, you must have either the `logstash_admin` built-in role or a customized Logstash reader role.
externalDocs:
description: Secure your connection
url: https://www.elastic.co/guide/en/logstash/current/ls-security.html
operationId: get-logstash-pipeline
parameters:
- description: An identifier for the pipeline.
in: path
name: id
required: true
schema:
type: string
responses:
'200':
content:
application/json:
examples:
getLogstashPipelineResponseExample1:
value: |-
{
"id": "hello-world",
"description": "Just a simple pipeline",
"username": "elastic",
"pipeline": "input { stdin {} } output { stdout {} }",
"settings": {
"queue.type": "persistent"
}
}
schema:
type: object
description: Indicates a successful call
summary: Get a Logstash pipeline
tags:
- logstash
x-state: Technical Preview
put:
description: |
Create a centrally-managed Logstash pipeline or update a pipeline.
To use this API, you must have either the `logstash_admin` built-in role or a customized Logstash writer role.
externalDocs:
description: Secure your connection
url: https://www.elastic.co/guide/en/logstash/current/ls-security.html
operationId: put-logstash-pipeline
parameters:
- description: |
An identifier for the pipeline. Only alphanumeric characters, hyphens, and underscores are supported.
in: path
name: id
required: true
schema:
type: string
requestBody:
content:
application/json:
examples:
putLogstashPipelineRequestExample1:
value: |-
{
"pipeline": "input { stdin {} } output { stdout {} }",
"settings": {
"queue.type": "persisted"
}
}
schema:
type: object
properties:
description:
description: A description of the pipeline.
type: string
pipeline:
description: A definition for the pipeline.
type: string
settings:
description: |
Supported settings, represented as object keys, include the following:
- `pipeline.workers`
- `pipeline.batch.size`
- `pipeline.batch.delay`
- `pipeline.ecs_compatibility`
- `pipeline.ordered`
- `queue.type`
- `queue.max_bytes`
- `queue.checkpoint.writes`
type: object
required:
- pipeline
responses:
'204':
description: Indicates a successful call
summary: Create or update a Logstash pipeline
tags:
- logstash
x-state: Technical Preview
/api/logstash/pipelines:
get:
description: |
Get a list of all centrally-managed Logstash pipelines.
To use this API, you must have either the `logstash_admin` built-in role or a customized Logstash reader role.
> info
> Limit the number of pipelines to 10,000 or fewer. As the number of pipelines nears and surpasses 10,000, you may see performance issues on Kibana.
The `username` property appears in the response when security is enabled and depends on when the pipeline was created or last updated.
externalDocs:
description: Secure your connection
url: https://www.elastic.co/guide/en/logstash/current/ls-security.html
operationId: get-logstash-pipelines
responses:
'200':
content:
application/json:
examples:
getLogstashPipelinesResponseExample1:
value: |-
{
"pipelines": [
{
"id": "hello-world",
"description": "Just a simple pipeline",
"last_modified": "2018-04-14T12:23:29.772Z",
"username": "elastic"
},
{
"id": "sleepy-pipeline",
"description": "",
"last_modified": "2018-03-24T03:41:30.554Z"
}
]
}
schema:
type: object
description: Indicates a successful call
summary: Get all Logstash pipelines
tags:
- logstash
x-state: Technical Preview
/api/ml/saved_objects/sync:
get:
description: |

View file

@ -23,6 +23,7 @@ const { REPO_ROOT } = require('@kbn/repo-info');
`${REPO_ROOT}/src/core/packages/saved-objects/docs/openapi/bundled.yaml`,
`${REPO_ROOT}/x-pack/platform/plugins/private/upgrade_assistant/docs/openapi/upgrade_apis.yaml`,
`${REPO_ROOT}/x-pack/platform/plugins/shared/security/docs/openapi/user_session_apis.yaml`,
`${REPO_ROOT}/x-pack/platform/plugins/private/logstash/docs/openapi/logstash_apis.yaml`,
// Observability Solution
`${REPO_ROOT}/x-pack/solutions/observability/plugins/apm/docs/openapi/apm/bundled.yaml`,

View file

@ -0,0 +1,7 @@
# OpenAPI (Experimental)
The current self-contained spec file can be used for online tools like those found at https://openapi.tools/. This spec is experimental and may be incomplete or change later.
A guide about the openApi specification can be found at [https://swagger.io/docs/specification/about/](https://swagger.io/docs/specification/about/).
These files are joined with the rest of the Kibana APIs per `oas_docs/README.md`

View file

@ -0,0 +1,188 @@
openapi: 3.0.3
info:
title: Logstash configuration management APIs
description: Kibana APIs for the Logstash configuration management feature
version: "1.0.0"
license:
name: Elastic License 2.0
url: https://www.elastic.co/licensing/elastic-license
tags:
- name: logstash
description: |
Programmatically integrate with Logstash configuration management.
> warn
> Do not directly access the `.logstash` index. The structure of the `.logstash` index is subject to change, which could cause your integration to break. Instead, use the Logstash configuration management APIs.
x-displayName: Logstash configuration management
externalDocs:
description: Centralized pipeline management
url: https://www.elastic.co/guide/en/logstash/current/logstash-centralized-pipeline-management.html
servers:
- url: /
paths:
/api/logstash/pipeline/{id}:
delete:
summary: Delete a Logstash pipeline
description: >
Delete a centrally-managed Logstash pipeline.
If your Elasticsearch cluster is protected with basic authentication, you must have either the `logstash_admin` built-in role or a customized Logstash writer role.
externalDocs:
description: Secure your connection
url: https://www.elastic.co/guide/en/logstash/current/ls-security.html
operationId: delete-logstash-pipeline
x-state: Technical Preview
tags:
- logstash
parameters:
- in: path
name: id
description: An identifier for the pipeline.
required: true
schema:
type: string
responses:
'204':
description: Indicates a successful call
get:
summary: Get a Logstash pipeline
description: >
Get information for a centrally-managed Logstash pipeline.
To use this API, you must have either the `logstash_admin` built-in role or a customized Logstash reader role.
externalDocs:
description: Secure your connection
url: https://www.elastic.co/guide/en/logstash/current/ls-security.html
operationId: get-logstash-pipeline
x-state: Technical Preview
tags:
- logstash
parameters:
- in: path
name: id
description: An identifier for the pipeline.
required: true
schema:
type: string
responses:
'200':
description: Indicates a successful call
content:
application/json:
schema:
type: object
examples:
getLogstashPipelineResponseExample1:
value: |-
{
"id": "hello-world",
"description": "Just a simple pipeline",
"username": "elastic",
"pipeline": "input { stdin {} } output { stdout {} }",
"settings": {
"queue.type": "persistent"
}
}
put:
summary: Create or update a Logstash pipeline
description: >
Create a centrally-managed Logstash pipeline or update a pipeline.
To use this API, you must have either the `logstash_admin` built-in role or a customized Logstash writer role.
externalDocs:
description: Secure your connection
url: https://www.elastic.co/guide/en/logstash/current/ls-security.html
operationId: put-logstash-pipeline
x-state: Technical Preview
tags:
- logstash
parameters:
- in: path
name: id
description: >
An identifier for the pipeline.
Only alphanumeric characters, hyphens, and underscores are supported.
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
type: object
required:
- pipeline
properties:
description:
type: string
description: A description of the pipeline.
pipeline:
type: string
description: A definition for the pipeline.
settings:
type: object
description: |
Supported settings, represented as object keys, include the following:
- `pipeline.workers`
- `pipeline.batch.size`
- `pipeline.batch.delay`
- `pipeline.ecs_compatibility`
- `pipeline.ordered`
- `queue.type`
- `queue.max_bytes`
- `queue.checkpoint.writes`
examples:
putLogstashPipelineRequestExample1:
value: |-
{
"pipeline": "input { stdin {} } output { stdout {} }",
"settings": {
"queue.type": "persisted"
}
}
responses:
'204':
description: Indicates a successful call
/api/logstash/pipelines:
get:
summary: Get all Logstash pipelines
description: |
Get a list of all centrally-managed Logstash pipelines.
To use this API, you must have either the `logstash_admin` built-in role or a customized Logstash reader role.
> info
> Limit the number of pipelines to 10,000 or fewer. As the number of pipelines nears and surpasses 10,000, you may see performance issues on Kibana.
The `username` property appears in the response when security is enabled and depends on when the pipeline was created or last updated.
externalDocs:
description: Secure your connection
url: https://www.elastic.co/guide/en/logstash/current/ls-security.html
operationId: get-logstash-pipelines
x-state: Technical Preview
tags:
- logstash
responses:
'200':
description: Indicates a successful call
content:
application/json:
schema:
type: object
examples:
getLogstashPipelinesResponseExample1:
value: |-
{
"pipelines": [
{
"id": "hello-world",
"description": "Just a simple pipeline",
"last_modified": "2018-04-14T12:23:29.772Z",
"username": "elastic"
},
{
"id": "sleepy-pipeline",
"description": "",
"last_modified": "2018-03-24T03:41:30.554Z"
}
]
}