openapi: 3.0.3 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 APIs Actions slo 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: SLO APIs enable you to define, manage and track service-level objectives name: slo x-displayName: Service level objectives paths: /s/{spaceId}/api/observability/slos: get: description: 'You must have the `read` privileges for the **SLOs** feature in the **Observability** section of the Kibana feature privileges. ' operationId: findSlosOp parameters: - $ref: '#/components/parameters/SLOs_kbn_xsrf' - $ref: '#/components/parameters/SLOs_space_id' - description: A valid kql query to filter the SLO with example: 'slo.name:latency* and slo.tags : "prod"' in: query name: kqlQuery schema: type: string - description: The page size to use for cursor-based pagination, must be greater or equal than 1 example: 1 in: query name: size schema: default: 1 type: integer - description: The cursor to use for fetching the results from, when using a cursor-base pagination. in: query name: searchAfter schema: items: type: string type: array - description: The page to use for pagination, must be greater or equal than 1 example: 1 in: query name: page schema: default: 1 type: integer - description: Number of SLOs returned by page example: 25 in: query name: perPage schema: default: 25 maximum: 5000 type: integer - description: Sort by field example: status in: query name: sortBy schema: default: status enum: - sli_value - status - error_budget_consumed - error_budget_remaining type: string - description: Sort order example: asc in: query name: sortDirection schema: default: asc enum: - asc - desc type: string - description: Hide stale SLOs from the list as defined by stale SLO threshold in SLO settings in: query name: hideStale schema: type: boolean responses: '200': content: application/json: examples: findSloResponse: summary: A paginated list of SLOs value: page: 1 perPage: 25 results: - budgetingMethod: occurrences createdAt: '2025-01-12T10:03:19.000Z' description: Availability of my web service enabled: true groupBy: '*' id: 8853df00-ae2e-11ed-90af-09bb6422b258 indicator: params: filter: 'field.environment : "production" and service.name : "my-service"' good: 'request.status_code : "2xx"' index: logs-* timestampField: '@timestamp' total: 'request.status_code : *' type: sli.kql.custom instanceId: '*' name: My Service Availability objective: target: 0.99 revision: 1 settings: frequency: 5m syncDelay: 5m summary: errorBudget: consumed: 0.17 initial: 0.01 isEstimated: false remaining: 0.83 sliValue: 0.9983 status: HEALTHY tags: - production - web-service timeWindow: duration: 30d type: rolling updatedAt: '2025-01-12T10:03:19.000Z' version: 2 total: 42 schema: $ref: '#/components/schemas/SLOs_find_slo_response' description: Successful request '400': content: application/json: examples: badRequestExample: summary: Bad request value: error: Bad Request message: 'Invalid value ''invalid'' supplied to: sortBy' statusCode: 400 schema: $ref: '#/components/schemas/SLOs_400_response' description: Bad request '401': content: application/json: examples: unauthorizedExample: summary: Unauthorized value: error: Unauthorized message: 'security_exception: unable to authenticate user for REST request [/api/observability/slos]' statusCode: 401 schema: $ref: '#/components/schemas/SLOs_401_response' description: Unauthorized response '403': content: application/json: examples: forbiddenExample: summary: Forbidden value: error: Forbidden message: 'security_exception: action [slo_read] is unauthorized for user' statusCode: 403 schema: $ref: '#/components/schemas/SLOs_403_response' description: Forbidden response '404': content: application/json: examples: notFoundExample: summary: Not found value: error: Not Found message: SLO [3749f390-03a3-11ee-8139-c7ff60a1692d] not found statusCode: 404 schema: $ref: '#/components/schemas/SLOs_404_response' description: Not found response summary: Get a paginated list of SLOs tags: - slo x-metaTags: - content: Kibana name: product_name post: description: 'You must have `all` privileges for the **SLOs** feature in the **Observability** section of the Kibana feature privileges. ' operationId: createSloOp parameters: - $ref: '#/components/parameters/SLOs_kbn_xsrf' - $ref: '#/components/parameters/SLOs_space_id' requestBody: content: application/json: examples: createSloKqlExample: summary: Create an SLO with a KQL indicator value: budgetingMethod: occurrences description: Availability of my web service measured by successful HTTP responses indicator: params: filter: 'field.environment : "production" and service.name : "my-service"' good: 'request.status_code : "2xx"' index: logs-* timestampField: '@timestamp' total: 'request.status_code : *' type: sli.kql.custom name: My Service Availability objective: target: 0.99 settings: frequency: 5m syncDelay: 5m tags: - production - web-service timeWindow: duration: 30d type: rolling schema: $ref: '#/components/schemas/SLOs_create_slo_request' required: true responses: '200': content: application/json: examples: createSloResponse: summary: Create SLO response value: id: 8853df00-ae2e-11ed-90af-09bb6422b258 schema: $ref: '#/components/schemas/SLOs_create_slo_response' description: Successful request '400': content: application/json: examples: badRequestExample: summary: Bad request value: error: Bad Request message: 'Invalid value ''foo'' supplied to: indicator/type' statusCode: 400 schema: $ref: '#/components/schemas/SLOs_400_response' description: Bad request '401': content: application/json: examples: unauthorizedExample: summary: Unauthorized value: error: Unauthorized message: 'security_exception: unable to authenticate user for REST request [/api/observability/slos]' statusCode: 401 schema: $ref: '#/components/schemas/SLOs_401_response' description: Unauthorized response '403': content: application/json: examples: forbiddenExample: summary: Forbidden value: error: Forbidden message: 'security_exception: action [slo_write] is unauthorized for user' statusCode: 403 schema: $ref: '#/components/schemas/SLOs_403_response' description: Forbidden response '409': content: application/json: examples: conflictExample: summary: Conflict value: error: Conflict message: SLO [d077e940-1515-11ee-9c50-9d096392f520] already exists statusCode: 409 schema: $ref: '#/components/schemas/SLOs_409_response' description: Conflict - The SLO id already exists summary: Create an SLO tags: - slo x-metaTags: - content: Kibana name: product_name /s/{spaceId}/api/observability/slos/_bulk_delete: post: description: 'Bulk delete SLO definitions and their associated summary and rollup data. This endpoint initiates a bulk deletion operation for SLOs, which may take some time to complete. The status of the operation can be checked using the `GET /api/slo/_bulk_delete/{taskId}` endpoint. ' operationId: bulkDeleteOp parameters: - $ref: '#/components/parameters/SLOs_kbn_xsrf' - $ref: '#/components/parameters/SLOs_space_id' requestBody: content: application/json: examples: bulkDeleteRequest: summary: Bulk delete two SLOs value: list: - 8853df00-ae2e-11ed-90af-09bb6422b258 - d077e940-1515-11ee-9c50-9d096392f520 schema: $ref: '#/components/schemas/SLOs_bulk_delete_request' required: true responses: '200': content: application/json: examples: bulkDeleteResponse: summary: Bulk delete response with task ID value: taskId: d08506b7-f0e8-4f8b-a06a-a83940f4db91 schema: $ref: '#/components/schemas/SLOs_bulk_delete_response' description: Successful response '400': content: application/json: examples: badRequestExample: summary: Bad request value: error: Bad Request message: 'Invalid value ''foo'' supplied to: list' statusCode: 400 schema: $ref: '#/components/schemas/SLOs_400_response' description: Bad request '401': content: application/json: examples: unauthorizedExample: summary: Unauthorized value: error: Unauthorized message: 'security_exception: unable to authenticate user for REST request [/api/observability/slos]' statusCode: 401 schema: $ref: '#/components/schemas/SLOs_401_response' description: Unauthorized response '403': content: application/json: examples: forbiddenExample: summary: Forbidden value: error: Forbidden message: 'security_exception: action [slo_write] is unauthorized for user' statusCode: 403 schema: $ref: '#/components/schemas/SLOs_403_response' description: Forbidden response summary: Bulk delete SLO definitions and their associated summary and rollup data. tags: - slo x-metaTags: - content: Kibana name: product_name /s/{spaceId}/api/observability/slos/_bulk_delete/{taskId}: get: description: 'Retrieve the status of the bulk deletion operation for SLOs. This endpoint returns the status of the bulk deletion operation, including whether it is completed and the results of the operation. ' operationId: bulkDeleteStatusOp parameters: - $ref: '#/components/parameters/SLOs_kbn_xsrf' - $ref: '#/components/parameters/SLOs_space_id' - description: The task id of the bulk delete operation in: path name: taskId required: true schema: example: 8853df00-ae2e-11ed-90af-09bb6422b258 type: string responses: '200': content: application/json: examples: bulkDeleteStatusComplete: summary: Completed bulk deletion value: isDone: true results: - id: 8853df00-ae2e-11ed-90af-09bb6422b258 success: true - id: d077e940-1515-11ee-9c50-9d096392f520 success: true bulkDeleteStatusPartialFailure: summary: Completed with partial failure value: isDone: true results: - id: 8853df00-ae2e-11ed-90af-09bb6422b258 success: true - error: SLO [d077e940-1515-11ee-9c50-9d096392f520] not found id: d077e940-1515-11ee-9c50-9d096392f520 success: false schema: $ref: '#/components/schemas/SLOs_bulk_delete_status_response' description: Successful response '400': content: application/json: examples: badRequestExample: summary: Bad request value: error: Bad Request message: 'Invalid value ''foo'' supplied to: taskId' statusCode: 400 schema: $ref: '#/components/schemas/SLOs_400_response' description: Bad request '401': content: application/json: examples: unauthorizedExample: summary: Unauthorized value: error: Unauthorized message: 'security_exception: unable to authenticate user for REST request [/api/observability/slos]' statusCode: 401 schema: $ref: '#/components/schemas/SLOs_401_response' description: Unauthorized response '403': content: application/json: examples: forbiddenExample: summary: Forbidden value: error: Forbidden message: 'security_exception: action [slo_write] is unauthorized for user' statusCode: 403 schema: $ref: '#/components/schemas/SLOs_403_response' description: Forbidden response summary: Retrieve the status of the bulk deletion tags: - slo x-metaTags: - content: Kibana name: product_name /s/{spaceId}/api/observability/slos/_bulk_purge_rollup: post: description: 'The deletion occurs for the specified list of `sloId`. You must have `all` privileges for the **SLOs** feature in the **Observability** section of the Kibana feature privileges. ' operationId: deleteRollupDataOp parameters: - $ref: '#/components/parameters/SLOs_kbn_xsrf' - $ref: '#/components/parameters/SLOs_space_id' requestBody: content: application/json: examples: purgeByAgeExample: summary: Purge rollup data older than 7 days value: list: - 8853df00-ae2e-11ed-90af-09bb6422b258 purgePolicy: age: 7d purgeType: fixed-age purgeByTimestampExample: summary: Purge rollup data before a specific date value: list: - 8853df00-ae2e-11ed-90af-09bb6422b258 - d077e940-1515-11ee-9c50-9d096392f520 purgePolicy: purgeType: fixed-time timestamp: '2024-12-31T00:00:00.000Z' schema: $ref: '#/components/schemas/SLOs_bulk_purge_rollup_request' required: true responses: '200': content: application/json: examples: bulkPurgeResponse: summary: Bulk purge response with task ID value: taskId: 8853df00-ae2e-11ed-90af-09bb6422b258 schema: $ref: '#/components/schemas/SLOs_bulk_purge_rollup_response' description: Successful request '400': content: application/json: examples: badRequestExample: summary: Bad request value: error: Bad Request message: 'Invalid value ''foo'' supplied to: purgePolicy/purgeType' statusCode: 400 schema: $ref: '#/components/schemas/SLOs_400_response' description: Bad request '401': content: application/json: examples: unauthorizedExample: summary: Unauthorized value: error: Unauthorized message: 'security_exception: unable to authenticate user for REST request [/api/observability/slos]' statusCode: 401 schema: $ref: '#/components/schemas/SLOs_401_response' description: Unauthorized response '403': content: application/json: examples: forbiddenExample: summary: Forbidden value: error: Forbidden message: 'security_exception: action [slo_write] is unauthorized for user' statusCode: 403 schema: $ref: '#/components/schemas/SLOs_403_response' description: Forbidden response summary: Batch delete rollup and summary data tags: - slo x-metaTags: - content: Kibana name: product_name /s/{spaceId}/api/observability/slos/_delete_instances: post: description: 'The deletion occurs for the specified list of `sloId` and `instanceId`. You must have `all` privileges for the **SLOs** feature in the **Observability** section of the Kibana feature privileges. ' operationId: deleteSloInstancesOp parameters: - $ref: '#/components/parameters/SLOs_kbn_xsrf' - $ref: '#/components/parameters/SLOs_space_id' requestBody: content: application/json: examples: deleteInstancesExample: summary: Delete specific SLO instances value: list: - instanceId: host-abc123 sloId: 8853df00-ae2e-11ed-90af-09bb6422b258 - instanceId: host-def456 sloId: 8853df00-ae2e-11ed-90af-09bb6422b258 schema: $ref: '#/components/schemas/SLOs_delete_slo_instances_request' required: true responses: '204': description: Successful request '400': content: application/json: examples: badRequestExample: summary: Bad request value: error: Bad Request message: 'Invalid value ''foo'' supplied to: list/0/sloId' statusCode: 400 schema: $ref: '#/components/schemas/SLOs_400_response' description: Bad request '401': content: application/json: examples: unauthorizedExample: summary: Unauthorized value: error: Unauthorized message: 'security_exception: unable to authenticate user for REST request [/api/observability/slos]' statusCode: 401 schema: $ref: '#/components/schemas/SLOs_401_response' description: Unauthorized response '403': content: application/json: examples: forbiddenExample: summary: Forbidden value: error: Forbidden message: 'security_exception: action [slo_write] is unauthorized for user' statusCode: 403 schema: $ref: '#/components/schemas/SLOs_403_response' description: Forbidden response summary: Batch delete rollup and summary data tags: - slo x-metaTags: - content: Kibana name: product_name /s/{spaceId}/api/observability/slos/{sloId}: delete: description: 'You must have the `write` privileges for the **SLOs** feature in the **Observability** section of the Kibana feature privileges. ' operationId: deleteSloOp parameters: - $ref: '#/components/parameters/SLOs_kbn_xsrf' - $ref: '#/components/parameters/SLOs_space_id' - $ref: '#/components/parameters/SLOs_slo_id' responses: '204': description: Successful request '400': content: application/json: examples: badRequestExample: summary: Bad request value: error: Bad Request message: 'Invalid value ''foo'' supplied to: id' statusCode: 400 schema: $ref: '#/components/schemas/SLOs_400_response' description: Bad request '401': content: application/json: examples: unauthorizedExample: summary: Unauthorized value: error: Unauthorized message: 'security_exception: unable to authenticate user for REST request [/api/observability/slos]' statusCode: 401 schema: $ref: '#/components/schemas/SLOs_401_response' description: Unauthorized response '403': content: application/json: examples: forbiddenExample: summary: Forbidden value: error: Forbidden message: 'security_exception: action [slo_write] is unauthorized for user' statusCode: 403 schema: $ref: '#/components/schemas/SLOs_403_response' description: Forbidden response '404': content: application/json: examples: notFoundExample: summary: Not found value: error: Not Found message: SLO [3749f390-03a3-11ee-8139-c7ff60a1692d] not found statusCode: 404 schema: $ref: '#/components/schemas/SLOs_404_response' description: Not found response summary: Delete an SLO tags: - slo x-metaTags: - content: Kibana name: product_name get: description: 'You must have the `read` privileges for the **SLOs** feature in the **Observability** section of the Kibana feature privileges. ' operationId: getSloOp parameters: - $ref: '#/components/parameters/SLOs_kbn_xsrf' - $ref: '#/components/parameters/SLOs_space_id' - $ref: '#/components/parameters/SLOs_slo_id' - description: the specific instanceId used by the summary calculation example: host-abcde in: query name: instanceId schema: type: string responses: '200': content: application/json: examples: getSloResponse: summary: Get SLO response value: budgetingMethod: occurrences createdAt: '2025-01-12T10:03:19.000Z' description: Availability of my web service enabled: true groupBy: '*' id: 8853df00-ae2e-11ed-90af-09bb6422b258 indicator: params: filter: 'field.environment : "production" and service.name : "my-service"' good: 'request.status_code : "2xx"' index: logs-* timestampField: '@timestamp' total: 'request.status_code : *' type: sli.kql.custom instanceId: '*' name: My Service Availability objective: target: 0.99 revision: 1 settings: frequency: 5m syncDelay: 5m summary: errorBudget: consumed: 0.17 initial: 0.01 isEstimated: false remaining: 0.83 sliValue: 0.9983 status: HEALTHY tags: - production - web-service timeWindow: duration: 30d type: rolling updatedAt: '2025-01-12T10:03:19.000Z' version: 2 schema: $ref: '#/components/schemas/SLOs_slo_with_summary_response' description: Successful request '400': content: application/json: examples: badRequestExample: summary: Bad request value: error: Bad Request message: 'Invalid value ''foo'' supplied to: id' statusCode: 400 schema: $ref: '#/components/schemas/SLOs_400_response' description: Bad request '401': content: application/json: examples: unauthorizedExample: summary: Unauthorized value: error: Unauthorized message: 'security_exception: unable to authenticate user for REST request [/api/observability/slos]' statusCode: 401 schema: $ref: '#/components/schemas/SLOs_401_response' description: Unauthorized response '403': content: application/json: examples: forbiddenExample: summary: Forbidden value: error: Forbidden message: 'security_exception: action [slo_read] is unauthorized for user' statusCode: 403 schema: $ref: '#/components/schemas/SLOs_403_response' description: Forbidden response '404': content: application/json: examples: notFoundExample: summary: Not found value: error: Not Found message: SLO [3749f390-03a3-11ee-8139-c7ff60a1692d] not found statusCode: 404 schema: $ref: '#/components/schemas/SLOs_404_response' description: Not found response summary: Get an SLO tags: - slo x-metaTags: - content: Kibana name: product_name put: description: 'You must have the `write` privileges for the **SLOs** feature in the **Observability** section of the Kibana feature privileges. ' operationId: updateSloOp parameters: - $ref: '#/components/parameters/SLOs_kbn_xsrf' - $ref: '#/components/parameters/SLOs_space_id' - $ref: '#/components/parameters/SLOs_slo_id' requestBody: content: application/json: examples: updateSloNameExample: summary: Update the SLO name and tags value: name: Updated Service Availability tags: - production - updated updateSloObjectiveExample: summary: Update the SLO objective value: objective: target: 0.995 schema: $ref: '#/components/schemas/SLOs_update_slo_request' required: true responses: '200': content: application/json: examples: updateSloResponse: summary: Update SLO response value: budgetingMethod: occurrences createdAt: '2025-01-12T10:03:19.000Z' description: Availability of my web service enabled: true groupBy: '*' id: 8853df00-ae2e-11ed-90af-09bb6422b258 indicator: params: filter: 'field.environment : "production" and service.name : "my-service"' good: 'request.status_code : "2xx"' index: logs-* timestampField: '@timestamp' total: 'request.status_code : *' type: sli.kql.custom name: Updated Service Availability objective: target: 0.99 revision: 2 settings: frequency: 5m syncDelay: 5m tags: - production - updated timeWindow: duration: 30d type: rolling updatedAt: '2025-03-26T14:30:00.000Z' version: 2 schema: $ref: '#/components/schemas/SLOs_slo_definition_response' description: Successful request '400': content: application/json: examples: badRequestExample: summary: Bad request value: error: Bad Request message: 'Invalid value ''foo'' supplied to: indicator/type' statusCode: 400 schema: $ref: '#/components/schemas/SLOs_400_response' description: Bad request '401': content: application/json: examples: unauthorizedExample: summary: Unauthorized value: error: Unauthorized message: 'security_exception: unable to authenticate user for REST request [/api/observability/slos]' statusCode: 401 schema: $ref: '#/components/schemas/SLOs_401_response' description: Unauthorized response '403': content: application/json: examples: forbiddenExample: summary: Forbidden value: error: Forbidden message: 'security_exception: action [slo_write] is unauthorized for user' statusCode: 403 schema: $ref: '#/components/schemas/SLOs_403_response' description: Forbidden response '404': content: application/json: examples: notFoundExample: summary: Not found value: error: Not Found message: SLO [3749f390-03a3-11ee-8139-c7ff60a1692d] not found statusCode: 404 schema: $ref: '#/components/schemas/SLOs_404_response' description: Not found response summary: Update an SLO tags: - slo x-metaTags: - content: Kibana name: product_name /s/{spaceId}/api/observability/slos/{sloId}/_reset: post: description: 'You must have the `write` privileges for the **SLOs** feature in the **Observability** section of the Kibana feature privileges. ' operationId: resetSloOp parameters: - $ref: '#/components/parameters/SLOs_kbn_xsrf' - $ref: '#/components/parameters/SLOs_space_id' - $ref: '#/components/parameters/SLOs_slo_id' responses: '200': content: application/json: examples: resetSloResponse: summary: Reset SLO response value: budgetingMethod: occurrences createdAt: '2025-01-12T10:03:19.000Z' description: Availability of my web service enabled: true groupBy: '*' id: 8853df00-ae2e-11ed-90af-09bb6422b258 indicator: params: filter: 'field.environment : "production" and service.name : "my-service"' good: 'request.status_code : "2xx"' index: logs-* timestampField: '@timestamp' total: 'request.status_code : *' type: sli.kql.custom name: My Service Availability objective: target: 0.99 revision: 2 settings: frequency: 5m syncDelay: 5m tags: - production - web-service timeWindow: duration: 30d type: rolling updatedAt: '2025-03-26T14:30:00.000Z' version: 2 schema: $ref: '#/components/schemas/SLOs_slo_definition_response' description: Successful request '400': content: application/json: examples: badRequestExample: summary: Bad request value: error: Bad Request message: 'Invalid value ''foo'' supplied to: id' statusCode: 400 schema: $ref: '#/components/schemas/SLOs_400_response' description: Bad request '401': content: application/json: examples: unauthorizedExample: summary: Unauthorized value: error: Unauthorized message: 'security_exception: unable to authenticate user for REST request [/api/observability/slos]' statusCode: 401 schema: $ref: '#/components/schemas/SLOs_401_response' description: Unauthorized response '403': content: application/json: examples: forbiddenExample: summary: Forbidden value: error: Forbidden message: 'security_exception: action [slo_write] is unauthorized for user' statusCode: 403 schema: $ref: '#/components/schemas/SLOs_403_response' description: Forbidden response '404': content: application/json: examples: notFoundExample: summary: Not found value: error: Not Found message: SLO [3749f390-03a3-11ee-8139-c7ff60a1692d] not found statusCode: 404 schema: $ref: '#/components/schemas/SLOs_404_response' description: Not found response summary: Reset an SLO tags: - slo x-metaTags: - content: Kibana name: product_name /s/{spaceId}/api/observability/slos/{sloId}/disable: post: description: 'You must have the `write` privileges for the **SLOs** feature in the **Observability** section of the Kibana feature privileges. ' operationId: disableSloOp parameters: - $ref: '#/components/parameters/SLOs_kbn_xsrf' - $ref: '#/components/parameters/SLOs_space_id' - $ref: '#/components/parameters/SLOs_slo_id' responses: '204': description: Successful request '400': content: application/json: examples: badRequestExample: summary: Bad request value: error: Bad Request message: 'Invalid value ''foo'' supplied to: id' statusCode: 400 schema: $ref: '#/components/schemas/SLOs_400_response' description: Bad request '401': content: application/json: examples: unauthorizedExample: summary: Unauthorized value: error: Unauthorized message: 'security_exception: unable to authenticate user for REST request [/api/observability/slos]' statusCode: 401 schema: $ref: '#/components/schemas/SLOs_401_response' description: Unauthorized response '403': content: application/json: examples: forbiddenExample: summary: Forbidden value: error: Forbidden message: 'security_exception: action [slo_write] is unauthorized for user' statusCode: 403 schema: $ref: '#/components/schemas/SLOs_403_response' description: Forbidden response '404': content: application/json: examples: notFoundExample: summary: Not found value: error: Not Found message: SLO [3749f390-03a3-11ee-8139-c7ff60a1692d] not found statusCode: 404 schema: $ref: '#/components/schemas/SLOs_404_response' description: Not found response summary: Disable an SLO tags: - slo x-metaTags: - content: Kibana name: product_name /s/{spaceId}/api/observability/slos/{sloId}/enable: post: description: 'You must have the `write` privileges for the **SLOs** feature in the **Observability** section of the Kibana feature privileges. ' operationId: enableSloOp parameters: - $ref: '#/components/parameters/SLOs_kbn_xsrf' - $ref: '#/components/parameters/SLOs_space_id' - $ref: '#/components/parameters/SLOs_slo_id' responses: '204': description: Successful request '400': content: application/json: examples: badRequestExample: summary: Bad request value: error: Bad Request message: 'Invalid value ''foo'' supplied to: id' statusCode: 400 schema: $ref: '#/components/schemas/SLOs_400_response' description: Bad request '401': content: application/json: examples: unauthorizedExample: summary: Unauthorized value: error: Unauthorized message: 'security_exception: unable to authenticate user for REST request [/api/observability/slos]' statusCode: 401 schema: $ref: '#/components/schemas/SLOs_401_response' description: Unauthorized response '403': content: application/json: examples: forbiddenExample: summary: Forbidden value: error: Forbidden message: 'security_exception: action [slo_write] is unauthorized for user' statusCode: 403 schema: $ref: '#/components/schemas/SLOs_403_response' description: Forbidden response '404': content: application/json: examples: notFoundExample: summary: Not found value: error: Not Found message: SLO [3749f390-03a3-11ee-8139-c7ff60a1692d] not found statusCode: 404 schema: $ref: '#/components/schemas/SLOs_404_response' description: Not found response summary: Enable an SLO tags: - slo x-metaTags: - content: Kibana name: product_name /s/{spaceId}/internal/observability/slos/_definitions: get: description: 'You must have the `read` privileges for the **SLOs** feature in the **Observability** section of the Kibana feature privileges. ' operationId: getDefinitionsOp parameters: - $ref: '#/components/parameters/SLOs_kbn_xsrf' - $ref: '#/components/parameters/SLOs_space_id' - description: Indicates if the API returns only outdated SLO or all SLO definitions in: query name: includeOutdatedOnly schema: type: boolean - description: Indicates if the API returns SLO health data with definitions example: true in: query name: includeHealth schema: type: boolean - description: Filters the SLOs by tag in: query name: tags schema: type: string - description: Filters the SLOs by name example: my service availability in: query name: search schema: type: string - description: The page to use for pagination, must be greater or equal than 1 example: 1 in: query name: page schema: type: number - description: Number of SLOs returned by page example: 100 in: query name: perPage schema: default: 100 maximum: 1000 type: integer responses: '200': content: application/json: schema: $ref: '#/components/schemas/SLOs_find_slo_definitions_response' description: Successful request '400': content: application/json: schema: $ref: '#/components/schemas/SLOs_400_response' description: Bad request '401': content: application/json: schema: $ref: '#/components/schemas/SLOs_401_response' description: Unauthorized response '403': content: application/json: schema: $ref: '#/components/schemas/SLOs_403_response' description: Forbidden response summary: Get the SLO definitions tags: - slo x-metaTags: - content: Kibana name: product_name components: schemas: SLOs_slo_definition_response: title: SLO definition response type: object properties: artifacts: $ref: '#/components/schemas/SLOs_artifacts' budgetingMethod: $ref: '#/components/schemas/SLOs_budgeting_method' createdAt: description: The creation date example: '2023-01-12T10:03:19.000Z' type: string description: description: The description of the SLO. example: My SLO description type: string enabled: description: Indicate if the SLO is enabled example: true type: boolean groupBy: $ref: '#/components/schemas/SLOs_group_by' id: description: The identifier of the SLO. example: 8853df00-ae2e-11ed-90af-09bb6422b258 type: string indicator: discriminator: mapping: sli.apm.transactionDuration: '#/components/schemas/SLOs_indicator_properties_apm_latency' sli.apm.transactionErrorRate: '#/components/schemas/SLOs_indicator_properties_apm_availability' sli.histogram.custom: '#/components/schemas/SLOs_indicator_properties_histogram' sli.kql.custom: '#/components/schemas/SLOs_indicator_properties_custom_kql' sli.metric.custom: '#/components/schemas/SLOs_indicator_properties_custom_metric' sli.metric.timeslice: '#/components/schemas/SLOs_indicator_properties_timeslice_metric' propertyName: type oneOf: - $ref: '#/components/schemas/SLOs_indicator_properties_custom_kql' - $ref: '#/components/schemas/SLOs_indicator_properties_apm_availability' - $ref: '#/components/schemas/SLOs_indicator_properties_apm_latency' - $ref: '#/components/schemas/SLOs_indicator_properties_custom_metric' - $ref: '#/components/schemas/SLOs_indicator_properties_histogram' - $ref: '#/components/schemas/SLOs_indicator_properties_timeslice_metric' name: description: The name of the SLO. example: My Service SLO type: string objective: $ref: '#/components/schemas/SLOs_objective' revision: description: The SLO revision example: 2 type: number settings: $ref: '#/components/schemas/SLOs_settings' tags: description: List of tags items: type: string type: array timeWindow: $ref: '#/components/schemas/SLOs_time_window' updatedAt: description: The last update date example: '2023-01-12T10:03:19.000Z' type: string version: description: The internal SLO version example: 2 type: number required: - id - name - description - indicator - timeWindow - budgetingMethod - objective - settings - revision - enabled - groupBy - tags - createdAt - updatedAt - version SLOs_filter: description: Defines properties for a filter properties: meta: $ref: '#/components/schemas/SLOs_filter_meta' query: type: object title: Filter type: object SLOs_indicator_properties_timeslice_metric: description: Defines properties for a timeslice metric indicator type type: object properties: params: description: An object containing the indicator parameters. nullable: false type: object properties: dataViewId: description: The kibana data view id to use, primarily used to include data view runtime mappings. Make sure to save SLO again if you add/update run time fields to the data view and if those fields are being used in slo queries. example: 03b80ab3-003d-498b-881c-3beedbaf1162 type: string filter: description: the KQL query to filter the documents with. example: 'field.environment : "production" and service.name : "my-service"' type: string index: description: The index or index pattern to use example: my-service-* type: string metric: description: 'An object defining the metrics, equation, and threshold to determine if it''s a good slice or not ' type: object properties: comparator: description: The comparator to use to compare the equation to the threshold. enum: - GT - GTE - LT - LTE example: GT type: string equation: description: The equation to calculate the metric. example: A type: string metrics: description: List of metrics with their name, aggregation type, and field. items: anyOf: - $ref: '#/components/schemas/SLOs_timeslice_metric_basic_metric_with_field' - $ref: '#/components/schemas/SLOs_timeslice_metric_percentile_metric' - $ref: '#/components/schemas/SLOs_timeslice_metric_doc_count_metric' discriminator: mapping: avg: '#/components/schemas/SLOs_timeslice_metric_basic_metric_with_field' cardinality: '#/components/schemas/SLOs_timeslice_metric_basic_metric_with_field' doc_count: '#/components/schemas/SLOs_timeslice_metric_doc_count_metric' last_value: '#/components/schemas/SLOs_timeslice_metric_basic_metric_with_field' max: '#/components/schemas/SLOs_timeslice_metric_basic_metric_with_field' min: '#/components/schemas/SLOs_timeslice_metric_basic_metric_with_field' percentile: '#/components/schemas/SLOs_timeslice_metric_percentile_metric' std_deviation: '#/components/schemas/SLOs_timeslice_metric_basic_metric_with_field' sum: '#/components/schemas/SLOs_timeslice_metric_basic_metric_with_field' propertyName: aggregation type: array threshold: description: The threshold used to determine if the metric is a good slice or not. example: 100 type: number required: - metrics - equation - comparator - threshold timestampField: description: 'The timestamp field used in the source indice. ' example: timestamp type: string required: - index - timestampField - metric type: description: The type of indicator. example: sli.metric.timeslice type: string required: - type - params title: Timeslice metric SLOs_find_slo_definitions_response: description: 'A paginated response of SLO definitions matching the query. ' oneOf: - type: object properties: page: example: 1 type: number perPage: example: 25 type: number results: items: $ref: '#/components/schemas/SLOs_slo_with_summary_response' type: array total: example: 34 type: number - type: object properties: page: default: 1 description: for backward compability type: number perPage: description: for backward compability example: 25 type: number results: items: $ref: '#/components/schemas/SLOs_slo_with_summary_response' type: array searchAfter: description: the cursor to provide to get the next paged results example: - some-slo-id - other-cursor-id items: type: string type: array size: example: 25 type: number total: example: 34 type: number title: Find SLO definitions response type: object SLOs_summary: description: The SLO computed data properties: errorBudget: $ref: '#/components/schemas/SLOs_error_budget' sliValue: example: 0.9836 type: number status: $ref: '#/components/schemas/SLOs_summary_status' required: - status - sliValue - errorBudget title: Summary type: object SLOs_error_budget: title: Error budget type: object properties: consumed: description: The error budget consummed, as a percentage of the initial value. example: 0.8 type: number initial: description: The initial error budget, as 1 - objective example: 0.02 type: number isEstimated: description: Only for SLO defined with occurrences budgeting method and calendar aligned time window. example: true type: boolean remaining: description: The error budget remaining, as a percentage of the initial value. example: 0.2 type: number required: - initial - consumed - remaining - isEstimated SLOs_update_slo_request: description: 'The update SLO API request body varies depending on the type of indicator, time window and budgeting method. Partial update is handled. ' properties: artifacts: $ref: '#/components/schemas/SLOs_artifacts' budgetingMethod: $ref: '#/components/schemas/SLOs_budgeting_method' description: description: A description for the SLO. type: string groupBy: $ref: '#/components/schemas/SLOs_group_by' indicator: oneOf: - $ref: '#/components/schemas/SLOs_indicator_properties_custom_kql' - $ref: '#/components/schemas/SLOs_indicator_properties_apm_availability' - $ref: '#/components/schemas/SLOs_indicator_properties_apm_latency' - $ref: '#/components/schemas/SLOs_indicator_properties_custom_metric' - $ref: '#/components/schemas/SLOs_indicator_properties_histogram' - $ref: '#/components/schemas/SLOs_indicator_properties_timeslice_metric' name: description: A name for the SLO. type: string objective: $ref: '#/components/schemas/SLOs_objective' settings: $ref: '#/components/schemas/SLOs_settings' tags: description: List of tags items: type: string type: array timeWindow: $ref: '#/components/schemas/SLOs_time_window' title: Update SLO request type: object SLOs_artifacts: description: Links to related assets for the SLO properties: dashboards: description: Array of dashboard references items: type: object properties: id: description: Dashboard saved-object id type: string required: - id type: array title: Artifacts type: object SLOs_bulk_purge_rollup_response: description: 'The bulk purge rollup data response returns a task id from the elasticsearch deleteByQuery response. ' properties: taskId: description: The task id of the purge operation example: 8853df00-ae2e-11ed-90af-09bb6422b258 type: string title: Bulk Purge Rollup data response type: object SLOs_403_response: title: Forbidden type: object properties: error: example: Forbidden type: string message: example: "[security_exception\n\tRoot causes:\n\t\tsecurity_exception: action [slo_write] is unauthorized for user [limited_user] for REST request [/api/observability/slos]]: action [slo_write] is unauthorized for user [limited_user]" type: string statusCode: example: 403 type: number required: - statusCode - error - message SLOs_indicator_properties_custom_metric: description: Defines properties for a custom metric indicator type type: object properties: params: description: An object containing the indicator parameters. nullable: false type: object properties: dataViewId: description: The kibana data view id to use, primarily used to include data view runtime mappings. Make sure to save SLO again if you add/update run time fields to the data view and if those fields are being used in slo queries. example: 03b80ab3-003d-498b-881c-3beedbaf1162 type: string filter: description: the KQL query to filter the documents with. example: 'field.environment : "production" and service.name : "my-service"' type: string good: description: 'An object defining the "good" metrics and equation ' type: object properties: equation: description: The equation to calculate the "good" metric. example: A type: string metrics: description: List of metrics with their name, aggregation type, and field. items: oneOf: - type: object properties: aggregation: description: The aggregation type of the metric. enum: - sum example: sum type: string field: description: The field of the metric. example: processor.processed type: string filter: description: The filter to apply to the metric. example: 'processor.outcome: *' type: string name: description: The name of the metric. Only valid options are A-Z example: A pattern: ^[A-Z]$ type: string required: - name - aggregation - field - type: object properties: aggregation: description: The aggregation type of the metric. enum: - doc_count example: doc_count type: string filter: description: The filter to apply to the metric. example: 'processor.outcome: *' type: string name: description: The name of the metric. Only valid options are A-Z example: A pattern: ^[A-Z]$ type: string required: - name - aggregation type: array required: - metrics - equation index: description: The index or index pattern to use example: my-service-* type: string timestampField: description: 'The timestamp field used in the source indice. ' example: timestamp type: string total: description: 'An object defining the "total" metrics and equation ' type: object properties: equation: description: The equation to calculate the "total" metric. example: A type: string metrics: description: List of metrics with their name, aggregation type, and field. items: oneOf: - type: object properties: aggregation: description: The aggregation type of the metric. enum: - sum example: sum type: string field: description: The field of the metric. example: processor.processed type: string filter: description: The filter to apply to the metric. example: 'processor.outcome: *' type: string name: description: The name of the metric. Only valid options are A-Z example: A pattern: ^[A-Z]$ type: string required: - name - aggregation - field - type: object properties: aggregation: description: The aggregation type of the metric. enum: - doc_count example: doc_count type: string filter: description: The filter to apply to the metric. example: 'processor.outcome: *' type: string name: description: The name of the metric. Only valid options are A-Z example: A pattern: ^[A-Z]$ type: string required: - name - aggregation type: array required: - metrics - equation required: - index - timestampField - good - total type: description: The type of indicator. example: sli.metric.custom type: string required: - type - params title: Custom metric SLOs_find_slo_response: description: 'A paginated response of SLOs matching the query. ' properties: page: example: 1 type: number perPage: example: 25 type: number results: items: $ref: '#/components/schemas/SLOs_slo_with_summary_response' type: array searchAfter: type: string size: description: Size provided for cursor based pagination example: 25 type: number total: example: 34 type: number title: Find SLO response type: object SLOs_bulk_delete_response: description: 'The bulk delete SLO response returns a taskId that can be used to poll for its status ' properties: taskId: description: The taskId of the bulk delete operation example: d08506b7-f0e8-4f8b-a06a-a83940f4db91 type: string title: Bulk delete SLO response type: object SLOs_kql_with_filters: description: Defines properties for a filter oneOf: - description: the KQL query to filter the documents with. example: 'field.environment : "production" and service.name : "my-service"' type: string - type: object properties: filters: items: $ref: '#/components/schemas/SLOs_filter' type: array kqlQuery: type: string title: KQL with filters SLOs_settings: description: Defines properties for SLO settings. properties: frequency: default: 1m description: The interval between checks for changes in the source data. The minimum value is 1m and the maximum is 59m. The default value is 1 minute. example: 5m type: string preventInitialBackfill: default: false description: Start aggregating data from the time the SLO is created, instead of backfilling data from the beginning of the time window. example: true type: boolean syncDelay: default: 1m description: The time delay in minutes between the current time and the latest source data time. Increasing the value will delay any alerting. The default value is 1 minute. The minimum value is 1m and the maximum is 359m. It should always be greater then source index refresh interval. example: 5m type: string syncField: description: The date field that is used to identify new documents in the source. It is strongly recommended to use a field that contains the ingest timestamp. If you use a different field, you might need to set the delay such that it accounts for data transmission delays. When unspecified, we use the indicator timestamp field. example: event.ingested type: string title: Settings type: object SLOs_create_slo_request: description: 'The create SLO API request body varies depending on the type of indicator, time window and budgeting method. ' properties: artifacts: $ref: '#/components/schemas/SLOs_artifacts' budgetingMethod: $ref: '#/components/schemas/SLOs_budgeting_method' description: description: A description for the SLO. type: string groupBy: $ref: '#/components/schemas/SLOs_group_by' id: description: A optional and unique identifier for the SLO. Must be between 8 and 36 chars example: my-super-slo-id type: string indicator: oneOf: - $ref: '#/components/schemas/SLOs_indicator_properties_custom_kql' - $ref: '#/components/schemas/SLOs_indicator_properties_apm_availability' - $ref: '#/components/schemas/SLOs_indicator_properties_apm_latency' - $ref: '#/components/schemas/SLOs_indicator_properties_custom_metric' - $ref: '#/components/schemas/SLOs_indicator_properties_histogram' - $ref: '#/components/schemas/SLOs_indicator_properties_timeslice_metric' name: description: A name for the SLO. type: string objective: $ref: '#/components/schemas/SLOs_objective' settings: $ref: '#/components/schemas/SLOs_settings' tags: description: List of tags items: type: string type: array timeWindow: $ref: '#/components/schemas/SLOs_time_window' required: - name - description - indicator - timeWindow - budgetingMethod - objective title: Create SLO request type: object SLOs_404_response: title: Not found type: object properties: error: example: Not Found type: string message: example: SLO [3749f390-03a3-11ee-8139-c7ff60a1692d] not found type: string statusCode: example: 404 type: number required: - statusCode - error - message SLOs_indicator_properties_custom_kql: description: Defines properties for a custom query indicator type type: object properties: params: description: An object containing the indicator parameters. nullable: false type: object properties: dataViewId: description: The kibana data view id to use, primarily used to include data view runtime mappings. Make sure to save SLO again if you add/update run time fields to the data view and if those fields are being used in slo queries. example: 03b80ab3-003d-498b-881c-3beedbaf1162 type: string filter: $ref: '#/components/schemas/SLOs_kql_with_filters' good: $ref: '#/components/schemas/SLOs_kql_with_filters_good' index: description: The index or index pattern to use example: my-service-* type: string timestampField: description: 'The timestamp field used in the source indice. ' example: timestamp type: string total: $ref: '#/components/schemas/SLOs_kql_with_filters_total' required: - index - timestampField - good - total type: description: The type of indicator. example: sli.kql.custom type: string required: - type - params title: Custom Query SLOs_kql_with_filters_total: description: The KQL query used to define all events. oneOf: - description: the KQL query to filter the documents with. example: 'field.environment : "production" and service.name : "my-service"' type: string - type: object properties: filters: items: $ref: '#/components/schemas/SLOs_filter' type: array kqlQuery: type: string title: KQL query for all events SLOs_group_by: description: optional group by field or fields to use to generate an SLO per distinct value example: - - service.name - service.name - - service.name - service.environment oneOf: - type: string - items: type: string type: array title: Group by SLOs_indicator_properties_histogram: description: Defines properties for a histogram indicator type type: object properties: params: description: An object containing the indicator parameters. nullable: false type: object properties: dataViewId: description: The kibana data view id to use, primarily used to include data view runtime mappings. Make sure to save SLO again if you add/update run time fields to the data view and if those fields are being used in slo queries. example: 03b80ab3-003d-498b-881c-3beedbaf1162 type: string filter: description: the KQL query to filter the documents with. example: 'field.environment : "production" and service.name : "my-service"' type: string good: description: 'An object defining the "good" events ' type: object properties: aggregation: description: The type of aggregation to use. enum: - value_count - range example: value_count type: string field: description: The field use to aggregate the good events. example: processor.latency type: string filter: description: The filter for good events. example: 'processor.outcome: "success"' type: string from: description: The starting value of the range. Only required for "range" aggregations. example: 0 type: number to: description: The ending value of the range. Only required for "range" aggregations. example: 100 type: number required: - aggregation - field index: description: The index or index pattern to use example: my-service-* type: string timestampField: description: 'The timestamp field used in the source indice. ' example: timestamp type: string total: description: 'An object defining the "total" events ' type: object properties: aggregation: description: The type of aggregation to use. enum: - value_count - range example: value_count type: string field: description: The field use to aggregate the good events. example: processor.latency type: string filter: description: The filter for total events. example: 'processor.outcome : *' type: string from: description: The starting value of the range. Only required for "range" aggregations. example: 0 type: number to: description: The ending value of the range. Only required for "range" aggregations. example: 100 type: number required: - aggregation - field required: - index - timestampField - good - total type: description: The type of indicator. example: sli.histogram.custom type: string required: - type - params title: Histogram indicator SLOs_bulk_delete_request: description: 'The bulk delete SLO request takes a list of SLOs Definition id to delete. ' properties: list: description: An array of SLO Definition id items: description: The SLO Definition id example: 8853df00-ae2e-11ed-90af-09bb6422b258 type: string type: array required: - list title: Bulk delete SLO request type: object SLOs_delete_slo_instances_request: description: 'The delete SLO instances request takes a list of SLO id and instance id, then delete the rollup and summary data. This API can be used to remove the staled data of an instance SLO that no longer get updated. ' properties: list: description: An array of slo id and instance id items: type: object properties: instanceId: description: The SLO instance identifier example: 8853df00-ae2e-11ed-90af-09bb6422b258 type: string sloId: description: The SLO unique identifier example: 8853df00-ae2e-11ed-90af-09bb6422b258 type: string required: - sloId - instanceId type: array required: - list title: Delete SLO instances request type: object SLOs_time_window: description: Defines properties for the SLO time window type: object properties: duration: description: 'the duration formatted as {duration}{unit}. Accepted values for rolling: 7d, 30d, 90d. Accepted values for calendar aligned: 1w (weekly) or 1M (monthly)' example: 30d type: string type: description: Indicates weither the time window is a rolling or a calendar aligned time window. enum: - rolling - calendarAligned example: rolling type: string required: - duration - type title: Time window SLOs_409_response: title: Conflict type: object properties: error: example: Conflict type: string message: example: SLO [d077e940-1515-11ee-9c50-9d096392f520] already exists type: string statusCode: example: 409 type: number required: - statusCode - error - message SLOs_objective: description: Defines properties for the SLO objective type: object properties: target: description: the target objective between 0 and 1 excluded example: 0.99 exclusiveMaximum: true exclusiveMinimum: true maximum: 100 minimum: 0 type: number timesliceTarget: description: the target objective for each slice when using a timeslices budgeting method example: 0.995 maximum: 100 minimum: 0 type: number timesliceWindow: description: the duration of each slice when using a timeslices budgeting method, as {duraton}{unit} example: 5m type: string required: - target title: Objective SLOs_slo_with_summary_response: title: SLO response type: object properties: budgetingMethod: $ref: '#/components/schemas/SLOs_budgeting_method' createdAt: description: The creation date example: '2023-01-12T10:03:19.000Z' type: string description: description: The description of the SLO. example: My SLO description type: string enabled: description: Indicate if the SLO is enabled example: true type: boolean groupBy: $ref: '#/components/schemas/SLOs_group_by' id: description: The identifier of the SLO. example: 8853df00-ae2e-11ed-90af-09bb6422b258 type: string indicator: discriminator: mapping: sli.apm.transactionDuration: '#/components/schemas/SLOs_indicator_properties_apm_latency' sli.apm.transactionErrorRate: '#/components/schemas/SLOs_indicator_properties_apm_availability' sli.histogram.custom: '#/components/schemas/SLOs_indicator_properties_histogram' sli.kql.custom: '#/components/schemas/SLOs_indicator_properties_custom_kql' sli.metric.custom: '#/components/schemas/SLOs_indicator_properties_custom_metric' sli.metric.timeslice: '#/components/schemas/SLOs_indicator_properties_timeslice_metric' propertyName: type oneOf: - $ref: '#/components/schemas/SLOs_indicator_properties_custom_kql' - $ref: '#/components/schemas/SLOs_indicator_properties_apm_availability' - $ref: '#/components/schemas/SLOs_indicator_properties_apm_latency' - $ref: '#/components/schemas/SLOs_indicator_properties_custom_metric' - $ref: '#/components/schemas/SLOs_indicator_properties_histogram' - $ref: '#/components/schemas/SLOs_indicator_properties_timeslice_metric' instanceId: description: the value derived from the groupBy field, if present, otherwise '*' example: host-abcde type: string name: description: The name of the SLO. example: My Service SLO type: string objective: $ref: '#/components/schemas/SLOs_objective' revision: description: The SLO revision example: 2 type: number settings: $ref: '#/components/schemas/SLOs_settings' summary: $ref: '#/components/schemas/SLOs_summary' tags: description: List of tags items: type: string type: array timeWindow: $ref: '#/components/schemas/SLOs_time_window' updatedAt: description: The last update date example: '2023-01-12T10:03:19.000Z' type: string version: description: The internal SLO version example: 2 type: number required: - id - name - description - indicator - timeWindow - budgetingMethod - objective - settings - revision - summary - enabled - groupBy - instanceId - tags - createdAt - updatedAt - version SLOs_timeslice_metric_basic_metric_with_field: type: object properties: aggregation: description: The aggregation type of the metric. enum: - sum - avg - min - max - std_deviation - last_value - cardinality example: sum type: string field: description: The field of the metric. example: processor.processed type: string filter: description: The filter to apply to the metric. example: 'processor.outcome: "success"' type: string name: description: The name of the metric. Only valid options are A-Z example: A pattern: ^[A-Z]$ type: string required: - name - aggregation - field title: Timeslice Metric Basic Metric with Field SLOs_summary_status: enum: - NO_DATA - HEALTHY - DEGRADING - VIOLATED example: HEALTHY title: summary status type: string SLOs_bulk_delete_status_response: description: Indicates if the bulk deletion is completed, with the detailed results of the operation. properties: error: description: The error message if the bulk deletion operation failed example: Task not found type: string isDone: description: Indicates if the bulk deletion operation is completed example: true type: boolean results: description: The results of the bulk deletion operation, including the success status and any errors for each SLO items: type: object properties: error: description: The error message if the deletion operation failed for this SLO example: SLO [d08506b7-f0e8-4f8b-a06a-a83940f4db91] not found type: string id: description: The ID of the SLO that was deleted example: d08506b7-f0e8-4f8b-a06a-a83940f4db91 type: string success: description: The result of the deletion operation for this SLO example: true type: boolean type: array title: The status of the bulk deletion type: object SLOs_timeslice_metric_percentile_metric: type: object properties: aggregation: description: The aggregation type of the metric. Only valid option is "percentile" enum: - percentile example: percentile type: string field: description: The field of the metric. example: processor.processed type: string filter: description: The filter to apply to the metric. example: 'processor.outcome: "success"' type: string name: description: The name of the metric. Only valid options are A-Z example: A pattern: ^[A-Z]$ type: string percentile: description: The percentile value. example: 95 type: number required: - name - aggregation - field - percentile title: Timeslice Metric Percentile Metric SLOs_indicator_properties_apm_latency: description: Defines properties for the APM latency indicator type type: object properties: params: description: An object containing the indicator parameters. nullable: false type: object properties: environment: description: The APM service environment or "*" example: production type: string filter: description: KQL query used for filtering the data example: 'service.foo : "bar"' type: string index: description: The index used by APM metrics example: metrics-apm*,apm* type: string service: description: The APM service name example: o11y-app type: string threshold: description: The latency threshold in milliseconds example: 250 type: number transactionName: description: The APM transaction name or "*" example: GET /my/api type: string transactionType: description: The APM transaction type or "*" example: request type: string required: - service - environment - transactionType - transactionName - index - threshold type: description: The type of indicator. example: sli.apm.transactionDuration type: string required: - type - params title: APM latency SLOs_401_response: title: Unauthorized type: object properties: error: example: Unauthorized type: string message: example: "[security_exception\n\tRoot causes:\n\t\tsecurity_exception: unable to authenticate user [elastics] for REST request [/_security/_authenticate]]: unable to authenticate user [elastics] for REST request [/_security/_authenticate]" type: string statusCode: example: 401 type: number required: - statusCode - error - message SLOs_timeslice_metric_doc_count_metric: type: object properties: aggregation: description: The aggregation type of the metric. Only valid option is "doc_count" enum: - doc_count example: doc_count type: string filter: description: The filter to apply to the metric. example: 'processor.outcome: "success"' type: string name: description: The name of the metric. Only valid options are A-Z example: A pattern: ^[A-Z]$ type: string required: - name - aggregation title: Timeslice Metric Doc Count Metric SLOs_filter_meta: description: Defines properties for a filter properties: alias: nullable: true type: string controlledBy: type: string disabled: type: boolean field: type: string group: type: string index: type: string isMultiIndex: type: boolean key: type: string negate: type: boolean params: type: object type: type: string value: type: string title: FilterMeta type: object SLOs_create_slo_response: title: Create SLO response type: object properties: id: example: 8853df00-ae2e-11ed-90af-09bb6422b258 type: string required: - id SLOs_400_response: title: Bad request type: object properties: error: example: Bad Request type: string message: example: 'Invalid value ''foo'' supplied to: [...]' type: string statusCode: example: 400 type: number required: - statusCode - error - message SLOs_bulk_purge_rollup_request: description: 'The bulk purge rollup data request takes a list of SLO ids and a purge policy, then deletes the rollup data according to the purge policy. This API can be used to remove the staled data of an instance SLO that no longer get updated. ' properties: list: description: An array of slo ids items: description: The SLO Definition id example: 8853df00-ae2e-11ed-90af-09bb6422b258 type: string type: array purgePolicy: description: Policy that dictates which SLI documents to purge based on age oneOf: - type: object properties: age: description: The duration to determine which documents to purge, formatted as {duration}{unit}. This value should be greater than or equal to the time window of every SLO provided. example: 7d type: string purgeType: description: Specifies whether documents will be purged based on a specific age or on a timestamp enum: - fixed-age type: string - type: object properties: purgeType: description: Specifies whether documents will be purged based on a specific age or on a timestamp enum: - fixed-time type: string timestamp: description: The timestamp to determine which documents to purge, formatted in ISO. This value should be older than the applicable time window of every SLO provided. example: '2024-12-31T00:00:00.000Z' type: string type: object required: - list - purgePolicy title: Bulk Purge Rollup data request type: object SLOs_indicator_properties_apm_availability: description: Defines properties for the APM availability indicator type type: object properties: params: description: An object containing the indicator parameters. nullable: false type: object properties: environment: description: The APM service environment or "*" example: production type: string filter: description: KQL query used for filtering the data example: 'service.foo : "bar"' type: string index: description: The index used by APM metrics example: metrics-apm*,apm* type: string service: description: The APM service name example: o11y-app type: string transactionName: description: The APM transaction name or "*" example: GET /my/api type: string transactionType: description: The APM transaction type or "*" example: request type: string required: - service - environment - transactionType - transactionName - index type: description: The type of indicator. example: sli.apm.transactionDuration type: string required: - type - params title: APM availability SLOs_budgeting_method: description: The budgeting method to use when computing the rollup data. enum: - occurrences - timeslices example: occurrences title: Budgeting method type: string SLOs_kql_with_filters_good: description: The KQL query used to define the good events. oneOf: - description: the KQL query to filter the documents with. example: 'request.latency <= 150 and request.status_code : "2xx"' type: string - type: object properties: filters: items: $ref: '#/components/schemas/SLOs_filter' type: array kqlQuery: type: string title: KQL query for good events parameters: SLOs_slo_id: description: An identifier for the slo. in: path name: sloId required: true schema: example: 9c235211-6834-11ea-a78c-6feb38a34414 type: string SLOs_space_id: description: An identifier for the space. If `/s/` and the identifier are omitted from the path, the default space is used. in: path name: spaceId required: true schema: example: default type: string SLOs_kbn_xsrf: description: Cross-site request forgery protection in: header name: kbn-xsrf required: true schema: type: string 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"