Create cloud onboarding deployment Experimental; added in 9.5.0

POST /api/fleet/cloud_onboarding_deployments

Spaces method and path for this operation:

post /s/{space_id}/api/fleet/cloud_onboarding_deployments

Refer to Spaces for more information.

Create a new Fleet cloud onboarding deployment.

[Required authorization] Route required privileges: fleet-agent-policies-all OR integrations-all.

Headers

  • kbn-xsrf string Required

    A required header to protect against CSRF attacks

application/json

Body

  • agentPolicyIds array[string]

    Agent policy IDs for agent_based existing-policy deploys. Provided on create so that a mid-deploy tab-close leaves a record that hydrates back into existing mode.

    Not more than 1000 elements. Maximum length of each is 255.

  • authMethod string

    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 are identity_federation, static_keys, temporary_keys, shared_credentials, or assume_role.

  • connectorId string

    ID of the fleet-cloud-connector to associate with this deployment. Omit for static-keys deployments.

    Minimum length is 1, maximum length is 255.

  • dataFormat string

    Data format: ecs or otel.

    Values are ecs or otel.

  • description string

    Integration description from the Service settings step.

    Maximum length is 2048.

  • globalRegion string

    Global AWS region from the Service Settings step.

    Maximum length is 64.

  • instances array[object] Experimental; added in 9.7.0

    Service instances, including duplicates, being deployed. Used to restore the service list when the onboarding is resumed.

    Not more than 1000 elements.

    Hide instances attributes Show instances attributes object
    • instanceId string Required

      Instance ID: the service ID for an original, <serviceId>__dup-<n> for a duplicate.

      Minimum length is 1, maximum length is 255.

    • isDuplicate boolean Required

      Whether the instance is a duplicate of another service.

    • name string Required

      Display name of the instance. Duplicates use the custom name entered when the instance was duplicated.

      Maximum length is 255.

    • serviceId string Required

      ID of the service this instance belongs to.

      Minimum length is 1, maximum length is 255.

  • integrationName string

    Integration name as entered in the Service settings step, before any per-package suffix is applied.

    Maximum length is 160.

  • mechanisms array[string] Required

    Delivery mechanisms active in this deployment.

    Not more than 10 elements. Values are managed_integration, ecf, or agent_based.

  • namespace string

    Global data stream namespace from the Service settings step. When omitted, an agent-based deployment inherits the agent policy namespace, other deployment methods use the default namespace.

    Maximum length is 100.

  • provider string Required

    Cloud provider.

    Values are aws, azure, or gcp.

  • services array[string] Required

    Service IDs to be covered by this deployment.

    At least 1 but not more than 1000 elements. Minimum length of each is 1.

  • serviceVars object

    Per-service config keyed by instance ID.

    Hide serviceVars attribute Show serviceVars attribute object
    • * object Additional properties

Responses

  • 200 application/json

    Successful response

    Hide response attribute Show response attribute object
    • item object Required

      Additional properties are NOT allowed.

      Hide item attributes Show item attributes object
      • agentPolicyIds array[string]

        Agent policy IDs for agent_based deployments. Single-element for new-policy deploys; multiple for existing-policy deploys targeting several policies.

        Not more than 1000 elements.

      • apiKeyId string

        Elasticsearch API key ID for push mechanisms (ecf). Set by the backend; used for key rotation/revocation.

      • attemptCount number Required

        Number of deployment attempts, including the current one.

        Minimum value is 1.

      • authMethod string

        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 are identity_federation, static_keys, temporary_keys, shared_credentials, or assume_role.

      • connectorId string

        ID of the fleet-cloud-connector this deployment belongs to. Absent for static-keys deployments.

      • dataFormat string

        Data format: ecs or otel.

        Values are ecs or otel.

      • deploymentId string

        Opaque deployment identifier; for AWS, the CFN stack ARN.

      • deploymentName string

        Opaque deployment name; for AWS, the CFN stack name.

      • description string

        Integration description from the Service settings step.

      • ecfStacks array[object]

        ECF CloudFormation stacks launched as part of this deployment. Written by the wizard after the user clicks Launch.

        Not more than 10 elements.

        Hide ecfStacks attributes Show ecfStacks attributes object
        • family string Required

          ECF template family.

          Values are unified, otel, or crowdstrike.

        • serviceIds array[string]

          Service IDs active when the stack was last launched or updated.

          Not more than 1000 elements. Minimum length of each is 1, maximum length of each is 128.

        • stackArn string

          CloudFormation stack ARN pasted by the user post-launch.

          Minimum length is 1, maximum length is 2048.

        • stackName string Required

          CloudFormation stack name (128-char AWS limit).

          Minimum length is 1, maximum length is 128.

        • templateVersion string Required

          ECF semantic version resolved at launch time, e.g. "1.10.0".

          Minimum length is 1, maximum length is 32.

      • globalRegion string

        Global AWS region from the Service Settings step.

      • id string Required
      • instances array[object] Experimental; added in 9.7.0

        Service instances, including duplicates, from the last deployment. Used to restore the service list when an onboarding is resumed.

        Not more than 1000 elements.

        Hide instances attributes Show instances attributes object
        • instanceId string Required

          Instance ID: the service ID for an original, <serviceId>__dup-<n> for a duplicate.

          Minimum length is 1, maximum length is 255.

        • isDuplicate boolean Required

          Whether the instance is a duplicate of another service.

        • name string Required

          Display name of the instance. Duplicates use the custom name entered when the instance was duplicated.

          Maximum length is 255.

        • serviceId string Required

          ID of the service this instance belongs to.

          Minimum length is 1, maximum length is 255.

      • integrationName string

        Integration name as entered in the Service settings step, before any per-package suffix is applied.

      • mechanisms array[string] Required

        Delivery mechanism: managed_integration, ecf, or agent_based.

        Not more than 10 elements. Values are managed_integration, ecf, or agent_based.

      • namespace string

        Global data stream namespace from the Service settings step. When omitted, an agent-based deployment inherits the agent policy namespace, other deployment methods use the default namespace.

      • packagePolicyIds array[string]

        Package policy IDs created for this deployment (managed_integration and agent_based).

        Not more than 1000 elements.

      • policyIdsByInstance object

        instanceId → policyId mapping persisted after deploy. Hydrated into the wizard on resume to enable cleanup of stale policies when services are removed.

        Hide policyIdsByInstance attribute Show policyIdsByInstance attribute object
        • * string Additional properties

          Maximum length is 255.

      • provider string Required

        Cloud provider.

        Values are aws, azure, or gcp.

      • services array[string] Required

        Service IDs covered by this deployment.

        Not more than 1000 elements.

      • serviceVars object

        Per-service config keyed by instance ID. Each value is the ServiceVars object from the Service Settings step.

        Hide serviceVars attribute Show serviceVars attribute object
        • * object Additional properties
      • status string Required

        Deployment status.

        Values are pending, deploying, succeeded, or failed.

      • statusMessage string

        Error context when status is failed.

  • 400 application/json

    Bad Request

    Hide response attributes Show response attributes object
    • attributes Required
    • error string
    • errorType string
    • message string Required
    • statusCode number
POST /api/fleet/cloud_onboarding_deployments
curl \
 --request POST 'https://localhost:5601/api/fleet/cloud_onboarding_deployments' \
 --header "Authorization: $API_KEY" \
 --header "Content-Type: application/json" \
 --header "kbn-xsrf: true" \
 --data '{
  "authMethod": "assume_role",
  "mechanisms": [
    "agent_based"
  ],
  "provider": "aws",
  "services": [
    "cloudwatch_metrics"
  ],
  "serviceVars": {
    "cloudwatch_metrics": {
      "namespace": "AWS/EC2",
      "regions": [
        "us-east-1"
      ]
    }
  }
}'
Request examples
Create a new AWS cloud onboarding deployment using an Elastic Agent (agent-based)
{
  "authMethod": "assume_role",
  "mechanisms": [
    "agent_based"
  ],
  "provider": "aws",
  "services": [
    "cloudwatch_metrics"
  ],
  "serviceVars": {
    "cloudwatch_metrics": {
      "namespace": "AWS/EC2",
      "regions": [
        "us-east-1"
      ]
    }
  }
}
Create a new AWS cloud onboarding deployment using Elastic Cloud Forwarder (ECF)
{
  "connectorId": "cloud-connector-id-1",
  "mechanisms": [
    "ecf"
  ],
  "provider": "aws",
  "services": [
    "cloudfront_logs"
  ],
  "serviceVars": {
    "cloudfront_logs": {
      "regions": [
        "us-east-1"
      ],
      "s3_bucket_arn": "arn:aws:s3:::my-cloudfront-bucket"
    }
  }
}
Create a new AWS cloud onboarding deployment using identity federation (managed integration)
{
  "connectorId": "cloud-connector-id-1",
  "mechanisms": [
    "managed_integration"
  ],
  "provider": "aws",
  "services": [
    "cloudwatch_metrics",
    "cloudtrail"
  ],
  "serviceVars": {
    "cloudtrail": {
      "regions": [
        "us-east-1"
      ],
      "s3_bucket_arn": "arn:aws:s3:::my-cloudtrail-bucket"
    },
    "cloudwatch_metrics": {
      "namespace": "AWS/EC2",
      "regions": [
        "us-east-1",
        "eu-west-1"
      ]
    }
  }
}
Response examples (200)
Agent-based deployment — agentPolicyIds set after the agent policy is selected or created
{
  "item": {
    "agentPolicyIds": [
      "agent-policy-id-1"
    ],
    "attemptCount": 1,
    "authMethod": "assume_role",
    "id": "onboarding-deployment-id-2",
    "mechanisms": [
      "agent_based"
    ],
    "provider": "aws",
    "services": [
      "cloudwatch_metrics"
    ],
    "serviceVars": {
      "cloudwatch_metrics": {
        "namespace": "AWS/EC2",
        "regions": [
          "us-east-1"
        ]
      }
    },
    "status": "pending"
  }
}
ECF deployment — apiKeyId set after the Elasticsearch API key is created for the ECF service
{
  "item": {
    "apiKeyId": "es-api-key-id-1",
    "attemptCount": 1,
    "connectorId": "cloud-connector-id-1",
    "id": "onboarding-deployment-id-3",
    "mechanisms": [
      "ecf"
    ],
    "provider": "aws",
    "services": [
      "cloudfront_logs"
    ],
    "serviceVars": {
      "cloudfront_logs": {
        "regions": [
          "us-east-1"
        ],
        "s3_bucket_arn": "arn:aws:s3:::my-cloudfront-bucket"
      }
    },
    "status": "pending"
  }
}
Managed integration deployment — packagePolicyIds set after deployment completes
{
  "item": {
    "attemptCount": 1,
    "connectorId": "cloud-connector-id-1",
    "id": "onboarding-deployment-id-1",
    "mechanisms": [
      "managed_integration"
    ],
    "packagePolicyIds": [
      "package-policy-id-1"
    ],
    "provider": "aws",
    "services": [
      "cloudwatch_metrics",
      "cloudtrail"
    ],
    "serviceVars": {
      "cloudtrail": {
        "regions": [
          "us-east-1"
        ],
        "s3_bucket_arn": "arn:aws:s3:::my-cloudtrail-bucket"
      },
      "cloudwatch_metrics": {
        "namespace": "AWS/EC2",
        "regions": [
          "us-east-1",
          "eu-west-1"
        ]
      }
    },
    "status": "pending"
  }
}
Response examples (400)
Example of a generic error response
{
  "error": "Bad Request",
  "message": "An error message describing what went wrong",
  "statusCode": 400
}