openapi: 3.2.0
info:
contact:
name: Kibana Team
description: 'The Kibana REST APIs enable you to manage resources such as connectors, data views, and saved objects.
The API calls are stateless.
Each request that you make happens in isolation from other calls and must include all of the necessary information for Kibana to fulfill the
request.
API requests return JSON output, which is a format that is machine-readable and works well for automation.
To interact with Kibana APIs, use the following operations:
- GET: Fetches the information.
- PATCH: Applies partial modifications to the existing information.
- POST: Adds new information.
- PUT: Updates the existing information.
- DELETE: Removes the information.
You can prepend any Kibana API endpoint with `kbn:` and run the request in **Dev Tools → Console**.
For example:
```
GET kbn:/api/data_views
```
For more information about the console, refer to [Run API requests](https://www.elastic.co/docs/explore-analyze/query-filter/tools/console).
NOTE: Access to internal Kibana API endpoints will be restricted in Kibana version 9.0. Please move any integrations to publicly documented APIs.
## Documentation source and versions
This documentation is derived from the `main` branch of the [kibana](https://github.com/elastic/kibana) repository.
It is provided under license [Attribution-NonCommercial-NoDerivatives 4.0 International](https://creativecommons.org/licenses/by-nc-nd/4.0/).
This documentation contains work-in-progress information for future Elastic Stack releases.
'
title: Kibana Security Solution Initialization API
version: ''
x-doc-license:
name: Attribution-NonCommercial-NoDerivatives 4.0 International
url: https://creativecommons.org/licenses/by-nc-nd/4.0/
x-feedbackLink:
label: Feedback
url: https://github.com/elastic/docs-content/issues/new?assignees=&labels=feedback%2Ccommunity&projects=&template=api-feedback.yaml&title=%5BFeedback%5D%3A+
servers:
- url: https://{kibana_url}
variables:
kibana_url:
default: localhost:5601
security:
- apiKeyAuth: []
- basicAuth: []
tags:
- description: 'Use the initialization API to set up the assets Elastic Security needs to operate in a Kibana space.
A single request can run one or more initialization flows. Each flow provisions a specific set of assets (for example, list indices, security data views, prebuilt detection rules, endpoint protection, AI prompts, or detection rule monitoring assets). The response reports a per-flow result so you can tell which flows completed and which returned an error.
'
name: Security Solution Initialization API
x-displayName: Security solution initialization
paths:
/api/security_solution/initialize:
post:
description: '**Spaces method and path for this operation:**
post /s/{space_id}/api/security_solution/initialize
Refer to [Spaces](https://www.elastic.co/docs/deploy-manage/manage-spaces) for more information.
Run one or more Security Solution initialization flows for the current space.
Each flow provisions a specific set of assets, for example list indices,
security data views, prebuilt detection rules, endpoint protection, AI prompts,
or detection rule monitoring assets. Only the requested flows are run, and the
response reports a result for each one.
'
operationId: InitializeSecuritySolution
requestBody:
content:
application/json:
examples:
default:
value:
flows:
- init-prebuilt-rules
- init-endpoint-protection
- init-ai-prompts
schema:
type: object
properties:
flows:
items:
$ref: '#/components/schemas/Security_Solution_Initialization_API_InitializationFlowId'
minItems: 1
type: array
required:
- flows
description: The initialization flows to run.
required: true
responses:
'200':
content:
application/json:
examples:
default:
value:
flows:
init-ai-prompts:
payload:
install_status: installed
name: security_ai_prompts
version: 8.17.1
status: ready
init-endpoint-protection:
payload:
install_status: already_installed
name: endpoint
version: 8.17.1
status: ready
init-prebuilt-rules:
payload:
install_status: installed
name: security_detection_engine
version: 8.17.1
status: ready
schema:
type: object
properties:
flows:
$ref: '#/components/schemas/Security_Solution_Initialization_API_InitializationFlowsResult'
required:
- flows
description: Indicates a successful call. Returns a result for each requested flow.
summary: Initialize security solution flows
tags:
- Security Solution Initialization API
x-metaTags:
- content: Kibana
name: product_name
components:
schemas:
Security_Solution_Initialization_API_SecurityDataViewsReadyResult:
type: object
properties:
payload:
type: object
properties:
alertDataView:
$ref: '#/components/schemas/Security_Solution_Initialization_API_DataViewPayload'
attackDataView:
$ref: '#/components/schemas/Security_Solution_Initialization_API_DataViewPayload'
defaultDataView:
$ref: '#/components/schemas/Security_Solution_Initialization_API_DataViewPayload'
kibanaDataViews:
items:
$ref: '#/components/schemas/Security_Solution_Initialization_API_DataViewPayload'
type: array
signalIndexName:
type: string
required:
- defaultDataView
- alertDataView
- kibanaDataViews
- signalIndexName
status:
enum:
- ready
type: string
required:
- status
- payload
Security_Solution_Initialization_API_DataViewPayload:
type: object
properties:
id:
type: string
patternList:
items:
type: string
type: array
title:
type: string
required:
- id
- title
- patternList
Security_Solution_Initialization_API_InitializationFlowId:
description: Identifier for an initialization flow.
enum:
- create-list-indices
- security-data-views
- init-prebuilt-rules
- init-endpoint-protection
- init-ai-prompts
- init-detection-rule-monitoring
type: string
Security_Solution_Initialization_API_CreateListIndicesReadyResult:
type: object
properties:
status:
enum:
- ready
type: string
required:
- status
Security_Solution_Initialization_API_PackageInstallReadyResult:
type: object
properties:
payload:
type: object
properties:
install_status:
description: Fleet package installation status (e.g., installed, already_installed).
type: string
name:
type: string
version:
type: string
required:
- name
- version
- install_status
status:
enum:
- ready
type: string
required:
- status
- payload
Security_Solution_Initialization_API_InitializationFlowErrorResult:
type: object
properties:
error:
type:
- string
- 'null'
status:
enum:
- error
type: string
required:
- status
- error
Security_Solution_Initialization_API_InstallDetectionEngineRuleMonitoringAssetsReadyResult:
type: object
properties:
status:
enum:
- ready
type: string
required:
- status
Security_Solution_Initialization_API_InitializationFlowsResult:
description: Per-flow results. Only requested flows appear in the response, so all properties are optional. Each flow is either a typed ready result or an error result.
type: object
properties:
create-list-indices:
oneOf:
- $ref: '#/components/schemas/Security_Solution_Initialization_API_CreateListIndicesReadyResult'
- $ref: '#/components/schemas/Security_Solution_Initialization_API_InitializationFlowErrorResult'
init-ai-prompts:
oneOf:
- $ref: '#/components/schemas/Security_Solution_Initialization_API_PackageInstallReadyResult'
- $ref: '#/components/schemas/Security_Solution_Initialization_API_InitializationFlowErrorResult'
init-detection-rule-monitoring:
oneOf:
- $ref: '#/components/schemas/Security_Solution_Initialization_API_InstallDetectionEngineRuleMonitoringAssetsReadyResult'
- $ref: '#/components/schemas/Security_Solution_Initialization_API_InitializationFlowErrorResult'
init-endpoint-protection:
oneOf:
- $ref: '#/components/schemas/Security_Solution_Initialization_API_PackageInstallReadyResult'
- $ref: '#/components/schemas/Security_Solution_Initialization_API_InitializationFlowErrorResult'
init-prebuilt-rules:
oneOf:
- $ref: '#/components/schemas/Security_Solution_Initialization_API_PackageInstallReadyResult'
- $ref: '#/components/schemas/Security_Solution_Initialization_API_InitializationFlowErrorResult'
security-data-views:
oneOf:
- $ref: '#/components/schemas/Security_Solution_Initialization_API_SecurityDataViewsReadyResult'
- $ref: '#/components/schemas/Security_Solution_Initialization_API_InitializationFlowErrorResult'
securitySchemes:
apiKeyAuth:
description: 'These APIs use key-based authentication. You must create an API key and use the encoded value in the request header. For example: `Authorization: ApiKey base64AccessApiKey`
'
in: header
name: Authorization
type: apiKey
basicAuth:
scheme: basic
type: http
x-topics:
- title: Kibana spaces
content: "Spaces enable you to organize your dashboards and other saved objects into meaningful categories.\nYou can use the default space or create your own spaces.\n\nTo run APIs in non-default spaces, you must add `s/{space_id}/` to the path.\nFor example:\n\n```bash\ncurl -X GET \"http://${KIBANA_URL}/s/marketing/api/data_views\" \\\n -H \"Authorization: ApiKey ${API_KEY}\"\n```\n\nIf you use the Kibana console to send API requests, it automatically adds the appropriate space identifier.\n\nTo learn more, check out [Spaces](https://www.elastic.co/docs/deploy-manage/manage-spaces).\n"