---
type: api
title: Update cloud onboarding deployment
description: Update a cloud onboarding deployment by ID.<br/><br/>[Required authorization] Route required privileges: fleet-agent-policies-all OR integrations-all.
url: https://www.elastic.co/elastic/docs-builder/docs/4371/api/doc/kibana/v0/operation/operation-put-fleet-cloud-onboarding-deployments-id
resource: https://www.elastic.co/elastic/docs-builder/docs/4371/api/doc/kibana/v0/operation/operation-put-fleet-cloud-onboarding-deployments-id
products:
  - Kibana
---

# Update cloud onboarding deployment

Availability: 9.5+

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

## Paths

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

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

#### Path Parameters

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

## Description

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`

- `agentPolicyId` (string · max: 255) — optional
- `apiKeyId` (string · max: 255) — optional
- `attemptCount` (number · min: 1) — optional
  Incremented by callers performing a retry.
- `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".
- `packagePolicyIds` ([] string · max: 100) — optional
- `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)
  - `agentPolicyId` (string)
    Agent policy ID created for agent-based deployments. Present only when agent_based is in mechanisms.
  - `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 for managed integrations.
    Values: `identity_federation`, `static_keys`
  - `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: 100)
    Package policy IDs created for managed_integration services.
  - `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": {
    "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
}
```

