openapi: 3.2.0 info: contact: name: Kibana Team description: 'The Kibana REST APIs enable you to manage resources such as connectors, data views, and saved objects. The API calls are stateless. Each request that you make happens in isolation from other calls and must include all of the necessary information for Kibana to fulfill the request. API requests return JSON output, which is a format that is machine-readable and works well for automation. To interact with Kibana APIs, use the following operations: - GET: Fetches the information. - PATCH: Applies partial modifications to the existing information. - POST: Adds new information. - PUT: Updates the existing information. - DELETE: Removes the information. You can prepend any Kibana API endpoint with `kbn:` and run the request in **Dev Tools → Console**. For example: ``` GET kbn:/api/data_views ``` For more information about the console, refer to [Run API requests](https://www.elastic.co/docs/explore-analyze/query-filter/tools/console). NOTE: Access to internal Kibana API endpoints will be restricted in Kibana version 9.0. Please move any integrations to publicly documented APIs. ## Documentation source and versions This documentation is derived from the `main` branch of the [kibana](https://github.com/elastic/kibana) repository. It is provided under license [Attribution-NonCommercial-NoDerivatives 4.0 International](https://creativecommons.org/licenses/by-nc-nd/4.0/). This documentation contains work-in-progress information for future Elastic Stack releases. ' title: Kibana Fleet managed integrations 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: - name: Fleet managed integrations paths: /api/fleet/managed_integrations: get: description: '**Spaces method and path for this operation:**
get /s/{space_id}/api/fleet/managed_integrations
Refer to [Spaces](https://www.elastic.co/docs/deploy-manage/manage-spaces) for more information. List managed integrations' operationId: get-fleet-managed-integrations parameters: - description: Page number. Defaults to `1`. in: query name: page required: false schema: type: number - description: Number of results per page. Defaults to `20`. in: query name: perPage required: false schema: type: number - description: Field to sort results by. Defaults to `updated_at`. in: query name: sortField required: false schema: maxLength: 256 type: string - description: Sort order, ascending or descending. Defaults to `desc`. in: query name: sortOrder required: false schema: enum: - desc - asc type: string - description: 'A KQL query string to filter results. Filtering is restricted to the following fields: `name`, `namespace`, `package.name`.' in: query name: kuery required: false schema: maxLength: 4096 type: string responses: '200': content: application/json: examples: listManagedIntegrationsResponseExample: description: Example response for listing managed integrations value: items: - created_at: '2025-11-06T18:27:43.541Z' created_by: test_user description: test id: d52a7812-5736-4fdc-aed8-72152afa1ffa inputs: ESS Billing-cel: enabled: true streams: ess_billing.billing: enabled: true ess_billing.credits: enabled: false vars: api_key: id: QY1sWpoBbWcMW-edr0Ee isSecretRef: true organization_id: '1234' url: https://billing.elastic-cloud.com name: ess_billing-1 namespace: default package: name: ess_billing title: Elasticsearch Service Billing version: 1.6.0 updated_at: '2025-11-06T18:27:43.541Z' updated_by: test_user - cloud_connector: cloud_connector_id: aws-connector-67890 enabled: true created_at: '2025-11-06T18:27:43.541Z' created_by: test_user description: CSPM integration for AWS with cloud connector id: aws-policy-12345 inputs: cspm-cloudbeat/cis_aws: enabled: true name: cspm-aws-policy namespace: default package: name: cloud_security_posture title: Cloud Security Posture Management version: 3.1.1 updated_at: '2025-11-06T18:27:43.541Z' updated_by: test_user vars: deployment: aws posture: cspm page: 1 perPage: 20 total: 2 schema: additionalProperties: false type: object properties: items: items: $ref: '#/components/schemas/Kibana_HTTP_APIs_managed_integration' maxItems: 10000 type: array page: type: number perPage: type: number total: type: number required: - items - total - page - perPage description: Indicates a successful response '400': content: application/json: examples: genericErrorResponseExample: description: Example of a generic error response value: error: Bad Request message: An error message describing what went wrong statusCode: 400 schema: additionalProperties: false description: Generic Error type: object properties: attributes: {} error: type: string errorType: type: string message: type: string statusCode: type: number required: - message - attributes description: Bad Request summary: Get managed integrations tags: - Fleet managed integrations x-state: Experimental; added in 9.5.0 x-metaTags: - content: Kibana name: product_name post: description: '**Spaces method and path for this operation:**
post /s/{space_id}/api/fleet/managed_integrations
Refer to [Spaces](https://www.elastic.co/docs/deploy-manage/manage-spaces) for more information. Create a managed integration' operationId: post-fleet-managed-integrations parameters: - description: A required header to protect against CSRF attacks in: header name: kbn-xsrf required: true schema: example: 'true' type: string requestBody: content: application/json: examples: createManagedIntegrationsRequestExample: description: Example request to create a managed integration value: description: test inputs: ESS Billing-cel: enabled: true streams: ess_billing.billing: enabled: true vars: hide_sensitive: true http_client_timeout: 30s lookbehind: 365 tags: - forwarded - billing ess_billing.credits: enabled: false vars: api_key: organization_id: '1234' name: ess_billing-1 namespace: default package: name: ess_billing version: 1.6.0 createManagedIntegrationsReuseAWSCloudConnectorExample: description: Example request to create a managed integration reusing an existing AWS cloud connector value: cloud_connector: cloud_connector_id: existing-aws-connector-id enabled: true target_csp: aws description: CSPM integration for AWS reusing existing cloud connector inputs: cspm-cloudbeat/cis_aws: enabled: true streams: cloud_security_posture.findings: enabled: true vars: aws.account_type: organization-account aws.credentials.type: cloud_connector aws.supports_cloud_connectors: true external_id: id: ABCDEFGHIJKLMNOPQRST isSecretRef: true role_arn: arn:aws:iam::123456789012:role/TestRole vars: cloud_formation_template: https://console.aws.amazon.com/cloudformation/home#/stacks/quickcreate?templateURL=https://elastic-cspm-cft.s3.eu-central-1.amazonaws.com/cloudformation-cspm-ACCOUNT_TYPE-9.2.0.yml cspm-cloudbeat/cis_azure: enabled: false cspm-cloudbeat/cis_gcp: enabled: false name: cspm-aws-reuse-policy namespace: default package: name: cloud_security_posture version: 3.1.1 vars: deployment: aws posture: cspm createManagedIntegrationsWithAWSCloudConnectorExample: description: Example request to create a managed integration with AWS cloud connector value: cloud_connector: enabled: true target_csp: aws description: CSPM integration for AWS with cloud connector inputs: cspm-cloudbeat/cis_aws: enabled: true streams: cloud_security_posture.findings: enabled: true vars: aws.account_type: organization-account aws.credentials.type: cloud_connector aws.supports_cloud_connectors: true external_id: id: ABCDEFGHIJKLMNOPQRST isSecretRef: true role_arn: arn:aws:iam::123456789012:role/TestRole vars: cloud_formation_template: https://console.aws.amazon.com/cloudformation/home#/stacks/quickcreate?templateURL=https://elastic-cspm-cft.s3.eu-central-1.amazonaws.com/cloudformation-cspm-ACCOUNT_TYPE-9.2.0.yml cspm-cloudbeat/cis_azure: enabled: false cspm-cloudbeat/cis_gcp: enabled: false name: cspm-aws-policy namespace: default package: name: cloud_security_posture version: 3.1.1 vars: deployment: aws posture: cspm createManagedIntegrationsWithAzureCloudConnectorExample: description: Example request to create a managed integration with Azure cloud connector value: cloud_connector: enabled: true target_csp: azure description: CSPM integration for Azure with cloud connector inputs: cspm-cloudbeat/cis_aws: enabled: false cspm-cloudbeat/cis_azure: enabled: true streams: cloud_security_posture.findings: enabled: true vars: azure_credentials_cloud_connector_id: type: text value: existing-azure-credentials-connector-id azure.account_type: organization-account client_id: id: client-secret-id isSecretRef: true tenant_id: id: tenant-secret-id isSecretRef: true cspm-cloudbeat/cis_gcp: enabled: false name: cspm-azure-policy namespace: default package: name: cloud_security_posture version: 3.1.1 vars: deployment: azure posture: cspm schema: $ref: '#/components/schemas/Kibana_HTTP_APIs_create_managed_integration_request' responses: '200': content: application/json: examples: createManagedIntegrationsResponseExample: description: Example response for creating a managed integration value: item: created_at: '2025-11-06T18:27:43.541Z' created_by: test_user description: test id: d52a7812-5736-4fdc-aed8-72152afa1ffa inputs: ESS Billing-cel: enabled: true streams: ess_billing.billing: enabled: true vars: hide_sensitive: true http_client_timeout: 30s lookbehind: 365 tags: - forwarded - billing ess_billing.credits: enabled: false vars: api_key: id: QY1sWpoBbWcMW-edr0Ee isSecretRef: true organization_id: '1234' url: https://billing.elastic-cloud.com name: ess_billing-1 namespace: default package: name: ess_billing title: Elasticsearch Service Billing version: 1.6.0 updated_at: '2025-11-06T18:27:43.541Z' updated_by: test_user createManagedIntegrationsWithAWSCloudConnectorResponseExample: description: Example response for AWS cloud connector integration value: item: cloud_connector: cloud_connector_id: aws-connector-67890 enabled: true created_at: '2025-11-06T18:27:43.541Z' created_by: test_user description: CSPM integration for AWS with cloud connector id: aws-policy-12345 inputs: cspm-cloudbeat/cis_aws: enabled: true streams: cloud_security_posture.findings: enabled: true vars: aws.account_type: organization-account aws.credentials.type: cloud_connector external_id: id: secret-external-id-123 isSecretRef: true role_arn: arn:aws:iam::123456789012:role/TestRole vars: cloud_formation_template: https://console.aws.amazon.com/cloudformation/home#/stacks/quickcreate?templateURL=https://elastic-cspm-cft.s3.eu-central-1.amazonaws.com/cloudformation-cspm-ACCOUNT_TYPE-9.2.0.yml cspm-cloudbeat/cis_azure: enabled: false cspm-cloudbeat/cis_gcp: enabled: false name: cspm-aws-policy namespace: default package: name: cloud_security_posture title: Cloud Security Posture Management version: 3.1.1 updated_at: '2025-11-06T18:27:43.541Z' updated_by: test_user vars: deployment: aws posture: cspm createManagedIntegrationsWithAzureCloudConnectorResponseExample: description: Example response for Azure cloud connector integration value: item: cloud_connector: cloud_connector_id: azure-connector-67890 enabled: true created_at: '2025-11-06T18:27:43.541Z' created_by: test_user description: CSPM integration for Azure with cloud connector id: azure-policy-12345 inputs: cspm-cloudbeat/cis_aws: enabled: false cspm-cloudbeat/cis_azure: enabled: true streams: cloud_security_posture.findings: enabled: true vars: azure_credentials_cloud_connector_id: type: text value: existing-azure-credentials-connector-id azure.account_type: organization-account client_id: id: client-secret-id-456 isSecretRef: true tenant_id: id: tenant-secret-id-123 isSecretRef: true cspm-cloudbeat/cis_gcp: enabled: false name: cspm-azure-policy namespace: default package: name: cloud_security_posture title: Cloud Security Posture Management version: 3.1.1 updated_at: '2025-11-06T18:27:43.541Z' updated_by: test_user vars: deployment: azure posture: cspm schema: $ref: '#/components/schemas/Kibana_HTTP_APIs_managed_integration_response' description: Indicates a successful response '400': content: application/json: examples: genericErrorResponseExample: description: Example of a generic error response value: error: Bad Request message: An error message describing what went wrong statusCode: 400 schema: additionalProperties: false description: Generic Error type: object properties: attributes: {} error: type: string errorType: type: string message: type: string statusCode: type: number required: - message - attributes description: Bad Request '409': content: application/json: examples: conflictErrorResponseExample: description: Example of a conflict error response value: error: Conflict message: An error message describing what went wrong statusCode: 409 schema: additionalProperties: false description: Generic Error type: object properties: attributes: {} error: type: string errorType: type: string message: type: string statusCode: type: number required: - message - attributes description: Conflict summary: Create a managed integration tags: - Fleet managed integrations x-state: Experimental; added in 9.3.0 x-metaTags: - content: Kibana name: product_name /api/fleet/managed_integrations/_upgrade: post: description: '**Spaces method and path for this operation:**
post /s/{space_id}/api/fleet/managed_integrations/_upgrade
Refer to [Spaces](https://www.elastic.co/docs/deploy-manage/manage-spaces) for more information. Upgrade multiple managed integrations to their installed package version, migrating each package policy''s config onto the new schema. Always returns 200 with a per-policy result array; a missing id, or an id that is not a managed integration, is reported as a per-item failure (`success: false` + `statusCode`) without failing the batch, so valid ids are still upgraded. A successful result means the policy''s saved object was upgraded, while the agentless deployment is reconciled asynchronously in the background. Policies already at the installed version are a genuine no-op: they still report `success: true` (calls stay idempotent) but nothing is re-persisted or redeployed. Note: agent-policy-level agentless settings (resources, ownership tags) are not re-derived from the new package version — use the update (PUT) endpoint for those.' operationId: post-fleet-managed-integrations-upgrade parameters: - description: A required header to protect against CSRF attacks in: header name: kbn-xsrf required: true schema: example: 'true' type: string requestBody: content: application/json: examples: upgradeManagedIntegrationsRequestExample: description: Bulk upgrade managed integrations to their installed package version value: policyIds: - d52a7812-5736-4fdc-aed8-72152afa1ffa - aws-policy-12345 schema: $ref: '#/components/schemas/Kibana_HTTP_APIs_bulk_upgrade_managed_integrations_request' responses: '200': content: application/json: examples: upgradeManagedIntegrationsPartialFailureResponseExample: description: Example response where one managed integration upgraded and another id was missing or not a managed integration (the batch still returns 200) value: - id: d52a7812-5736-4fdc-aed8-72152afa1ffa name: ess_billing-1 success: true - body: message: Agentless policy aws-policy-12345 not found id: aws-policy-12345 statusCode: 404 success: false upgradeManagedIntegrationsResponseExample: description: Example response where every policy was upgraded value: - id: d52a7812-5736-4fdc-aed8-72152afa1ffa name: ess_billing-1 success: true - id: aws-policy-12345 name: cspm-aws-policy success: true schema: items: $ref: '#/components/schemas/Kibana_HTTP_APIs_bulk_upgrade_managed_integration_result' maxItems: 10000 type: array description: 'Indicates a successful response. Each item reports the per-policy upgrade outcome; inspect every item''s `success` flag. A missing id, or an id that is not a managed integration, is reported as a per-item failure (`success: false` + `statusCode`) without failing the batch.' '400': content: application/json: examples: genericErrorResponseExample: description: Example of a generic error response value: error: Bad Request message: An error message describing what went wrong statusCode: 400 schema: additionalProperties: false description: Generic Error type: object properties: attributes: {} error: type: string errorType: type: string message: type: string statusCode: type: number required: - message - attributes description: Bad Request summary: Bulk upgrade managed integrations tags: - Fleet managed integrations x-state: Experimental; added in 9.5.0 x-metaTags: - content: Kibana name: product_name /api/fleet/managed_integrations/_upgrade/dryrun: post: description: '**Spaces method and path for this operation:**
post /s/{space_id}/api/fleet/managed_integrations/_upgrade/dryrun
Refer to [Spaces](https://www.elastic.co/docs/deploy-manage/manage-spaces) for more information. Preview upgrading multiple managed integrations without applying any change. Targets the installed package version by default; pass `pkgVersion` to preview a specific (for example, not-yet-installed) version. Each result returns the current/proposed version and any migration errors, plus — only on a clean dry-run (`hasErrors: false`) — the migrated `proposedPolicy`. `proposedPolicy` is for the edit-and-upgrade flow (edit it, then save via the update (PUT) endpoint); to apply an upgrade as-is, use `_upgrade`.' operationId: post-fleet-managed-integrations-upgrade-dryrun parameters: - description: A required header to protect against CSRF attacks in: header name: kbn-xsrf required: true schema: example: 'true' type: string requestBody: content: application/json: examples: upgradeManagedIntegrationsDryRunRequestExample: description: Preview the upgrade of managed integrations to their installed package version value: policyIds: - d52a7812-5736-4fdc-aed8-72152afa1ffa upgradeManagedIntegrationsDryRunTargetVersionRequestExample: description: Preview the upgrade against an explicit target package version (for example, before installing the new version). Defaults to the installed package version when omitted. value: pkgVersion: 1.6.0 policyIds: - d52a7812-5736-4fdc-aed8-72152afa1ffa schema: $ref: '#/components/schemas/Kibana_HTTP_APIs_managed_integration_upgrade_dry_run_request' responses: '200': content: application/json: examples: upgradeManagedIntegrationsDryRunMigrationErrorsExample: description: Example dry-run response where migrating the config to the new version produced errors. `hasErrors` is true and `errors` explains why; do not feed the (partial) proposed config into the update endpoint without resolving them. value: - currentVersion: 1.5.0 errors: - message: Variable "organization_id" is required hasErrors: true id: d52a7812-5736-4fdc-aed8-72152afa1ffa name: ess_billing-1 proposedVersion: 1.6.0 upgradeManagedIntegrationsDryRunMixedResponseExample: description: 'Example dry-run response for a mixed batch: one managed integration previews cleanly while two ids are missing or not managed integrations. Ids that are missing or not managed integrations are surfaced as per-item failures (`hasErrors: true` + `statusCode`) without failing the batch, and results stay in request order.' value: - currentVersion: 0.5.0 hasErrors: false id: 2e426392-f856-4ab2-bc31-92d4dbb8d134 name: agentless_hello_world-16 proposedPolicy: cloud_connector: null created_at: '2026-07-01T15:59:08.299Z' created_by: admin description: '' id: 2e426392-f856-4ab2-bc31-92d4dbb8d134 inputs: agentless_hello_world-cel: enabled: true streams: agentless_hello_world.generic: enabled: true vars: url: https://epr.elastic.co agentless_hello_world.mock_counter: enabled: false vars: events_per_second: 10 mode: constant spike_events: 100 spike_every_seconds: 60 agentless_hello_world-httpjson: enabled: false streams: agentless_hello_world.generic: enabled: false vars: url: https://epr.elastic.co name: agentless_hello_world-16 namespace: default package: name: agentless_hello_world title: Agentless Hello World version: 0.5.0 updated_at: '2026-07-01T16:02:14.067Z' updated_by: admin proposedVersion: 0.5.0 - body: message: Agentless policy 9300464c-6cfc-4566-850d-e9e7927457fe not found hasErrors: true id: 9300464c-6cfc-4566-850d-e9e7927457fe statusCode: 404 - body: message: Agentless policy 5b8763e9-791a-4038-be29-b384d578200e not found hasErrors: true id: 5b8763e9-791a-4038-be29-b384d578200e statusCode: 404 upgradeManagedIntegrationsDryRunResponseExample: description: 'Example clean dry-run response (`hasErrors: false`) with the proposed (migrated) policy. `proposedPolicy` is intended for the edit-and-upgrade flow: edit it and submit the edited payload to the update (PUT) endpoint. To apply without edits, use the `_upgrade` endpoint instead.' value: - currentVersion: 1.5.0 hasErrors: false id: d52a7812-5736-4fdc-aed8-72152afa1ffa name: ess_billing-1 proposedPolicy: created_at: '2025-11-06T18:27:43.541Z' created_by: test_user description: test id: d52a7812-5736-4fdc-aed8-72152afa1ffa inputs: ESS Billing-cel: enabled: true vars: organization_id: '1234' name: ess_billing-1 namespace: default package: name: ess_billing title: Elasticsearch Service Billing version: 1.6.0 updated_at: '2025-11-06T18:27:43.541Z' updated_by: test_user proposedVersion: 1.6.0 schema: items: $ref: '#/components/schemas/Kibana_HTTP_APIs_managed_integration_upgrade_dry_run_result' maxItems: 10000 type: array description: 'Indicates a successful response. Each clean item (`hasErrors: false`) previews the migrated policy as a consumable managed integration (`proposedPolicy`); a missing id, an id that is not a managed integration, or a migration error, is reported as a per-item failure (`hasErrors: true`, with `proposedPolicy` omitted) without failing the batch. Inspect every item.' '400': content: application/json: examples: genericErrorResponseExample: description: Example of a generic error response value: error: Bad Request message: An error message describing what went wrong statusCode: 400 schema: additionalProperties: false description: Generic Error type: object properties: attributes: {} error: type: string errorType: type: string message: type: string statusCode: type: number required: - message - attributes description: Bad Request summary: Preview a managed integrations upgrade tags: - Fleet managed integrations x-state: Experimental; added in 9.5.0 x-metaTags: - content: Kibana name: product_name /api/fleet/managed_integrations/{policyId}: delete: description: '**Spaces method and path for this operation:**
delete /s/{space_id}/api/fleet/managed_integrations/{policyId}
Refer to [Spaces](https://www.elastic.co/docs/deploy-manage/manage-spaces) for more information. Delete a managed integration' operationId: delete-fleet-managed-integrations-policyid parameters: - description: A required header to protect against CSRF attacks in: header name: kbn-xsrf required: true schema: example: 'true' type: string - description: The ID of the policy to delete. in: path name: policyId required: true schema: maxLength: 256 type: string - description: Force delete the policy even if the policy is managed. in: query name: force required: false schema: type: boolean responses: '200': content: application/json: examples: deleteManagedIntegrationsResponseExample: description: Example response for deleting a managed integration value: item: id: d52a7812-5736-4fdc-aed8-72152afa1ffa schema: additionalProperties: false description: Response for deleting a managed integration. type: object properties: id: description: The ID of the deleted managed integration. type: string required: - id description: Indicates a successful response '400': content: application/json: examples: genericErrorResponseExample: description: Example of a generic error response value: error: Bad Request message: An error message describing what went wrong statusCode: 400 schema: additionalProperties: false description: Generic Error type: object properties: attributes: {} error: type: string errorType: type: string message: type: string statusCode: type: number required: - message - attributes description: Bad Request '409': content: application/json: examples: conflictErrorResponseExample: description: Example of a conflict error response value: error: Conflict message: An error message describing what went wrong statusCode: 409 schema: additionalProperties: false description: Generic Error type: object properties: attributes: {} error: type: string errorType: type: string message: type: string statusCode: type: number required: - message - attributes description: Conflict summary: Delete a managed integration tags: - Fleet managed integrations x-state: Experimental; added in 9.3.0 x-metaTags: - content: Kibana name: product_name get: description: '**Spaces method and path for this operation:**
get /s/{space_id}/api/fleet/managed_integrations/{policyId}
Refer to [Spaces](https://www.elastic.co/docs/deploy-manage/manage-spaces) for more information. Get a managed integration by ID' operationId: get-fleet-managed-integrations-policyid parameters: - description: The ID of the managed integration to retrieve. in: path name: policyId required: true schema: maxLength: 256 type: string responses: '200': content: application/json: examples: getManagedIntegrationResponseExample: description: Example response for getting a managed integration by ID value: item: created_at: '2025-11-06T18:27:43.541Z' created_by: test_user description: test id: d52a7812-5736-4fdc-aed8-72152afa1ffa inputs: ESS Billing-cel: enabled: true streams: ess_billing.billing: enabled: true vars: hide_sensitive: true http_client_timeout: 30s lookbehind: 365 tags: - forwarded - billing ess_billing.credits: enabled: false vars: api_key: id: QY1sWpoBbWcMW-edr0Ee isSecretRef: true organization_id: '1234' url: https://billing.elastic-cloud.com name: ess_billing-1 namespace: default package: name: ess_billing title: Elasticsearch Service Billing version: 1.6.0 updated_at: '2025-11-06T18:27:43.541Z' updated_by: test_user schema: $ref: '#/components/schemas/Kibana_HTTP_APIs_managed_integration_response' description: Indicates a successful response '400': content: application/json: examples: genericErrorResponseExample: description: Example of a generic error response value: error: Bad Request message: An error message describing what went wrong statusCode: 400 schema: additionalProperties: false description: Generic Error type: object properties: attributes: {} error: type: string errorType: type: string message: type: string statusCode: type: number required: - message - attributes description: Bad Request '404': content: application/json: examples: notFoundErrorResponseExample: description: Example of a not found error response value: message: Agentless policy d52a7812-5736-4fdc-aed8-72152afa1ffa not found schema: additionalProperties: false type: object properties: message: type: string required: - message description: Not Found summary: Get a managed integration tags: - Fleet managed integrations x-state: Experimental; added in 9.5.0 x-metaTags: - content: Kibana name: product_name put: description: '**Spaces method and path for this operation:**
put /s/{space_id}/api/fleet/managed_integrations/{policyId}
Refer to [Spaces](https://www.elastic.co/docs/deploy-manage/manage-spaces) for more information. Update a managed integration by ID. Uses full-replace semantics: the policy is rebuilt entirely from the request body, so any omitted optional field (for example, `description`, `vars`, `global_data_tags`, `cloud_connector`) is cleared or reset to its default. The integration package name is immutable and the runtime-managed `cluster_id` is preserved from the existing policy.' operationId: put-fleet-managed-integrations-policyid parameters: - description: A required header to protect against CSRF attacks in: header name: kbn-xsrf required: true schema: example: 'true' type: string - description: The ID of the managed integration to update. in: path name: policyId required: true schema: maxLength: 256 type: string requestBody: content: application/json: examples: updateManagedIntegrationAttachAWSCloudConnectorRequestExample: description: Example request to attach an AWS cloud connector to a managed integration on update. Because `PUT` is full-replace, the `cloud_connector` block must be present on every subsequent update or the connector is detached. value: cloud_connector: enabled: true target_csp: aws description: CSPM integration for AWS with cloud connector inputs: cspm-cloudbeat/cis_aws: enabled: true streams: cloud_security_posture.findings: enabled: true vars: aws.account_type: organization-account aws.credentials.type: cloud_connector aws.supports_cloud_connectors: true external_id: id: ABCDEFGHIJKLMNOPQRST isSecretRef: true role_arn: arn:aws:iam::123456789012:role/TestRole vars: cloud_formation_template: https://console.aws.amazon.com/cloudformation/home#/stacks/quickcreate?templateURL=https://elastic-cspm-cft.s3.eu-central-1.amazonaws.com/cloudformation-cspm-ACCOUNT_TYPE-9.2.0.yml cspm-cloudbeat/cis_azure: enabled: false cspm-cloudbeat/cis_gcp: enabled: false name: cspm-aws-policy namespace: default package: name: cloud_security_posture version: 3.1.1 vars: deployment: aws posture: cspm updateManagedIntegrationClearFieldsRequestExample: description: Example showing full-replace clearing semantics. Compared to the prior state, this request omits `description` (clearing it) and provides only the minimal required fields. Any optional field not present in the body (for example, `description`, `vars`, `global_data_tags`, `cloud_connector`) is dropped from the resulting policy. value: inputs: ESS Billing-cel: enabled: true streams: ess_billing.billing: enabled: true ess_billing.credits: enabled: true vars: api_key: organization_id: '1234' name: ess_billing-1 namespace: default package: name: ess_billing version: 1.6.0 updateManagedIntegrationRequestExample: description: 'Example request to update a managed integration. `PUT` uses full-replace semantics: the policy is rebuilt entirely from this body, so any omitted optional field is cleared or reset to its default rather than preserved. For example, omitting `description` clears it, omitting `vars` or `global_data_tags` removes them, and omitting `cloud_connector` detaches any previously attached connector. Detaching or swapping a cloud connector only removes the reference; the connector itself is not deleted, as connectors have an independent, shareable lifecycle and are managed through the cloud connector API. Two fields are exceptions that cannot be changed using `PUT`: the integration `package.name` is immutable, and the runtime-managed `cluster_id` is preserved from the existing agent policy.' value: description: updated description inputs: ESS Billing-cel: enabled: true streams: ess_billing.billing: enabled: true vars: hide_sensitive: true http_client_timeout: 30s lookbehind: 180 tags: - forwarded - billing ess_billing.credits: enabled: true vars: api_key: organization_id: '1234' name: ess_billing-1 namespace: default package: name: ess_billing version: 1.6.0 updateManagedIntegrationReuseAWSCloudConnectorRequestExample: description: Example request to update a managed integration reusing an existing AWS cloud connector by ID instead of creating a new one. value: cloud_connector: cloud_connector_id: existing-aws-connector-id enabled: true target_csp: aws description: CSPM integration for AWS reusing existing cloud connector inputs: cspm-cloudbeat/cis_aws: enabled: true streams: cloud_security_posture.findings: enabled: true vars: aws.account_type: organization-account aws.credentials.type: cloud_connector aws.supports_cloud_connectors: true external_id: id: ABCDEFGHIJKLMNOPQRST isSecretRef: true role_arn: arn:aws:iam::123456789012:role/TestRole vars: cloud_formation_template: https://console.aws.amazon.com/cloudformation/home#/stacks/quickcreate?templateURL=https://elastic-cspm-cft.s3.eu-central-1.amazonaws.com/cloudformation-cspm-ACCOUNT_TYPE-9.2.0.yml cspm-cloudbeat/cis_azure: enabled: false cspm-cloudbeat/cis_gcp: enabled: false name: cspm-aws-policy namespace: default package: name: cloud_security_posture version: 3.1.1 vars: deployment: aws posture: cspm updateManagedIntegrationVersionChangeRequestExample: description: Example request to update a managed integration to a different package version. The package name is immutable, but the version may change. value: description: bumped to a newer package version inputs: ESS Billing-cel: enabled: true streams: ess_billing.billing: enabled: true ess_billing.credits: enabled: false vars: api_key: organization_id: '1234' name: ess_billing-1 namespace: default package: name: ess_billing version: 1.7.0 schema: $ref: '#/components/schemas/Kibana_HTTP_APIs_create_managed_integration_request' responses: '200': content: application/json: examples: updateManagedIntegrationResponseExample: description: Example response for updating a managed integration value: item: created_at: '2025-11-06T18:27:43.541Z' created_by: test_user description: updated description id: d52a7812-5736-4fdc-aed8-72152afa1ffa inputs: ESS Billing-cel: enabled: true streams: ess_billing.billing: enabled: true vars: hide_sensitive: true http_client_timeout: 30s lookbehind: 180 tags: - forwarded - billing ess_billing.credits: enabled: true vars: api_key: id: QY1sWpoBbWcMW-edr0Ee isSecretRef: true organization_id: '1234' url: https://billing.elastic-cloud.com name: ess_billing-1 namespace: default package: name: ess_billing title: Elasticsearch Service Billing version: 1.6.0 updated_at: '2025-11-07T09:14:02.118Z' updated_by: test_user updateManagedIntegrationWithAWSCloudConnectorResponseExample: description: Example response after attaching an AWS cloud connector on update value: item: cloud_connector: cloud_connector_id: aws-connector-67890 enabled: true created_at: '2025-11-06T18:27:43.541Z' created_by: test_user description: CSPM integration for AWS with cloud connector id: aws-policy-12345 inputs: cspm-cloudbeat/cis_aws: enabled: true streams: cloud_security_posture.findings: enabled: true vars: aws.account_type: organization-account aws.credentials.type: cloud_connector external_id: id: secret-external-id-123 isSecretRef: true role_arn: arn:aws:iam::123456789012:role/TestRole vars: cloud_formation_template: https://console.aws.amazon.com/cloudformation/home#/stacks/quickcreate?templateURL=https://elastic-cspm-cft.s3.eu-central-1.amazonaws.com/cloudformation-cspm-ACCOUNT_TYPE-9.2.0.yml cspm-cloudbeat/cis_azure: enabled: false cspm-cloudbeat/cis_gcp: enabled: false name: cspm-aws-policy namespace: default package: name: cloud_security_posture title: Cloud Security Posture Management version: 3.1.1 updated_at: '2025-11-07T09:14:02.118Z' updated_by: test_user vars: deployment: aws posture: cspm schema: $ref: '#/components/schemas/Kibana_HTTP_APIs_managed_integration_response' description: Indicates a successful response '400': content: application/json: examples: genericErrorResponseExample: description: Example of a generic error response value: error: Bad Request message: An error message describing what went wrong statusCode: 400 packageNameChangeErrorResponseExample: description: The integration package name cannot be changed on update value: error: Bad Request message: Cannot change the integration package of an agentless policy (from "ess_billing" to "cloud_security_posture"). statusCode: 400 schema: additionalProperties: false description: Generic Error type: object properties: attributes: {} error: type: string errorType: type: string message: type: string statusCode: type: number required: - message - attributes description: Bad Request '404': content: application/json: examples: notFoundErrorResponseExample: description: Example of a not found error response value: message: Agentless policy d52a7812-5736-4fdc-aed8-72152afa1ffa not found schema: additionalProperties: false type: object properties: message: type: string required: - message description: Not Found '409': content: application/json: examples: conflictErrorResponseExample: description: Example of a name-conflict error response value: error: Conflict message: An integration policy with the name my-agentless-policy already exists. Please rename it or choose a different name. statusCode: 409 schema: additionalProperties: false description: Generic Error type: object properties: attributes: {} error: type: string errorType: type: string message: type: string statusCode: type: number required: - message - attributes description: Conflict — for example, the requested name is already used by another integration policy. summary: Update a managed integration tags: - Fleet managed integrations x-state: Experimental; added in 9.5.0 x-metaTags: - content: Kibana name: product_name components: schemas: Kibana_HTTP_APIs_managed_integration_upgrade_dry_run_request: additionalProperties: false properties: pkgVersion: description: Target package version to preview the upgrade against. Defaults to the installed package version. maxLength: 256 type: string policyIds: description: IDs of the managed integrations to preview upgrading. items: maxLength: 256 type: string maxItems: 1000 type: array required: - policyIds title: managed_integration_upgrade_dry_run_request type: object Kibana_HTTP_APIs_managed_integration_package: additionalProperties: false properties: name: description: Integration package name. maxLength: 255 type: string title: description: Integration package display title. maxLength: 255 type: string version: description: Integration package version. maxLength: 50 type: string required: - name - title - version title: managed_integration_package type: object Kibana_HTTP_APIs_simplified_package_policy_stream_deprecation_info: additionalProperties: false properties: description: maxLength: 4096 type: string replaced_by: additionalProperties: maxLength: 1024 type: string type: object since: maxLength: 50 type: string required: - description title: simplified_package_policy_stream_deprecation_info type: object Kibana_HTTP_APIs_bulk_upgrade_managed_integrations_request: additionalProperties: false properties: policyIds: description: IDs of the managed integrations to upgrade to their installed package version. items: maxLength: 256 type: string maxItems: 1000 type: array required: - policyIds title: bulk_upgrade_managed_integrations_request type: object Kibana_HTTP_APIs_create_managed_integration_request: additionalProperties: false properties: additional_datastreams_permissions: description: Additional data stream permissions that will be added to the agent policy. items: maxLength: 256 type: string maxItems: 100 type: - array - 'null' cloud_connector: additionalProperties: false type: - object - 'null' properties: cloud_connector_id: description: 'ID of an existing cloud connector to reuse. If not provided, a new connector is created. Requires `enabled: true` and cannot be combined with `name`.' maxLength: 256 type: string enabled: default: false description: Set to `true` to attach a cloud connector to this policy. Must be `true` to set any of `cloud_connector_id`, `name`, or `target_csp`. type: boolean name: description: 'Name for a new cloud connector. If not provided, a name is generated automatically from the credentials. Requires `enabled: true` and only applies when creating a new connector (cannot be combined with `cloud_connector_id`).' maxLength: 255 minLength: 1 type: string target_csp: description: 'Target cloud service provider. If not provided, the provider is detected automatically from the inputs. Requires `enabled: true`.' enum: - aws - azure - gcp type: string create_dataset_templates: description: When true, install dedicated index templates for streams with a custom data_stream.dataset. Defaults to true for input packages, false for integration packages. type: boolean description: description: Policy description. maxLength: 2048 type: string force: description: Force package policy creation even if the package is not verified, or if the agent policy is managed. type: boolean global_data_tags: items: additionalProperties: false type: object properties: name: description: Name of the custom field. The name cannot contain spaces. maxLength: 1024 type: string value: anyOf: - maxLength: 1024 type: string - type: number description: Value of the custom field. required: - name - value maxItems: 100 type: array id: description: Policy unique identifier. maxLength: 255 type: string inputs: additionalProperties: additionalProperties: false type: object properties: condition: description: Agent condition expression to evaluate whether to apply this input. maxLength: 10000 type: - string - 'null' deprecated: $ref: '#/components/schemas/Kibana_HTTP_APIs_simplified_package_policy_input_deprecation_info' enabled: description: Enable or disable that input. Defaults to `true` (enabled). type: boolean streams: additionalProperties: additionalProperties: false type: object properties: condition: description: Agent condition expression to evaluate whether to apply this stream. maxLength: 10000 type: - string - 'null' deprecated: $ref: '#/components/schemas/Kibana_HTTP_APIs_simplified_package_policy_stream_deprecation_info' enabled: description: Enable or disable that stream. Defaults to `true` (enabled). type: boolean var_group_selections: additionalProperties: maxLength: 1024 type: string description: Variable group selections. Maps var_group name to the selected option name within that group. type: object vars: additionalProperties: anyOf: - maxLength: 10000 type: string - type: number - type: boolean - items: maxLength: 10000 type: string maxItems: 100 type: array - items: type: number maxItems: 100 type: array - additionalProperties: false type: object properties: id: maxLength: 255 type: string isSecretRef: type: boolean required: - id - isSecretRef default: null description: Input/stream level variable. Refer to the integration documentation for more information. type: object description: Input streams. Refer to the integration documentation to know which streams are available. type: object vars: additionalProperties: anyOf: - maxLength: 10000 type: string - type: number - type: boolean - items: maxLength: 10000 type: string maxItems: 100 type: array - items: type: number maxItems: 100 type: array - additionalProperties: false type: object properties: id: maxLength: 255 type: string isSecretRef: type: boolean required: - id - isSecretRef default: null description: Input/stream level variable. Refer to the integration documentation for more information. type: object description: Package policy inputs. Refer to the integration documentation to know which inputs are available. type: object name: description: Unique name for the policy. maxLength: 255 type: string namespace: description: Policy namespace. When not specified, it inherits the agent policy namespace. maxLength: 100 type: string package: $ref: '#/components/schemas/Kibana_HTTP_APIs_package_policy_package' policy_template: description: The policy template to use for the managed integration. If not provided, the default policy template is used. maxLength: 256 type: string var_group_selections: additionalProperties: maxLength: 1024 type: string description: Variable group selections. Maps var_group name to the selected option name within that group. type: object vars: additionalProperties: anyOf: - maxLength: 10000 type: string - type: number - type: boolean - items: maxLength: 10000 type: string maxItems: 100 type: array - items: type: number maxItems: 100 type: array - additionalProperties: false type: object properties: id: maxLength: 255 type: string isSecretRef: type: boolean required: - id - isSecretRef default: null description: Input/stream level variable. Refer to the integration documentation for more information. type: object required: - name - package title: create_managed_integration_request type: object Kibana_HTTP_APIs_managed_integration_upgrade_dry_run_result: additionalProperties: false properties: body: additionalProperties: false type: object properties: message: description: Error message when the dry-run failed for this policy. maxLength: 4096 type: string required: - message currentVersion: description: The current installed package version of the policy. maxLength: 256 type: string errors: description: Migration errors encountered while computing the upgrade. items: additionalProperties: false type: object properties: message: description: Human-readable migration error. maxLength: 4096 type: string required: - message maxItems: 1000 type: array hasErrors: description: Whether the dry-run migration produced any errors. type: boolean id: description: The ID of the managed integration. maxLength: 256 type: string name: description: The name of the managed integration. maxLength: 256 type: string proposedPolicy: $ref: '#/components/schemas/Kibana_HTTP_APIs_managed_integration' proposedVersion: description: The package version the policy would be upgraded to. maxLength: 256 type: string statusCode: description: HTTP-like status code when the dry-run failed for this policy. type: number required: - id - hasErrors title: managed_integration_upgrade_dry_run_result type: object Kibana_HTTP_APIs_managed_integration_cloud_connector: additionalProperties: false properties: cloud_connector_id: description: The ID of the cloud connector. maxLength: 255 type: string enabled: description: Whether the cloud connector is active for this policy. type: boolean required: - enabled - cloud_connector_id title: managed_integration_cloud_connector type: object Kibana_HTTP_APIs_package_policy_package: additionalProperties: false properties: experimental_data_stream_features: items: additionalProperties: false type: object properties: data_stream: maxLength: 1024 type: string features: additionalProperties: false type: object properties: doc_value_only_numeric: type: boolean doc_value_only_other: type: boolean synthetic_source: type: boolean tsdb: type: boolean required: - data_stream - features maxItems: 100 type: array fips_compatible: type: boolean name: description: Package name maxLength: 255 type: string requires_root: type: boolean title: maxLength: 255 type: string version: description: Package version maxLength: 50 type: string required: - name - version title: package_policy_package type: object Kibana_HTTP_APIs_simplified_package_policy_input_deprecation_info: additionalProperties: false properties: description: maxLength: 4096 type: string replaced_by: additionalProperties: maxLength: 1024 type: string type: object since: maxLength: 50 type: string required: - description title: simplified_package_policy_input_deprecation_info type: object Kibana_HTTP_APIs_managed_integration: additionalProperties: false properties: additional_datastreams_permissions: description: Additional data stream permissions granted to the managed integration. items: maxLength: 256 type: string maxItems: 1000 type: array cloud_connector: allOf: - $ref: '#/components/schemas/Kibana_HTTP_APIs_managed_integration_cloud_connector' created_at: description: Creation timestamp (ISO 8601). maxLength: 64 type: string created_by: description: User who created the policy. maxLength: 1024 type: string description: description: Managed integration description. maxLength: 2048 type: string global_data_tags: description: Custom data tags applied to all data produced by this policy. items: additionalProperties: false type: object properties: name: description: The name of the custom field. maxLength: 1024 type: string value: anyOf: - maxLength: 1024 type: string - type: number description: The value of the custom field. required: - name - value maxItems: 100 type: array id: description: Managed integration unique identifier. maxLength: 255 type: string inputs: additionalProperties: additionalProperties: false type: object properties: condition: description: Agent condition expression to evaluate whether to apply this input. maxLength: 10000 type: - string - 'null' deprecated: $ref: '#/components/schemas/Kibana_HTTP_APIs_simplified_package_policy_input_deprecation_info' enabled: description: Enable or disable that input. Defaults to `true` (enabled). type: boolean streams: additionalProperties: additionalProperties: false type: object properties: condition: description: Agent condition expression to evaluate whether to apply this stream. maxLength: 10000 type: - string - 'null' deprecated: $ref: '#/components/schemas/Kibana_HTTP_APIs_simplified_package_policy_stream_deprecation_info' enabled: description: Enable or disable that stream. Defaults to `true` (enabled). type: boolean var_group_selections: additionalProperties: maxLength: 1024 type: string description: Variable group selections. Maps var_group name to the selected option name within that group. type: object vars: additionalProperties: anyOf: - maxLength: 10000 type: string - type: number - type: boolean - items: maxLength: 10000 type: string maxItems: 100 type: array - items: type: number maxItems: 100 type: array - additionalProperties: false type: object properties: id: maxLength: 255 type: string isSecretRef: type: boolean required: - id - isSecretRef default: null description: Input/stream level variable. Refer to the integration documentation for more information. type: object description: Input streams. Refer to the integration documentation to know which streams are available. type: object vars: additionalProperties: anyOf: - maxLength: 10000 type: string - type: number - type: boolean - items: maxLength: 10000 type: string maxItems: 100 type: array - items: type: number maxItems: 100 type: array - additionalProperties: false type: object properties: id: maxLength: 255 type: string isSecretRef: type: boolean required: - id - isSecretRef default: null description: Input/stream level variable. Refer to the integration documentation for more information. type: object description: Package policy inputs. Refer to the integration documentation to know which inputs are available. type: object name: description: Managed integration name. maxLength: 255 type: string namespace: description: Policy namespace. Defaults to the agent policy namespace. maxLength: 100 type: string package: $ref: '#/components/schemas/Kibana_HTTP_APIs_managed_integration_package' updated_at: description: Last update timestamp (ISO 8601). maxLength: 64 type: string updated_by: description: User who last updated the policy. maxLength: 1024 type: string var_group_selections: additionalProperties: maxLength: 1024 type: string description: Variable group selections. Maps var_group name to the selected option name within that group. type: object vars: additionalProperties: anyOf: - maxLength: 10000 type: string - type: number - type: boolean - items: maxLength: 10000 type: string maxItems: 100 type: array - items: type: number maxItems: 100 type: array - additionalProperties: false type: object properties: id: maxLength: 255 type: string isSecretRef: type: boolean required: - id - isSecretRef default: null description: Input/stream level variable. Refer to the integration documentation for more information. type: object required: - id - name - package - inputs - created_at - created_by - updated_at - updated_by title: managed_integration type: object Kibana_HTTP_APIs_bulk_upgrade_managed_integration_result: additionalProperties: false properties: body: additionalProperties: false type: object properties: message: description: Error message when the upgrade failed for this policy. maxLength: 4096 type: string required: - message id: description: The ID of the managed integration. maxLength: 256 type: string name: description: The name of the managed integration. maxLength: 256 type: string statusCode: description: HTTP-like status code when the upgrade failed for this policy. type: number success: description: Whether the policy's saved object was upgraded successfully. The live workload is reconciled asynchronously in the background. type: boolean required: - id - success title: bulk_upgrade_managed_integration_result type: object Kibana_HTTP_APIs_managed_integration_response: additionalProperties: false properties: item: $ref: '#/components/schemas/Kibana_HTTP_APIs_managed_integration' required: - item title: managed_integration_response type: object 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"