naftiko: 1.0.0-alpha2 info: label: Kibana APIs — Elastic Agent policies description: 'Kibana APIs — Elastic Agent policies. 14 operations. Lead operation: Get agent policies. Self-contained Naftiko capability covering one Kibana business surface.' tags: - Kibana - Elastic Agent policies created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: KIBANA_API_KEY: KIBANA_API_KEY capability: consumes: - type: http namespace: kibana-elastic-agent-policies baseUri: https://{kibana_url} description: Kibana APIs — Elastic Agent policies business capability. Self-contained, no shared references. resources: - name: api-fleet-agent_policies path: /api/fleet/agent_policies operations: - name: getfleetagentpolicies method: GET description: Get agent policies outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: page in: query type: number description: Page number - name: perPage in: query type: number description: Number of results per page - name: sortField in: query type: string description: Field to sort results by - name: sortOrder in: query type: string description: Sort order, ascending or descending - name: showUpgradeable in: query type: boolean description: When true, only show policies with upgradeable agents - name: kuery in: query type: string description: A KQL query string to filter results - name: noAgentCount in: query type: boolean description: use withAgentCount instead - name: withAgentCount in: query type: boolean description: get policies with agent count - name: full in: query type: boolean description: get full policies with package policies populated - name: format in: query type: string description: 'Format for the response: simplified or legacy' - name: postfleetagentpolicies method: POST description: Create an agent policy outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: kbn-xsrf in: header type: string description: A required header to protect against CSRF attacks required: true - name: sys_monitoring in: query type: boolean description: Whether to add the system integration to the new agent policy - name: body in: body type: object description: Request body (JSON). required: false - name: api-fleet-agent_policies-_bulk_get path: /api/fleet/agent_policies/_bulk_get operations: - name: postfleetagentpoliciesbulkget method: POST description: Bulk get agent policies outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: kbn-xsrf in: header type: string description: A required header to protect against CSRF attacks required: true - name: format in: query type: string description: 'Format for the response: simplified or legacy' - name: body in: body type: object description: Request body (JSON). required: false - name: api-fleet-agent_policies-delete path: /api/fleet/agent_policies/delete operations: - name: postfleetagentpoliciesdelete method: POST description: Delete an agent policy outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: kbn-xsrf in: header type: string description: A required header to protect against CSRF attacks required: true - name: body in: body type: object description: Request body (JSON). required: false - name: api-fleet-agent_policies-outputs path: /api/fleet/agent_policies/outputs operations: - name: postfleetagentpoliciesoutputs method: POST description: Get outputs for agent policies outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: kbn-xsrf in: header type: string description: A required header to protect against CSRF attacks required: true - name: body in: body type: object description: Request body (JSON). required: false - name: api-fleet-agent_policies-agentPolicyId path: /api/fleet/agent_policies/{agentPolicyId} operations: - name: getfleetagentpoliciesagentpolicyid method: GET description: Get an agent policy outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: agentPolicyId in: path type: string description: The ID of the agent policy required: true - name: format in: query type: string description: 'Format for the response: simplified or legacy' - name: putfleetagentpoliciesagentpolicyid method: PUT description: Update an agent policy outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: kbn-xsrf in: header type: string description: A required header to protect against CSRF attacks required: true - name: agentPolicyId in: path type: string description: The ID of the agent policy required: true - name: format in: query type: string description: 'Format for the response: simplified or legacy' - name: body in: body type: object description: Request body (JSON). required: false - name: api-fleet-agent_policies-agentPolicyId-auto_upgrade_agents_status path: /api/fleet/agent_policies/{agentPolicyId}/auto_upgrade_agents_status operations: - name: getfleetagentpoliciesagentpolicyidautoupgradeagentsstatus method: GET description: Get auto upgrade agent status outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: agentPolicyId in: path type: string description: The ID of the agent policy required: true - name: api-fleet-agent_policies-agentPolicyId-copy path: /api/fleet/agent_policies/{agentPolicyId}/copy operations: - name: postfleetagentpoliciesagentpolicyidcopy method: POST description: Copy an agent policy outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: kbn-xsrf in: header type: string description: A required header to protect against CSRF attacks required: true - name: agentPolicyId in: path type: string description: The ID of the agent policy required: true - name: format in: query type: string description: 'Format for the response: simplified or legacy' - name: body in: body type: object description: Request body (JSON). required: false - name: api-fleet-agent_policies-agentPolicyId-download path: /api/fleet/agent_policies/{agentPolicyId}/download operations: - name: getfleetagentpoliciesagentpolicyiddownload method: GET description: Download an agent policy outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: agentPolicyId in: path type: string description: The ID of the agent policy required: true - name: download in: query type: boolean description: If true, returns the policy as a downloadable file - name: standalone in: query type: boolean description: If true, returns the policy formatted for standalone agents - name: kubernetes in: query type: boolean description: If true, returns the policy formatted for Kubernetes deployment - name: revision in: query type: number description: If provided, returns the policy at the specified revision. Cannot be used with standalone or kubernetes flags. - name: api-fleet-agent_policies-agentPolicyId-full path: /api/fleet/agent_policies/{agentPolicyId}/full operations: - name: getfleetagentpoliciesagentpolicyidfull method: GET description: Get a full agent policy outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: agentPolicyId in: path type: string description: The ID of the agent policy required: true - name: download in: query type: boolean description: If true, returns the policy as a downloadable file - name: standalone in: query type: boolean description: If true, returns the policy formatted for standalone agents - name: kubernetes in: query type: boolean description: If true, returns the policy formatted for Kubernetes deployment - name: revision in: query type: number description: If provided, returns the policy at the specified revision. Cannot be used with standalone or kubernetes flags. - name: api-fleet-agent_policies-agentPolicyId-outputs path: /api/fleet/agent_policies/{agentPolicyId}/outputs operations: - name: getfleetagentpoliciesagentpolicyidoutputs method: GET description: Get outputs for an agent policy outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: agentPolicyId in: path type: string description: The ID of the agent policy required: true - name: api-fleet-kubernetes path: /api/fleet/kubernetes operations: - name: getfleetkubernetes method: GET description: Get a full K8s agent manifest outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: download in: query type: boolean description: If true, returns the manifest as a downloadable file - name: fleetServer in: query type: string description: Fleet Server host URL to include in the manifest - name: enrolToken in: query type: string description: Enrollment token to include in the manifest - name: api-fleet-kubernetes-download path: /api/fleet/kubernetes/download operations: - name: getfleetkubernetesdownload method: GET description: Download an agent manifest outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: download in: query type: boolean description: If true, returns the manifest as a downloadable file - name: fleetServer in: query type: string description: Fleet Server host URL to include in the manifest - name: enrolToken in: query type: string description: Enrollment token to include in the manifest authentication: type: apikey key: Authorization value: '{{env.KIBANA_API_KEY}}' placement: header exposes: - type: rest namespace: kibana-elastic-agent-policies-rest port: 8080 description: REST adapter for Kibana APIs — Elastic Agent policies. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/api/fleet/agent-policies name: api-fleet-agent-policies description: REST surface for api-fleet-agent_policies. operations: - method: GET name: getfleetagentpolicies description: Get agent policies call: kibana-elastic-agent-policies.getfleetagentpolicies with: page: rest.page perPage: rest.perPage sortField: rest.sortField sortOrder: rest.sortOrder showUpgradeable: rest.showUpgradeable kuery: rest.kuery noAgentCount: rest.noAgentCount withAgentCount: rest.withAgentCount full: rest.full format: rest.format outputParameters: - type: object mapping: $. - method: POST name: postfleetagentpolicies description: Create an agent policy call: kibana-elastic-agent-policies.postfleetagentpolicies with: kbn-xsrf: rest.kbn-xsrf sys_monitoring: rest.sys_monitoring body: rest.body outputParameters: - type: object mapping: $. - path: /v1/api/fleet/agent-policies/bulk-get name: api-fleet-agent-policies-bulk-get description: REST surface for api-fleet-agent_policies-_bulk_get. operations: - method: POST name: postfleetagentpoliciesbulkget description: Bulk get agent policies call: kibana-elastic-agent-policies.postfleetagentpoliciesbulkget with: kbn-xsrf: rest.kbn-xsrf format: rest.format body: rest.body outputParameters: - type: object mapping: $. - path: /v1/api/fleet/agent-policies/delete name: api-fleet-agent-policies-delete description: REST surface for api-fleet-agent_policies-delete. operations: - method: POST name: postfleetagentpoliciesdelete description: Delete an agent policy call: kibana-elastic-agent-policies.postfleetagentpoliciesdelete with: kbn-xsrf: rest.kbn-xsrf body: rest.body outputParameters: - type: object mapping: $. - path: /v1/api/fleet/agent-policies/outputs name: api-fleet-agent-policies-outputs description: REST surface for api-fleet-agent_policies-outputs. operations: - method: POST name: postfleetagentpoliciesoutputs description: Get outputs for agent policies call: kibana-elastic-agent-policies.postfleetagentpoliciesoutputs with: kbn-xsrf: rest.kbn-xsrf body: rest.body outputParameters: - type: object mapping: $. - path: /v1/api/fleet/agent-policies/{agentpolicyid} name: api-fleet-agent-policies-agentpolicyid description: REST surface for api-fleet-agent_policies-agentPolicyId. operations: - method: GET name: getfleetagentpoliciesagentpolicyid description: Get an agent policy call: kibana-elastic-agent-policies.getfleetagentpoliciesagentpolicyid with: agentPolicyId: rest.agentPolicyId format: rest.format outputParameters: - type: object mapping: $. - method: PUT name: putfleetagentpoliciesagentpolicyid description: Update an agent policy call: kibana-elastic-agent-policies.putfleetagentpoliciesagentpolicyid with: kbn-xsrf: rest.kbn-xsrf agentPolicyId: rest.agentPolicyId format: rest.format body: rest.body outputParameters: - type: object mapping: $. - path: /v1/api/fleet/agent-policies/{agentpolicyid}/auto-upgrade-agents-status name: api-fleet-agent-policies-agentpolicyid-auto-upgrade-agents-status description: REST surface for api-fleet-agent_policies-agentPolicyId-auto_upgrade_agents_status. operations: - method: GET name: getfleetagentpoliciesagentpolicyidautoupgradeagentsstatus description: Get auto upgrade agent status call: kibana-elastic-agent-policies.getfleetagentpoliciesagentpolicyidautoupgradeagentsstatus with: agentPolicyId: rest.agentPolicyId outputParameters: - type: object mapping: $. - path: /v1/api/fleet/agent-policies/{agentpolicyid}/copy name: api-fleet-agent-policies-agentpolicyid-copy description: REST surface for api-fleet-agent_policies-agentPolicyId-copy. operations: - method: POST name: postfleetagentpoliciesagentpolicyidcopy description: Copy an agent policy call: kibana-elastic-agent-policies.postfleetagentpoliciesagentpolicyidcopy with: kbn-xsrf: rest.kbn-xsrf agentPolicyId: rest.agentPolicyId format: rest.format body: rest.body outputParameters: - type: object mapping: $. - path: /v1/api/fleet/agent-policies/{agentpolicyid}/download name: api-fleet-agent-policies-agentpolicyid-download description: REST surface for api-fleet-agent_policies-agentPolicyId-download. operations: - method: GET name: getfleetagentpoliciesagentpolicyiddownload description: Download an agent policy call: kibana-elastic-agent-policies.getfleetagentpoliciesagentpolicyiddownload with: agentPolicyId: rest.agentPolicyId download: rest.download standalone: rest.standalone kubernetes: rest.kubernetes revision: rest.revision outputParameters: - type: object mapping: $. - path: /v1/api/fleet/agent-policies/{agentpolicyid}/full name: api-fleet-agent-policies-agentpolicyid-full description: REST surface for api-fleet-agent_policies-agentPolicyId-full. operations: - method: GET name: getfleetagentpoliciesagentpolicyidfull description: Get a full agent policy call: kibana-elastic-agent-policies.getfleetagentpoliciesagentpolicyidfull with: agentPolicyId: rest.agentPolicyId download: rest.download standalone: rest.standalone kubernetes: rest.kubernetes revision: rest.revision outputParameters: - type: object mapping: $. - path: /v1/api/fleet/agent-policies/{agentpolicyid}/outputs name: api-fleet-agent-policies-agentpolicyid-outputs description: REST surface for api-fleet-agent_policies-agentPolicyId-outputs. operations: - method: GET name: getfleetagentpoliciesagentpolicyidoutputs description: Get outputs for an agent policy call: kibana-elastic-agent-policies.getfleetagentpoliciesagentpolicyidoutputs with: agentPolicyId: rest.agentPolicyId outputParameters: - type: object mapping: $. - path: /v1/api/fleet/kubernetes name: api-fleet-kubernetes description: REST surface for api-fleet-kubernetes. operations: - method: GET name: getfleetkubernetes description: Get a full K8s agent manifest call: kibana-elastic-agent-policies.getfleetkubernetes with: download: rest.download fleetServer: rest.fleetServer enrolToken: rest.enrolToken outputParameters: - type: object mapping: $. - path: /v1/api/fleet/kubernetes/download name: api-fleet-kubernetes-download description: REST surface for api-fleet-kubernetes-download. operations: - method: GET name: getfleetkubernetesdownload description: Download an agent manifest call: kibana-elastic-agent-policies.getfleetkubernetesdownload with: download: rest.download fleetServer: rest.fleetServer enrolToken: rest.enrolToken outputParameters: - type: object mapping: $. - type: mcp namespace: kibana-elastic-agent-policies-mcp port: 9090 transport: http description: MCP adapter for Kibana APIs — Elastic Agent policies. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: get-agent-policies description: Get agent policies hints: readOnly: true destructive: false idempotent: true call: kibana-elastic-agent-policies.getfleetagentpolicies with: page: tools.page perPage: tools.perPage sortField: tools.sortField sortOrder: tools.sortOrder showUpgradeable: tools.showUpgradeable kuery: tools.kuery noAgentCount: tools.noAgentCount withAgentCount: tools.withAgentCount full: tools.full format: tools.format outputParameters: - type: object mapping: $. - name: create-agent-policy description: Create an agent policy hints: readOnly: false destructive: false idempotent: false call: kibana-elastic-agent-policies.postfleetagentpolicies with: kbn-xsrf: tools.kbn-xsrf sys_monitoring: tools.sys_monitoring body: tools.body outputParameters: - type: object mapping: $. - name: bulk-get-agent-policies description: Bulk get agent policies hints: readOnly: true destructive: false idempotent: false call: kibana-elastic-agent-policies.postfleetagentpoliciesbulkget with: kbn-xsrf: tools.kbn-xsrf format: tools.format body: tools.body outputParameters: - type: object mapping: $. - name: delete-agent-policy description: Delete an agent policy hints: readOnly: false destructive: false idempotent: false call: kibana-elastic-agent-policies.postfleetagentpoliciesdelete with: kbn-xsrf: tools.kbn-xsrf body: tools.body outputParameters: - type: object mapping: $. - name: get-outputs-agent-policies description: Get outputs for agent policies hints: readOnly: true destructive: false idempotent: false call: kibana-elastic-agent-policies.postfleetagentpoliciesoutputs with: kbn-xsrf: tools.kbn-xsrf body: tools.body outputParameters: - type: object mapping: $. - name: get-agent-policy description: Get an agent policy hints: readOnly: true destructive: false idempotent: true call: kibana-elastic-agent-policies.getfleetagentpoliciesagentpolicyid with: agentPolicyId: tools.agentPolicyId format: tools.format outputParameters: - type: object mapping: $. - name: update-agent-policy description: Update an agent policy hints: readOnly: false destructive: false idempotent: true call: kibana-elastic-agent-policies.putfleetagentpoliciesagentpolicyid with: kbn-xsrf: tools.kbn-xsrf agentPolicyId: tools.agentPolicyId format: tools.format body: tools.body outputParameters: - type: object mapping: $. - name: get-auto-upgrade-agent-status description: Get auto upgrade agent status hints: readOnly: true destructive: false idempotent: true call: kibana-elastic-agent-policies.getfleetagentpoliciesagentpolicyidautoupgradeagentsstatus with: agentPolicyId: tools.agentPolicyId outputParameters: - type: object mapping: $. - name: copy-agent-policy description: Copy an agent policy hints: readOnly: false destructive: false idempotent: false call: kibana-elastic-agent-policies.postfleetagentpoliciesagentpolicyidcopy with: kbn-xsrf: tools.kbn-xsrf agentPolicyId: tools.agentPolicyId format: tools.format body: tools.body outputParameters: - type: object mapping: $. - name: download-agent-policy description: Download an agent policy hints: readOnly: true destructive: false idempotent: true call: kibana-elastic-agent-policies.getfleetagentpoliciesagentpolicyiddownload with: agentPolicyId: tools.agentPolicyId download: tools.download standalone: tools.standalone kubernetes: tools.kubernetes revision: tools.revision outputParameters: - type: object mapping: $. - name: get-full-agent-policy description: Get a full agent policy hints: readOnly: true destructive: false idempotent: true call: kibana-elastic-agent-policies.getfleetagentpoliciesagentpolicyidfull with: agentPolicyId: tools.agentPolicyId download: tools.download standalone: tools.standalone kubernetes: tools.kubernetes revision: tools.revision outputParameters: - type: object mapping: $. - name: get-outputs-agent-policy description: Get outputs for an agent policy hints: readOnly: true destructive: false idempotent: true call: kibana-elastic-agent-policies.getfleetagentpoliciesagentpolicyidoutputs with: agentPolicyId: tools.agentPolicyId outputParameters: - type: object mapping: $. - name: get-full-k8s-agent-manifest description: Get a full K8s agent manifest hints: readOnly: true destructive: false idempotent: true call: kibana-elastic-agent-policies.getfleetkubernetes with: download: tools.download fleetServer: tools.fleetServer enrolToken: tools.enrolToken outputParameters: - type: object mapping: $. - name: download-agent-manifest description: Download an agent manifest hints: readOnly: true destructive: false idempotent: true call: kibana-elastic-agent-policies.getfleetkubernetesdownload with: download: tools.download fleetServer: tools.fleetServer enrolToken: tools.enrolToken outputParameters: - type: object mapping: $.