---
type: api
title: Update cloud onboarding deployment
description: **Spaces method and path for this operation:**
url: https://www.elastic.co/elastic/docs-builder/docs/4371/api/doc/kibana-serverless/operation/operation-put-fleet-cloud-onboarding-deployments-id
resource: https://www.elastic.co/elastic/docs-builder/docs/4371/api/doc/kibana-serverless/operation/operation-put-fleet-cloud-onboarding-deployments-id
products:
  - Kibana
---

# Update cloud onboarding deployment

Availability:

- Server: `https://{kibana_url}`

## Paths

- `PUT` `/api/fleet/cloud_onboarding_deployments/{id}`
- `PUT` `/s/{space_id}/api/fleet/cloud_onboarding_deployments/{id}`

- [Api key auth](/elastic/docs-builder/docs/4371/api/doc/kibana-serverless/authentication#apikeyauth)

#### Path Parameters

- `id` (string · max: 255)
  The saved object ID of the cloud onboarding deployment.

## Description

Refer to [Spaces](https://www.elastic.co/docs/deploy-manage/manage-spaces) for more information.

Update a cloud onboarding deployment by ID.<br/><br/>[Required authorization] Route required privileges: fleet-agent-policies-all OR integrations-all.

## Request Body

`application/json`

- `agentPolicyIds` ([] string · max: 1000) — optional
  Agent policy IDs for agent_based deployments. Single-element for new-policy deploys; multiple for existing-policy deploys targeting several policies.
- `apiKeyId` (string · max: 255) — optional
- `attemptCount` (number · min: 1) — optional
  Incremented by callers performing a retry.
- `authMethod` (enum) — optional — nullable
  Authentication method. Refreshed on each successful deploy so a credential-method change between deploys is reflected on resume.
  Values: `identity_federation`, `static_keys`, `temporary_keys`, `shared_credentials`, `assume_role`, `null`
- `connectorId` (string · max: 255) — optional — nullable
- `deploymentId` (string · max: 2048) — optional
  CFN stack ARN (or equivalent); provided by the client after manual deployment.
- `deploymentName` (string · max: 255) — optional
- `ecfStacks` ([] object · max: 10) — optional
  ECF CloudFormation stacks to record for this deployment.
  - `family` (enum) — required
    ECF template family.
    Values: `unified`, `otel`, `crowdstrike`
  - `stackName` (string · min: 1 · max: 128) — required
    CloudFormation stack name (128-char AWS limit).
  - `templateVersion` (string · min: 1 · max: 32) — required
    ECF semantic version resolved at launch time, e.g. "1.10.0".
- `mechanisms` ([] enum  · max: 10) — optional
  Delivery mechanisms active in this deployment. Replaces the stored mechanisms array.
  Values: `managed_integration`, `ecf`, `agent_based`
- `packagePolicyIds` ([] string · max: 1000) — optional
  Package policy IDs created for this deployment (managed_integration and agent_based).
- `policyIdsByInstance` (map string to string) — optional
- `services` ([] string · min: 1 · max: 1000) — optional
  Current service set for this deployment. Refreshed on each successful deploy so resume after an incremental service addition restores all deployed services.
- `serviceVars` (map string to string to object) — optional
  Per-service config keyed by instance ID.
- `status` (enum) — optional
  Deployment status.
  Values: `pending`, `deploying`, `succeeded`, `failed`
- `statusMessage` (string · max: 1000) — optional
  Error context; set when transitioning to failed.

## Responses

#### `200`

Successful response

`application/json`

- `item` (object)
  - `agentPolicyIds` ([] string · max: 1000)
    Agent policy IDs for agent_based deployments. Single-element for new-policy deploys; multiple for existing-policy deploys targeting several policies.
  - `apiKeyId` (string)
    Elasticsearch API key ID for push mechanisms (ecf). Set by the backend; used for key rotation/revocation.
  - `attemptCount` (number · min: 1)
    Number of deployment attempts, including the current one.
  - `authMethod` (enum)
    Authentication method. Allowed values depend on the delivery mechanism:

- managed_integration: identity_federation | static_keys
- agent_based: static_keys (direct_access_keys) | temporary_keys | shared_credentials | assume_role
    Values: `identity_federation`, `static_keys`, `temporary_keys`, `shared_credentials`, `assume_role`
  - `connectorId` (string)
    ID of the fleet-cloud-connector this deployment belongs to. Absent for static-keys deployments.
  - `dataFormat` (enum)
    Data format: ecs or otel.
    Values: `ecs`, `otel`
  - `deploymentId` (string)
    Opaque deployment identifier; for AWS, the CFN stack ARN.
  - `deploymentName` (string)
    Opaque deployment name; for AWS, the CFN stack name.
  - `ecfStacks` ([] object · max: 10)
    ECF CloudFormation stacks launched as part of this deployment. Written by the wizard after the user clicks Launch.
    - `family` (enum)
      ECF template family.
      Values: `unified`, `otel`, `crowdstrike`
    - `stackName` (string · min: 1 · max: 128)
      CloudFormation stack name (128-char AWS limit).
    - `templateVersion` (string · min: 1 · max: 32)
      ECF semantic version resolved at launch time, e.g. "1.10.0".
  - `globalRegion` (string)
    Global AWS region from the Service Settings step.
  - `id` (string)
  - `mechanisms` ([] enum  · max: 10)
    Values: `managed_integration`, `ecf`, `agent_based`
  - `packagePolicyIds` ([] string · max: 1000)
    Package policy IDs created for this deployment (managed_integration and agent_based).
  - `policyIdsByInstance` (map string to string)
    instanceId → policyId mapping persisted after deploy. Hydrated into the wizard on resume to enable cleanup of stale policies when services are removed.
  - `provider` (enum)
    Cloud provider.
    Values: `aws`, `azure`, `gcp`
  - `services` ([] string · max: 1000)
    Service IDs covered by this deployment.
  - `serviceVars` (map string to string to object)
    Per-service config keyed by instance ID. Each value is the ServiceVars object from the Service Settings step.
  - `status` (enum)
    Deployment status.
    Values: `pending`, `deploying`, `succeeded`, `failed`
  - `statusMessage` (string)
    Error context when status is failed.
#### `400`

Bad Request

`application/json`

- `attributes` (object)
- `error` (string)
- `errorType` (string)
- `message` (string)
- `statusCode` (number)
#### `404`

Not Found

`application/json`

- `message` (string)
## Code Examples

#### Console

```console
PUT /api/fleet/cloud_onboarding_deployments/{id}
{
  "deploymentId": "arn:aws:cloudformation:us-east-1:123456789012:stack/elastic-aws-onboarding/aaa-bbb-ccc",
  "deploymentName": "elastic-aws-onboarding",
  "status": "deploying"
}
```

#### curl

```curl
curl -X PUT "https://{kibana_url}/api/fleet/cloud_onboarding_deployments/{id}" \
  -H "kbn-xsrf: true" \
  -H "Content-Type: application/json" \
  -d '{
  "deploymentId": "arn:aws:cloudformation:us-east-1:123456789012:stack/elastic-aws-onboarding/aaa-bbb-ccc",
  "deploymentName": "elastic-aws-onboarding",
  "status": "deploying"
}'
```

## Response Examples

#### Put cloud onboarding deployment

The updated cloud onboarding deployment

```json
{
  "item": {
    "agentPolicyIds": [
      "agent-policy-id-1"
    ],
    "attemptCount": 1,
    "connectorId": "cloud-connector-id-1",
    "deploymentId": "arn:aws:cloudformation:us-east-1:123456789012:stack/elastic-aws-onboarding/aaa-bbb-ccc",
    "deploymentName": "elastic-aws-onboarding",
    "id": "onboarding-deployment-id-1",
    "mechanisms": [
      "managed_integration"
    ],
    "packagePolicyIds": [
      "package-policy-id-1"
    ],
    "provider": "aws",
    "services": [
      "cloudwatch_metrics",
      "cloudtrail"
    ],
    "status": "deploying"
  }
}
```

#### Generic error response

Example of a generic error response

```json
{
  "error": "Bad Request",
  "message": "An error message describing what went wrong",
  "statusCode": 400
}
```

#### Not found response

The requested cloud onboarding deployment does not exist

```json
{
  "error": "Not Found",
  "message": "Saved object [fleet-cloud-onboarding-deployment/unknown-id] not found",
  "statusCode": 404
}
```

