Kibana · Capability

Kibana APIs — slo

Kibana APIs — slo. 13 operations. Lead operation: Get a paginated list of SLOs. Self-contained Naftiko capability covering one Kibana business surface.

Run with Naftiko Kibanaslo

What You Can Do

GET
Findslosop — Get a paginated list of SLOs
/v1/s/{spaceid}/api/observability/slos
POST
Createsloop — Create an SLO
/v1/s/{spaceid}/api/observability/slos
POST
Bulkdeleteop — Bulk delete SLO definitions and their associated summary and rollup data.
/v1/s/{spaceid}/api/observability/slos/bulk-delete
GET
Bulkdeletestatusop — Retrieve the status of the bulk deletion
/v1/s/{spaceid}/api/observability/slos/bulk-delete/{taskid}
POST
Deleterollupdataop — Batch delete rollup and summary data
/v1/s/{spaceid}/api/observability/slos/bulk-purge-rollup
POST
Deletesloinstancesop — Batch delete rollup and summary data
/v1/s/{spaceid}/api/observability/slos/delete-instances
DELETE
Deletesloop — Delete an SLO
/v1/s/{spaceid}/api/observability/slos/{sloid}
GET
Getsloop — Get an SLO
/v1/s/{spaceid}/api/observability/slos/{sloid}
PUT
Updatesloop — Update an SLO
/v1/s/{spaceid}/api/observability/slos/{sloid}
POST
Resetsloop — Reset an SLO
/v1/s/{spaceid}/api/observability/slos/{sloid}/reset
POST
Disablesloop — Disable an SLO
/v1/s/{spaceid}/api/observability/slos/{sloid}/disable
POST
Enablesloop — Enable an SLO
/v1/s/{spaceid}/api/observability/slos/{sloid}/enable
GET
Getdefinitionsop — Get the SLO definitions
/v1/s/{spaceid}/internal/observability/slos/definitions

MCP Tools

get-paginated-list-slos

Get a paginated list of SLOs

read-only idempotent
create-slo

Create an SLO

bulk-delete-slo-definitions-and

Bulk delete SLO definitions and their associated summary and rollup data.

retrieve-status-bulk-deletion

Retrieve the status of the bulk deletion

read-only idempotent
batch-delete-rollup-and-summary

Batch delete rollup and summary data

batch-delete-rollup-and-summary-2

Batch delete rollup and summary data

delete-slo

Delete an SLO

idempotent
get-slo

Get an SLO

read-only idempotent
update-slo

Update an SLO

idempotent
reset-slo

Reset an SLO

disable-slo

Disable an SLO

enable-slo

Enable an SLO

get-slo-definitions

Get the SLO definitions

read-only idempotent

Capability Spec

kibana-slo.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Kibana APIs — slo
  description: 'Kibana APIs — slo. 13 operations. Lead operation: Get a paginated list of SLOs. Self-contained Naftiko capability
    covering one Kibana business surface.'
  tags:
  - Kibana
  - slo
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    KIBANA_API_KEY: KIBANA_API_KEY
capability:
  consumes:
  - type: http
    namespace: kibana-slo
    baseUri: https://{kibana_url}
    description: Kibana APIs — slo business capability. Self-contained, no shared references.
    resources:
    - name: s-spaceId-api-observability-slos
      path: /s/{spaceId}/api/observability/slos
      operations:
      - name: findslosop
        method: GET
        description: Get a paginated list of SLOs
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: kqlQuery
          in: query
          type: string
          description: A valid kql query to filter the SLO with
        - name: size
          in: query
          type: integer
          description: The page size to use for cursor-based pagination, must be greater or equal than 1
        - name: searchAfter
          in: query
          type: array
          description: The cursor to use for fetching the results from, when using a cursor-base pagination.
        - name: page
          in: query
          type: integer
          description: The page to use for pagination, must be greater or equal than 1
        - name: perPage
          in: query
          type: integer
          description: Number of SLOs returned by page
        - name: sortBy
          in: query
          type: string
          description: Sort by field
        - name: sortDirection
          in: query
          type: string
          description: Sort order
        - name: hideStale
          in: query
          type: boolean
          description: Hide stale SLOs from the list as defined by stale SLO threshold in SLO settings
      - name: createsloop
        method: POST
        description: Create an SLO
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: s-spaceId-api-observability-slos-_bulk_delete
      path: /s/{spaceId}/api/observability/slos/_bulk_delete
      operations:
      - name: bulkdeleteop
        method: POST
        description: Bulk delete SLO definitions and their associated summary and rollup data.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: s-spaceId-api-observability-slos-_bulk_delete-taskId
      path: /s/{spaceId}/api/observability/slos/_bulk_delete/{taskId}
      operations:
      - name: bulkdeletestatusop
        method: GET
        description: Retrieve the status of the bulk deletion
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: taskId
          in: path
          type: string
          description: The task id of the bulk delete operation
          required: true
    - name: s-spaceId-api-observability-slos-_bulk_purge_rollup
      path: /s/{spaceId}/api/observability/slos/_bulk_purge_rollup
      operations:
      - name: deleterollupdataop
        method: POST
        description: Batch delete rollup and summary data
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: s-spaceId-api-observability-slos-_delete_instances
      path: /s/{spaceId}/api/observability/slos/_delete_instances
      operations:
      - name: deletesloinstancesop
        method: POST
        description: Batch delete rollup and summary data
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: s-spaceId-api-observability-slos-sloId
      path: /s/{spaceId}/api/observability/slos/{sloId}
      operations:
      - name: deletesloop
        method: DELETE
        description: Delete an SLO
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: getsloop
        method: GET
        description: Get an SLO
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: instanceId
          in: query
          type: string
          description: the specific instanceId used by the summary calculation
      - name: updatesloop
        method: PUT
        description: Update an SLO
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: s-spaceId-api-observability-slos-sloId-_reset
      path: /s/{spaceId}/api/observability/slos/{sloId}/_reset
      operations:
      - name: resetsloop
        method: POST
        description: Reset an SLO
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: s-spaceId-api-observability-slos-sloId-disable
      path: /s/{spaceId}/api/observability/slos/{sloId}/disable
      operations:
      - name: disablesloop
        method: POST
        description: Disable an SLO
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: s-spaceId-api-observability-slos-sloId-enable
      path: /s/{spaceId}/api/observability/slos/{sloId}/enable
      operations:
      - name: enablesloop
        method: POST
        description: Enable an SLO
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: s-spaceId-internal-observability-slos-_definitions
      path: /s/{spaceId}/internal/observability/slos/_definitions
      operations:
      - name: getdefinitionsop
        method: GET
        description: Get the SLO definitions
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: includeOutdatedOnly
          in: query
          type: boolean
          description: Indicates if the API returns only outdated SLO or all SLO definitions
        - name: includeHealth
          in: query
          type: boolean
          description: Indicates if the API returns SLO health data with definitions
        - name: tags
          in: query
          type: string
          description: Filters the SLOs by tag
        - name: search
          in: query
          type: string
          description: Filters the SLOs by name
        - name: page
          in: query
          type: number
          description: The page to use for pagination, must be greater or equal than 1
        - name: perPage
          in: query
          type: integer
          description: Number of SLOs returned by page
    authentication:
      type: apikey
      key: Authorization
      value: '{{env.KIBANA_API_KEY}}'
      placement: header
  exposes:
  - type: rest
    namespace: kibana-slo-rest
    port: 8080
    description: REST adapter for Kibana APIs — slo. One Spectral-compliant resource per consumed operation, prefixed with
      /v1.
    resources:
    - path: /v1/s/{spaceid}/api/observability/slos
      name: s-spaceid-api-observability-slos
      description: REST surface for s-spaceId-api-observability-slos.
      operations:
      - method: GET
        name: findslosop
        description: Get a paginated list of SLOs
        call: kibana-slo.findslosop
        with:
          kqlQuery: rest.kqlQuery
          size: rest.size
          searchAfter: rest.searchAfter
          page: rest.page
          perPage: rest.perPage
          sortBy: rest.sortBy
          sortDirection: rest.sortDirection
          hideStale: rest.hideStale
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: createsloop
        description: Create an SLO
        call: kibana-slo.createsloop
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/s/{spaceid}/api/observability/slos/bulk-delete
      name: s-spaceid-api-observability-slos-bulk-delete
      description: REST surface for s-spaceId-api-observability-slos-_bulk_delete.
      operations:
      - method: POST
        name: bulkdeleteop
        description: Bulk delete SLO definitions and their associated summary and rollup data.
        call: kibana-slo.bulkdeleteop
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/s/{spaceid}/api/observability/slos/bulk-delete/{taskid}
      name: s-spaceid-api-observability-slos-bulk-delete-taskid
      description: REST surface for s-spaceId-api-observability-slos-_bulk_delete-taskId.
      operations:
      - method: GET
        name: bulkdeletestatusop
        description: Retrieve the status of the bulk deletion
        call: kibana-slo.bulkdeletestatusop
        with:
          taskId: rest.taskId
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/s/{spaceid}/api/observability/slos/bulk-purge-rollup
      name: s-spaceid-api-observability-slos-bulk-purge-rollup
      description: REST surface for s-spaceId-api-observability-slos-_bulk_purge_rollup.
      operations:
      - method: POST
        name: deleterollupdataop
        description: Batch delete rollup and summary data
        call: kibana-slo.deleterollupdataop
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/s/{spaceid}/api/observability/slos/delete-instances
      name: s-spaceid-api-observability-slos-delete-instances
      description: REST surface for s-spaceId-api-observability-slos-_delete_instances.
      operations:
      - method: POST
        name: deletesloinstancesop
        description: Batch delete rollup and summary data
        call: kibana-slo.deletesloinstancesop
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/s/{spaceid}/api/observability/slos/{sloid}
      name: s-spaceid-api-observability-slos-sloid
      description: REST surface for s-spaceId-api-observability-slos-sloId.
      operations:
      - method: DELETE
        name: deletesloop
        description: Delete an SLO
        call: kibana-slo.deletesloop
        outputParameters:
        - type: object
          mapping: $.
      - method: GET
        name: getsloop
        description: Get an SLO
        call: kibana-slo.getsloop
        with:
          instanceId: rest.instanceId
        outputParameters:
        - type: object
          mapping: $.
      - method: PUT
        name: updatesloop
        description: Update an SLO
        call: kibana-slo.updatesloop
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/s/{spaceid}/api/observability/slos/{sloid}/reset
      name: s-spaceid-api-observability-slos-sloid-reset
      description: REST surface for s-spaceId-api-observability-slos-sloId-_reset.
      operations:
      - method: POST
        name: resetsloop
        description: Reset an SLO
        call: kibana-slo.resetsloop
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/s/{spaceid}/api/observability/slos/{sloid}/disable
      name: s-spaceid-api-observability-slos-sloid-disable
      description: REST surface for s-spaceId-api-observability-slos-sloId-disable.
      operations:
      - method: POST
        name: disablesloop
        description: Disable an SLO
        call: kibana-slo.disablesloop
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/s/{spaceid}/api/observability/slos/{sloid}/enable
      name: s-spaceid-api-observability-slos-sloid-enable
      description: REST surface for s-spaceId-api-observability-slos-sloId-enable.
      operations:
      - method: POST
        name: enablesloop
        description: Enable an SLO
        call: kibana-slo.enablesloop
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/s/{spaceid}/internal/observability/slos/definitions
      name: s-spaceid-internal-observability-slos-definitions
      description: REST surface for s-spaceId-internal-observability-slos-_definitions.
      operations:
      - method: GET
        name: getdefinitionsop
        description: Get the SLO definitions
        call: kibana-slo.getdefinitionsop
        with:
          includeOutdatedOnly: rest.includeOutdatedOnly
          includeHealth: rest.includeHealth
          tags: rest.tags
          search: rest.search
          page: rest.page
          perPage: rest.perPage
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: kibana-slo-mcp
    port: 9090
    transport: http
    description: MCP adapter for Kibana APIs — slo. One tool per consumed operation, routed inline through this capability's
      consumes block.
    tools:
    - name: get-paginated-list-slos
      description: Get a paginated list of SLOs
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: kibana-slo.findslosop
      with:
        kqlQuery: tools.kqlQuery
        size: tools.size
        searchAfter: tools.searchAfter
        page: tools.page
        perPage: tools.perPage
        sortBy: tools.sortBy
        sortDirection: tools.sortDirection
        hideStale: tools.hideStale
      outputParameters:
      - type: object
        mapping: $.
    - name: create-slo
      description: Create an SLO
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: kibana-slo.createsloop
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: bulk-delete-slo-definitions-and
      description: Bulk delete SLO definitions and their associated summary and rollup data.
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: kibana-slo.bulkdeleteop
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: retrieve-status-bulk-deletion
      description: Retrieve the status of the bulk deletion
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: kibana-slo.bulkdeletestatusop
      with:
        taskId: tools.taskId
      outputParameters:
      - type: object
        mapping: $.
    - name: batch-delete-rollup-and-summary
      description: Batch delete rollup and summary data
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: kibana-slo.deleterollupdataop
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: batch-delete-rollup-and-summary-2
      description: Batch delete rollup and summary data
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: kibana-slo.deletesloinstancesop
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: delete-slo
      description: Delete an SLO
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: kibana-slo.deletesloop
      outputParameters:
      - type: object
        mapping: $.
    - name: get-slo
      description: Get an SLO
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: kibana-slo.getsloop
      with:
        instanceId: tools.instanceId
      outputParameters:
      - type: object
        mapping: $.
    - name: update-slo
      description: Update an SLO
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: kibana-slo.updatesloop
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: reset-slo
      description: Reset an SLO
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: kibana-slo.resetsloop
      outputParameters:
      - type: object
        mapping: $.
    - name: disable-slo
      description: Disable an SLO
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: kibana-slo.disablesloop
      outputParameters:
      - type: object
        mapping: $.
    - name: enable-slo
      description: Enable an SLO
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: kibana-slo.enablesloop
      outputParameters:
      - type: object
        mapping: $.
    - name: get-slo-definitions
      description: Get the SLO definitions
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: kibana-slo.getdefinitionsop
      with:
        includeOutdatedOnly: tools.includeOutdatedOnly
        includeHealth: tools.includeHealth
        tags: tools.tags
        search: tools.search
        page: tools.page
        perPage: tools.perPage
      outputParameters:
      - type: object
        mapping: $.