> This page is for API.

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.eon.io/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.eon.io/_mcp/server.

# Update Source Account

PATCH https://%7Baccount-domain%7D.console.eon.io/api/v1/projects/{projectId}/source-accounts/{accountId}
Content-Type: application/json

Updates source account properties.


Reference: https://docs.eon.io/api/api-reference/source-connections/source-accounts/update-source-account

## Authentication

- `Authorization` header (bearer token, required) — Bearer authentication of the form `Bearer <token>`, where token is your auth token.

## Request

### Path parameters

- `projectId` (string, required) — ID of the project.
- `accountId` (string, required) — Eon-assigned ID of the source account to update.

### Body (application/json)

This endpoint expects an UpdateSourceAccountRequest.

- `name` (string, optional) — Display name for the source account in Eon.
- `sourceAccountAttributes` (UpdateSourceAccountAttributesInput, optional) — Cloud-provider-specific fields to update. One of: `aws`, `gcp`.

## Response

### 200

Source account updated.

- `sourceAccount` (SourceAccount, required) — Updated source account.

## Errors

### 400 Bad Request Error

Invalid request. Typically this indicates invalid JSON, invalid or changed source account ID, or the cloud provider did not accept verification of the updated role or service account.

- `any`

### 404 Not Found Error

Source account wasn't found.

- `any`

## Types

### UpdateSourceAccountAttributesInput

Cloud-provider-specific fields to update. One of: `aws`, `gcp`.

- `aws` (UpdateAwsSourceAccountAttributes, optional) — Updatable AWS account fields.
- `gcp` (UpdateGcpSourceAccountAttributes, optional) — Updatable GCP account fields.

### SourceAccount

- `id` (string, required) — Eon-assigned source account ID.
- `providerAccountId` (string, required) — Cloud-provider-assigned account ID.
- `name` (string, required) — Account display name in Eon.
- `status` (enum, required) — Connection status of the AWS account, Azure subscription, or GCP project. Only `CONNECTED` source accounts can be backed up. For an explanation of statuses, see [Source Account Statuses](/data-protection/backup-and-protection/backup-configuration/source-accounts/source-account-statuses).
  - Allowed values: `CONNECTED`, `DISCONNECTED`, `INSUFFICIENT_PERMISSIONS`, `ACCOUNT_STATUS_UNSPECIFIED`
- `sourceAccountAttributes` (SourceAccountCloudAttributes, required) — Cloud provider-specific configuration for the restore account.
- `providerAccountName` (string, optional) — Display name inherited from the cloud provider.
- `version` (AccountVersion, optional) — Details on the Eon permissions version and installation method.
- `connectedTime` (datetime, optional) — Date and time the account was connected to Eon.

### UpdateAwsSourceAccountAttributes

Updatable AWS account fields.

- `roleArn` (string, optional) — ARN of the role Eon assumes to access the account in AWS. Only the role name portion of the ARN can be changed. The AWS account ID must remain the same.

### UpdateGcpSourceAccountAttributes

Updatable GCP account fields.

- `serviceAccount` (string, optional) — Email of the service account Eon impersonates to access the GCP project. Only the service account name portion can be changed. The GCP project ID must remain the same.

### SourceAccountCloudAttributes

- `cloudProvider` (enum, required) — Cloud provider. `PROVIDER_UNSPECIFIED` is supported only in responses.
  - Allowed values: `AWS`, `AZURE`, `GCP`, `MONGO_ATLAS`, `PROVIDER_UNSPECIFIED`
- `aws` (AwsSourceAccountAttributes, optional) — AWS account configuration. Applicable if `cloudProvider` is set to `AWS`.
- `gcp` (GcpSourceAccountAttributes, optional) — GCP project configuration. Applicable if `cloudProvider` is set to `GCP`.
- `azure` (AzureSourceAccountAttributes, optional) — Azure subscription configuration. Applicable if `cloudProvider` is set to `AZURE`.

### AccountVersion

Details on the Eon permissions version and installation method.

- `installed` (string, required) — Currently installed permissions version.
- `installationMethod` (enum, optional, default: UNSPECIFIED) — Method used to deploy the cloud permissions. `UNSPECIFIED` is supported only in responses.
  - Allowed values: `UNSPECIFIED`, `CLOUDFORMATION`, `TERRAFORM`, `BASH_SCRIPT`
- `latest` (string, optional) — Latest available permissions version.

### AwsSourceAccountAttributes

AWS account configuration. Applicable if `cloudProvider` is set to `AWS`.

- `roleArn` (string, required) — ARN of the role Eon assumes to access the account in AWS.
- `organizationId` (string, optional) — Cloud-provider-assigned ID of the AWS organization the account belongs to.

### GcpSourceAccountAttributes

GCP project configuration. Applicable if `cloudProvider` is set to `GCP`.

- `serviceAccount` (string, required)
- `organizationId` (string, optional) — Cloud-provider-assigned ID of the GCP project's parent organization.
- `folderId` (string, optional) — Cloud-provider-assigned ID of the GCP project's parent folder.

### AzureSourceAccountAttributes

Azure subscription configuration. Applicable if `cloudProvider` is set to `AZURE`.

- `tenantId` (string, required) — ID of the Azure tenant the subscription belongs to.
- `subscriptionId` (string, required) — ID of the Azure subscription.
- `eonInternalResourceGroupName` (string, optional, default: eon-source-internal-rg) — Resource group name for Eon's temporary internal resources.
- `managementGroupId` (string, optional) — ID of the Azure management group the source account is scoped to.

## Examples

**Request**

```json
{}
```

**Response**

```json
{
  "sourceAccount": {
    "id": "fc495499-9796-5fc9-ade7-1ba924cbcc42",
    "providerAccountId": "123412341234",
    "name": "prod-eu",
    "status": "CONNECTED",
    "sourceAccountAttributes": {
      "cloudProvider": "AWS",
      "aws": {
        "roleArn": "arn:aws:iam::123412341234:role/EonSourceAccountRole",
        "organizationId": "o-1234567890"
      },
      "gcp": {
        "serviceAccount": "string",
        "organizationId": "123456789012",
        "folderId": "987654321098"
      },
      "azure": {
        "tenantId": "060901b5-ae27-5b6f-aaf5-829b635615e9",
        "subscriptionId": "12345678-1234-1234-1234-123456789012",
        "eonInternalResourceGroupName": "eon-source-internal-rg",
        "managementGroupId": "3eca9074-011f-5008-9605-a7ccf00aa93e"
      }
    },
    "providerAccountName": "string",
    "version": {
      "installed": "1.0.0",
      "installationMethod": "TERRAFORM",
      "latest": "1.2.0"
    },
    "connectedTime": "2024-08-29T13:24:03Z"
  }
}
```

**SDK Code**

```python
import requests

url = "https://{account-domain}.console.eon.io/api/v1/projects/8b4655a7-5669-51d2-83b3-038e9bf6f12f/source-accounts/fc495499-9796-5fc9-ade7-1ba924cbcc42"

payload = {}
headers = {
    "Authorization": "Bearer <token>",
    "Content-Type": "application/json"
}

response = requests.patch(url, json=payload, headers=headers)

print(response.json())
```

```javascript
const url = 'https://{account-domain}.console.eon.io/api/v1/projects/8b4655a7-5669-51d2-83b3-038e9bf6f12f/source-accounts/fc495499-9796-5fc9-ade7-1ba924cbcc42';
const options = {
  method: 'PATCH',
  headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
  body: '{}'
};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```java
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.patch("https://{account-domain}.console.eon.io/api/v1/projects/8b4655a7-5669-51d2-83b3-038e9bf6f12f/source-accounts/fc495499-9796-5fc9-ade7-1ba924cbcc42")
  .header("Authorization", "Bearer <token>")
  .header("Content-Type", "application/json")
  .body("{}")
  .asString();
```