> 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 Restore Account

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

Updates restore account properties.


Reference: https://docs.eon.io/api/api-reference/restore-connections/restore-accounts/update-restore-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 restore account to update.

### Body (application/json)

This endpoint expects an UpdateRestoreAccountRequest.

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

## Response

### 200

Restore account updated.

- `restoreAccount` (RestoreAccount, required) — Updated restore account.

## Errors

### 400 Bad Request Error

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

- `any`

### 404 Not Found Error

Restore account wasn't found.

- `any`

## Types

### UpdateRestoreAccountAttributesInput

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

- `aws` (UpdateAwsRestoreAccountAttributes, optional) — Updatable AWS account fields.
- `gcp` (UpdateGcpRestoreAccountAttributes, optional) — Updatable GCP account fields.

### RestoreAccount

- `id` (string, required) — Eon-assigned restore 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` restore accounts can be restored to. For an explanation of statuses, see [Restore Account Statuses](/data-protection/restoring/restore-accounts/restore-account-statuses).
  - Allowed values: `CONNECTED`, `DISCONNECTED`, `INSUFFICIENT_PERMISSIONS`, `ACCOUNT_STATUS_UNSPECIFIED`
- `restoreAccountAttributes` (RestoreAccountCloudAttributes, required) — Cloud provider-specific configuration for the restore account.
- `isRestoreAllowed` (boolean, required) — Whether the current role's restore destination limits permit restoring to 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.

### UpdateAwsRestoreAccountAttributes

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.

### UpdateGcpRestoreAccountAttributes

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.

### RestoreAccountCloudAttributes

- `cloudProvider` (enum, required) — Cloud provider. `PROVIDER_UNSPECIFIED` is supported only in responses.
  - Allowed values: `AWS`, `AZURE`, `GCP`, `MONGO_ATLAS`, `PROVIDER_UNSPECIFIED`
- `aws` (AwsRestoreAccountAttributes, optional) — AWS account configuration. Applicable if `cloudProvider` is set to `AWS`.
- `gcp` (GcpRestoreAccountAttributes, optional) — GCP project configuration. Applicable if `cloudProvider` is set to `GCP`.
- `azure` (AzureRestoreAccountAttributes, 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.

### AwsRestoreAccountAttributes

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.

### GcpRestoreAccountAttributes

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

- `serviceAccount` (string, required)

### AzureRestoreAccountAttributes

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

- `tenantId` (string, required) — ID of the tenant the subscription belongs to.
- `subscriptionId` (string, required) — ID of the Azure subscription.
- `resourceGroupName` (string, optional) — Name of the Azure resource group to scope permissions to. When provided, restoring is limited to this specific resource group. When omitted, permissions are scoped to the subscription.
- `eonInternalResourceGroupName` (string, optional) — Name of the Eon internal resource group for temporary restore resources.
- `managementGroupId` (string, optional) — ID of the Azure management group the restore account is scoped to.

## Examples

**Request**

```json
{}
```

**Response**

```json
{
  "restoreAccount": {
    "id": "9b76a8a2-a918-57e6-94d5-0316ebab663c",
    "providerAccountId": "123412341234",
    "name": "prod-eu",
    "status": "CONNECTED",
    "restoreAccountAttributes": {
      "cloudProvider": "AWS",
      "aws": {
        "roleArn": "arn:aws:iam::123412341234:role/EonSourceAccountRole",
        "organizationId": "o-1234567890"
      },
      "gcp": {
        "serviceAccount": "string"
      },
      "azure": {
        "tenantId": "12345678-1234-1234-1234-123456789012",
        "subscriptionId": "12345678-1234-1234-1234-123456789012",
        "resourceGroupName": "my-resource-group",
        "eonInternalResourceGroupName": "eon-restore-internal-rg",
        "managementGroupId": "3eca9074-011f-5008-9605-a7ccf00aa93e"
      }
    },
    "isRestoreAllowed": true,
    "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/projectId/restore-accounts/accountId"

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/projectId/restore-accounts/accountId';
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/projectId/restore-accounts/accountId")
  .header("Authorization", "Bearer <token>")
  .header("Content-Type", "application/json")
  .body("{}")
  .asString();
```