Elastic Stack · OpenAPI Overlay 1.0.0
API Evangelist conversational phrasing for Kibana Elastic Package Manager (EPM) API
37 actions
37 updates
phrasing
extends
openapi/elk-stack-elastic-package-manager-epm-api-openapi.yml
Generated by API Evangelist
Written by API Evangelist tooling for Elastic Stack's API. It is a proposal applied on top of the contract, not a document Elastic Stack publishes.
What the actions change
x-apievangelist-phrasing
Targets 37 · first 16 shown; the file carries all of them
$.info
$.paths['/api/fleet/epm/bulk_assets'].post
$.paths['/api/fleet/epm/categories'].get
$.paths['/api/fleet/epm/custom_integrations'].post
$.paths['/api/fleet/epm/custom_integrations/{pkgName}'].put
$.paths['/api/fleet/epm/packages'].get
$.paths['/api/fleet/epm/packages'].post
$.paths['/api/fleet/epm/packages/_bulk'].post
$.paths['/api/fleet/epm/packages/_bulk_namespace_customization'].post
$.paths['/api/fleet/epm/packages/_bulk_rollback'].post
$.paths['/api/fleet/epm/packages/_bulk_rollback/{taskId}'].get
$.paths['/api/fleet/epm/packages/_bulk_uninstall'].post
$.paths['/api/fleet/epm/packages/_bulk_uninstall/{taskId}'].get
$.paths['/api/fleet/epm/packages/_bulk_upgrade'].post
$.paths['/api/fleet/epm/packages/_bulk_upgrade/{taskId}'].get
$.paths['/api/fleet/epm/packages/{pkgName}'].get
OpenAPI Overlay
# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand.
overlay: 1.0.0
info:
title: API Evangelist conversational phrasing for Kibana Elastic Package Manager (EPM) API
version: 1.0.0
extends: openapi/elk-stack-elastic-package-manager-epm-api-openapi.yml
actions:
- target: $.info
update:
x-apievangelist-phrasing:
method: generated
generated: '2026-09-26'
generator: build-phrasing.py
label: Generated by API Evangelist
operations: 36
- target: $.paths['/api/fleet/epm/bulk_assets'].post
update:
x-apievangelist-phrasing:
intent: Fetch several Kibana saved objects by asset ID
effect: read
questions:
- Can I pull the definitions of several integration assets like dashboards and visualizations in one call?
- Which Kibana saved objects correspond to a list of asset IDs installed by Fleet packages?
instructions:
- text: Look up the Kibana assets with IDs {assetIds} in one bulk request.
slots:
assetIds: requestBody.assetIds
- text: Fetch the saved object details for asset IDs {assetIds} that integrations installed.
slots:
assetIds: requestBody.assetIds
method: generated
generated: '2026-09-26'
- target: $.paths['/api/fleet/epm/categories'].get
update:
x-apievangelist-phrasing:
intent: List integration categories
effect: read
questions:
- What categories are Fleet integrations grouped into, like security or observability?
- Can the integration category list include prerelease packages too?
instructions:
- text: List every integration category in the Fleet package registry.
- text: Show integration categories, including prerelease packages when {prerelease} is true.
slots:
prerelease: query.prerelease
method: generated
generated: '2026-09-26'
- target: $.paths['/api/fleet/epm/custom_integrations'].post
update:
x-apievangelist-phrasing:
intent: Create a custom integration
effect: write
questions:
- How do I build my own custom Fleet integration with its own datasets?
- Can I define the data streams for a homegrown integration when I create it?
instructions:
- text: Create a custom integration named {integrationName} with datasets {datasets}.
slots:
integrationName: requestBody.integrationName
datasets: requestBody.datasets
- text: Register new custom integration {integrationName} and overwrite any existing one with force {force}.
slots:
integrationName: requestBody.integrationName
force: requestBody.force
method: generated
generated: '2026-09-26'
- target: $.paths['/api/fleet/epm/custom_integrations/{pkgName}'].put
update:
x-apievangelist-phrasing:
intent: Update a custom integration's readme and categories
effect: write
questions:
- Can I change the README text of a custom integration I already built?
- How can I recategorize an existing custom integration?
instructions:
- text: Replace the README of custom integration {pkgName} with {readMeData}.
slots:
pkgName: path.pkgName
readMeData: requestBody.readMeData
- text: Set the categories of my custom integration {pkgName} to {categories}, keeping readme {readMeData}.
slots:
pkgName: path.pkgName
categories: requestBody.categories
readMeData: requestBody.readMeData
method: generated
generated: '2026-09-26'
- target: $.paths['/api/fleet/epm/packages'].get
update:
x-apievangelist-phrasing:
intent: Browse available integration packages
effect: read
questions:
- What integrations are available in the Fleet package registry?
- Can I filter the integration catalog down to a single category?
- Is there a way to see how many package policies use each integration while browsing?
instructions:
- text: List all integration packages in the {category} category.
slots:
category: query.category
- text: Browse the full integration catalog with package policy counts included.
method: generated
generated: '2026-09-26'
- target: $.paths['/api/fleet/epm/packages'].post
update:
x-apievangelist-phrasing:
intent: Install an integration from an uploaded archive
effect: write
questions:
- How do I install an integration package from a zip file I have locally instead of the registry?
- Can I upload a package archive and skip rolling over its data streams?
instructions:
- text: Install the integration package I'm uploading as an archive file.
- text: Upload and install this package zip, skipping data stream rollover set to {skipDataStreamRollover}.
slots:
skipDataStreamRollover: query.skipDataStreamRollover
method: generated
generated: '2026-09-26'
- target: $.paths['/api/fleet/epm/packages/_bulk'].post
update:
x-apievangelist-phrasing:
intent: Install several integration packages at once
effect: write
questions:
- Can I install a whole list of integrations from the registry in a single request?
- Is it possible to bulk install packages even when an outdated version is requested?
instructions:
- text: 'Install these integration packages together: {packages}.'
slots:
packages: requestBody.packages
- text: Bulk install packages {packages}, allowing outdated versions {allow_outdated_version}.
slots:
packages: requestBody.packages
allow_outdated_version: requestBody.allow_outdated_version
method: generated
generated: '2026-09-26'
- target: $.paths['/api/fleet/epm/packages/_bulk_namespace_customization'].post
update:
x-apievangelist-phrasing:
intent: Toggle namespace customization for many packages
effect: write
questions:
- Can I turn on namespace-level customization for several integrations at once?
- Which namespaces can I enable or disable per-namespace customization for across packages?
instructions:
- text: Enable namespace-level customization for namespaces {enable} on packages {packages}.
slots:
enable: requestBody.enable
packages: requestBody.packages
- text: Disable namespace customization for {disable} across packages {packages}.
slots:
disable: requestBody.disable
packages: requestBody.packages
method: generated
generated: '2026-09-26'
- target: $.paths['/api/fleet/epm/packages/_bulk_rollback'].post
update:
x-apievangelist-phrasing:
intent: Roll back several packages to prior versions
effect: write
questions:
- Can I revert a batch of integrations to their previous versions after a bad upgrade?
- Does a bulk package rollback run as a background task I can track?
instructions:
- text: Roll back packages {packages} to their previously installed versions.
slots:
packages: requestBody.packages
- text: Start a bulk rollback task for integrations {packages}.
slots:
packages: requestBody.packages
method: generated
generated: '2026-09-26'
- target: $.paths['/api/fleet/epm/packages/_bulk_rollback/{taskId}'].get
update:
x-apievangelist-phrasing:
intent: Check progress of a bulk package rollback
effect: read
questions:
- Did my bulk package rollback finish, and which packages failed to revert?
- Where can I see the results of a rollback task I started for multiple integrations?
instructions:
- text: Show the status of bulk rollback task {taskId}.
slots:
taskId: path.taskId
- text: Check whether rollback task {taskId} has completed for all packages.
slots:
taskId: path.taskId
method: generated
generated: '2026-09-26'
- target: $.paths['/api/fleet/epm/packages/_bulk_uninstall'].post
update:
x-apievangelist-phrasing:
intent: Uninstall several integration packages
effect: destructive
questions:
- Can I remove many integrations from Fleet in one go?
- Is there a force option when bulk uninstalling packages that are still in use?
instructions:
- text: Uninstall integration packages {packages} in bulk.
slots:
packages: requestBody.packages
- text: Force a bulk uninstall of packages {packages} with force {force}.
slots:
packages: requestBody.packages
force: requestBody.force
method: generated
generated: '2026-09-26'
- target: $.paths['/api/fleet/epm/packages/_bulk_uninstall/{taskId}'].get
update:
x-apievangelist-phrasing:
intent: Check progress of a bulk package uninstall
effect: read
questions:
- Has my bulk uninstall of integrations completed yet?
- Which packages in a bulk uninstall task hit errors?
instructions:
- text: Get the status of bulk uninstall task {taskId}.
slots:
taskId: path.taskId
- text: Report any failed packages in uninstall task {taskId}.
slots:
taskId: path.taskId
method: generated
generated: '2026-09-26'
- target: $.paths['/api/fleet/epm/packages/_bulk_upgrade'].post
update:
x-apievangelist-phrasing:
intent: Upgrade several integration packages
effect: write
questions:
- Can I upgrade a batch of installed integrations to their latest versions at once?
- Will a bulk package upgrade also upgrade the package policies that use them?
instructions:
- text: Upgrade packages {packages} to their newest versions.
slots:
packages: requestBody.packages
- text: 'Bulk upgrade {packages} and upgrade their package policies too: {upgrade_package_policies}.'
slots:
packages: requestBody.packages
upgrade_package_policies: requestBody.upgrade_package_policies
method: generated
generated: '2026-09-26'
- target: $.paths['/api/fleet/epm/packages/_bulk_upgrade/{taskId}'].get
update:
x-apievangelist-phrasing:
intent: Check progress of a bulk package upgrade
effect: read
questions:
- Is the bulk integration upgrade I kicked off still running?
- What were the per-package results of an upgrade task?
instructions:
- text: Show the progress of bulk upgrade task {taskId}.
slots:
taskId: path.taskId
- text: List packages that failed in upgrade task {taskId}.
slots:
taskId: path.taskId
method: generated
generated: '2026-09-26'
- target: $.paths['/api/fleet/epm/packages/{pkgName}'].get
update:
x-apievangelist-phrasing:
intent: Get details of an integration package
effect: read
questions:
- What does the latest version of a given integration include, and is it installed?
- Can I get package metadata without naming a specific version?
instructions:
- text: Show details for the {pkgName} integration package.
slots:
pkgName: path.pkgName
- text: Get full package info for {pkgName}, including metadata.
slots:
pkgName: path.pkgName
method: generated
generated: '2026-09-26'
- target: $.paths['/api/fleet/epm/packages/{pkgName}'].put
update:
x-apievangelist-phrasing:
intent: Change settings for an installed package
effect: write
questions:
- How do I make an integration's policies upgrade automatically when the package updates?
- Can I turn on namespace customization for an installed package without specifying its version?
instructions:
- text: 'Keep package policies up to date automatically for {pkgName}: {keepPoliciesUpToDate}.'
slots:
pkgName: path.pkgName
keepPoliciesUpToDate: requestBody.keepPoliciesUpToDate
- text: Enable namespace customization for {namespace_customization_enabled_for} on package {pkgName}.
slots:
pkgName: path.pkgName
namespace_customization_enabled_for: requestBody.namespace_customization_enabled_for
method: generated
generated: '2026-09-26'
- target: $.paths['/api/fleet/epm/packages/{pkgName}'].post
update:
x-apievangelist-phrasing:
intent: Install the latest version of a registry package
effect: write
questions:
- How do I install the newest release of an integration straight from the registry?
- Can I install a package even if its dependency check would fail?
instructions:
- text: Install the latest {pkgName} integration from the package registry.
slots:
pkgName: path.pkgName
- text: Install {pkgName} from the registry, skipping the dependency check {skipDependencyCheck}.
slots:
pkgName: path.pkgName
skipDependencyCheck: query.skipDependencyCheck
method: generated
generated: '2026-09-26'
- target: $.paths['/api/fleet/epm/packages/{pkgName}'].delete
update:
x-apievangelist-phrasing:
intent: Uninstall an integration package
effect: destructive
questions:
- How can I uninstall an integration without naming the version I have installed?
- Can I force removal of a package that still has policies attached?
instructions:
- text: Uninstall the {pkgName} integration.
slots:
pkgName: path.pkgName
- text: Force uninstall package {pkgName} with force set to {force}.
slots:
pkgName: path.pkgName
force: query.force
method: generated
generated: '2026-09-26'
- target: $.paths['/api/fleet/epm/packages/{pkgName}/{pkgVersion}'].get
update:
x-apievangelist-phrasing:
intent: Get details of a specific package version
effect: read
questions:
- What is in a particular version of an integration before I install it?
- Can I inspect an unverified package version's info?
instructions:
- text: Show package {pkgName} at version {pkgVersion}.
slots:
pkgName: path.pkgName
pkgVersion: path.pkgVersion
- text: Get info for {pkgName} {pkgVersion}, ignoring signature verification {ignoreUnverified}.
slots:
pkgName: path.pkgName
pkgVersion: path.pkgVersion
ignoreUnverified: query.ignoreUnverified
method: generated
generated: '2026-09-26'
- target: $.paths['/api/fleet/epm/packages/{pkgName}/{pkgVersion}'].put
update:
x-apievangelist-phrasing:
intent: Change settings for a specific package version
effect: write
questions:
- Can I change auto-update policy behavior for one pinned version of an integration?
- Which settings can I update when targeting a package by name and version?
instructions:
- text: For {pkgName} version {pkgVersion}, set keep policies up to date to {keepPoliciesUpToDate}.
slots:
pkgName: path.pkgName
pkgVersion: path.pkgVersion
keepPoliciesUpToDate: requestBody.keepPoliciesUpToDate
- text: Apply namespace customization settings {namespace_customization_settings} to {pkgName} {pkgVersion}.
slots:
pkgName: path.pkgName
pkgVersion: path.pkgVersion
namespace_customization_settings: requestBody.namespace_customization_settings
method: generated
generated: '2026-09-26'
- target: $.paths['/api/fleet/epm/packages/{pkgName}/{pkgVersion}'].post
update:
x-apievangelist-phrasing:
intent: Install a specific version of a registry package
effect: write
questions:
- How do I install an older, exact version of an integration from the registry?
- Can I ignore package constraints when installing a pinned version?
instructions:
- text: Install {pkgName} version {pkgVersion} from the registry.
slots:
pkgName: path.pkgName
pkgVersion: path.pkgVersion
- text: Install {pkgName} {pkgVersion} even if it is outdated, allow_outdated_version {allow_outdated_version}.
slots:
pkgName: path.pkgName
pkgVersion: path.pkgVersion
allow_outdated_version: requestBody.allow_outdated_version
method: generated
generated: '2026-09-26'
- target: $.paths['/api/fleet/epm/packages/{pkgName}/{pkgVersion}'].delete
update:
x-apievangelist-phrasing:
intent: Uninstall a specific package version
effect: destructive
questions:
- Can I uninstall one exact version of an integration by name and version number?
- What happens if I force-delete a versioned package still used by policies?
instructions:
- text: Uninstall {pkgName} version {pkgVersion}.
slots:
pkgName: path.pkgName
pkgVersion: path.pkgVersion
- text: Force removal of package {pkgName} at {pkgVersion} with force {force}.
slots:
pkgName: path.pkgName
pkgVersion: path.pkgVersion
force: query.force
method: generated
generated: '2026-09-26'
- target: $.paths['/api/fleet/epm/packages/{pkgName}/{pkgVersion}/{filePath}'].get
update:
x-apievangelist-phrasing:
intent: Read a file from inside a package
effect: read
questions:
- Can I view the raw contents of a file bundled in an integration package, like its manifest?
- Where do I fetch a specific file path from a package version?
instructions:
- text: Show file {filePath} from package {pkgName} version {pkgVersion}.
slots:
filePath: path.filePath
pkgName: path.pkgName
pkgVersion: path.pkgVersion
- text: Download {filePath} inside the {pkgName} {pkgVersion} package.
slots:
filePath: path.filePath
pkgName: path.pkgName
pkgVersion: path.pkgVersion
method: generated
generated: '2026-09-26'
- target: $.paths['/api/fleet/epm/packages/{pkgName}/{pkgVersion}/datastream_assets'].delete
update:
x-apievangelist-phrasing:
intent: Delete data stream assets for a package policy
effect: destructive
questions:
- Can I clean up the data stream assets a package created for one package policy?
- Which package policy do I need to name to remove a package's datastream assets?
instructions:
- text: Delete datastream assets of {pkgName} {pkgVersion} for package policy {packagePolicyId}.
slots:
pkgName: path.pkgName
pkgVersion: path.pkgVersion
packagePolicyId: query.packagePolicyId
- text: Remove the data stream index templates and pipelines {pkgName} {pkgVersion} made for policy {packagePolicyId}.
slots:
pkgName: path.pkgName
pkgVersion: path.pkgVersion
packagePolicyId: query.packagePolicyId
method: generated
generated: '2026-09-26'
- target: $.paths['/api/fleet/epm/packages/{pkgName}/{pkgVersion}/dependencies'].get
update:
x-apievangelist-phrasing:
intent: List a package version's dependencies
effect: read
questions:
- Which other packages does a given integration version depend on?
- Do I need to install anything else before this integration version?
instructions:
- text: List dependencies of {pkgName} version {pkgVersion}.
slots:
pkgName: path.pkgName
pkgVersion: path.pkgVersion
- text: Show what packages {pkgName} {pkgVersion} requires.
slots:
pkgName: path.pkgName
pkgVersion: path.pkgVersion
method: generated
generated: '2026-09-26'
- target: $.paths['/api/fleet/epm/packages/{pkgName}/{pkgVersion}/kibana_assets'].post
update:
x-apievangelist-phrasing:
intent: Install a package's Kibana assets
effect: write
questions:
- How do I install an integration's dashboards and saved objects into additional Kibana spaces?
- Can I reinstall a package's Kibana assets by forcing it?
instructions:
- text: Install Kibana assets for {pkgName} {pkgVersion} into spaces {space_ids}.
slots:
pkgName: path.pkgName
pkgVersion: path.pkgVersion
space_ids: requestBody.space_ids
- text: Force reinstall the dashboards of {pkgName} {pkgVersion} with force {force}.
slots:
pkgName: path.pkgName
pkgVersion: path.pkgVersion
force: requestBody.force
method: generated
generated: '2026-09-26'
- target: $.paths['/api/fleet/epm/packages/{pkgName}/{pkgVersion}/kibana_assets'].delete
update:
x-apievangelist-phrasing:
intent: Remove a package's Kibana assets
effect: destructive
questions:
- Can I delete just the dashboards and visualizations an integration installed, keeping the package?
- How are an integration's Kibana saved objects removed from the current space?
instructions:
- text: Delete the Kibana assets installed by {pkgName} {pkgVersion}.
slots:
pkgName: path.pkgName
pkgVersion: path.pkgVersion
- text: Remove dashboards and saved objects of package {pkgName} version {pkgVersion}.
slots:
pkgName: path.pkgName
pkgVersion: path.pkgVersion
method: generated
generated: '2026-09-26'
- target: $.paths['/api/fleet/epm/packages/{pkgName}/{pkgVersion}/rule_assets'].post
update:
x-apievangelist-phrasing:
intent: Install a package's alerting rule assets
effect: write
questions:
- Can I install the alert rules that ship with an integration package?
- Is there a force flag to reinstall a package's Kibana alert rule templates?
instructions:
- text: Install the alerting rule assets from {pkgName} {pkgVersion}.
slots:
pkgName: path.pkgName
pkgVersion: path.pkgVersion
- text: Reinstall alert rules for {pkgName} {pkgVersion}, force {force}.
slots:
pkgName: path.pkgName
pkgVersion: path.pkgVersion
force: requestBody.force
method: generated
generated: '2026-09-26'
- target: $.paths['/api/fleet/epm/packages/{pkgName}/{pkgVersion}/transforms/authorize'].post
update:
x-apievangelist-phrasing:
intent: Authorize a package's transforms
effect: write
questions:
- How do I grant my credentials to the transforms an integration installed so they can run?
- Which transforms need reauthorizing after installing a package version?
instructions:
- text: Authorize transforms {transforms} for package {pkgName} {pkgVersion}.
slots:
transforms: requestBody.transforms
pkgName: path.pkgName
pkgVersion: path.pkgVersion
- text: Reauthorize the {pkgName} {pkgVersion} transforms listed in {transforms} with my current user.
slots:
transforms: requestBody.transforms
pkgName: path.pkgName
pkgVersion: path.pkgVersion
method: generated
generated: '2026-09-26'
- target: $.paths['/api/fleet/epm/packages/{pkgName}/review_upgrade'].post
update:
x-apievangelist-phrasing:
intent: Review a pending upgrade with deprecations
effect: write
questions:
- An integration upgrade is blocked by deprecations; how do I accept or decline it?
- Can I approve a pending policy upgrade to a specific target version?
instructions:
- text: Review the pending {pkgName} upgrade to {target_version} with action {action}.
slots:
pkgName: path.pkgName
target_version: requestBody.target_version
action: requestBody.action
- text: Accept the deprecation-flagged policy upgrade of {pkgName} to version {target_version}, action {action}.
slots:
pkgName: path.pkgName
target_version: requestBody.target_version
action: requestBody.action
method: generated
generated: '2026-09-26'
- target: $.paths['/api/fleet/epm/packages/{pkgName}/rollback'].post
update:
x-apievangelist-phrasing:
intent: Roll back one package to its previous version
effect: write
questions:
- Can I undo an upgrade of a single integration and go back to the prior version?
- What happens to package policies when I revert one package?
instructions:
- text: Roll back the {pkgName} integration to its previous version.
slots:
pkgName: path.pkgName
- text: Revert package {pkgName} after its last upgrade.
slots:
pkgName: path.pkgName
method: generated
generated: '2026-09-26'
- target: $.paths['/api/fleet/epm/packages/{pkgName}/stats'].get
update:
x-apievangelist-phrasing:
intent: Get usage stats for a package
effect: read
questions:
- How many agent policies are using a particular integration?
- Where do I see usage statistics for an installed package?
instructions:
- text: Show usage stats for package {pkgName}.
slots:
pkgName: path.pkgName
- text: Count how many policies use the {pkgName} integration.
slots:
pkgName: path.pkgName
method: generated
generated: '2026-09-26'
- target: $.paths['/api/fleet/epm/packages/installed'].get
update:
x-apievangelist-phrasing:
intent: List installed packages
effect: read
questions:
- Which integrations are currently installed in my deployment?
- Can I restrict the installed package list to ones with active data streams?
- Is there a way to search installed packages by name and page through them?
instructions:
- text: List installed packages whose name matches {nameQuery}.
slots:
nameQuery: query.nameQuery
- text: Show installed integrations with {dataStreamType} data streams, {perPage} per page.
slots:
dataStreamType: query.dataStreamType
perPage: query.perPage
method: generated
generated: '2026-09-26'
- target: $.paths['/api/fleet/epm/packages/limited'].get
update:
x-apievangelist-phrasing:
intent: List packages that cannot be removed
effect: read
questions:
- Which packages are limited, meaning they can't be uninstalled or removed from policies?
- What is on the limited package list in Fleet?
instructions:
- text: Get the limited package list.
- text: Show packages that are restricted from being uninstalled.
method: generated
generated: '2026-09-26'
- target: $.paths['/api/fleet/epm/templates/{pkgName}/{pkgVersion}/inputs'].get
update:
x-apievangelist-phrasing:
intent: Get a package's inputs template
effect: read
questions:
- Can I get a ready-to-edit inputs configuration template for an integration version?
- What formats can the inputs template be returned in, such as YAML or JSON?
instructions:
- text: Get the inputs template for {pkgName} {pkgVersion} in {format} format.
slots:
pkgName: path.pkgName
pkgVersion: path.pkgVersion
format: query.format
- text: Generate the agent inputs config template of package {pkgName} version {pkgVersion}.
slots:
pkgName: path.pkgName
pkgVersion: path.pkgVersion
method: generated
generated: '2026-09-26'
- target: $.paths['/api/fleet/epm/verification_key_id'].get
update:
x-apievangelist-phrasing:
intent: Get the package signing key ID
effect: read
questions:
- Which GPG key ID does Fleet use to verify integration package signatures?
- Can I check the key ID used for package signature verification?
instructions:
- text: Show the package signature verification key ID.
- text: Get the GPG key ID Fleet trusts for signed packages.
method: generated
generated: '2026-09-26'