# Regions

On the DNAnexus Platform, a **region** is an abstraction that unifies access to different cloud providers, as well as to different geographical regions in which a single cloud provider may operate. By specifying a region for your DNAnexus resources, you can ensure that your files are stored in, and that your jobs run in, a particular physical location, to satisfy data locality requirements or latency requirements.

A region is represented by a string of the form `cloud:geo`. For example, `aws:us-east-1` denotes the `us-east-1` geographical region of the AWS cloud.

* Projects and files have affinity to a particular region. A region is chosen for a project at creation time and remains fixed throughout the lifetime of the project. All files uploaded to that project are stored in object storage in the specified region, and all jobs run in that project execute on instances located in the specified region.
* You can clone files between projects in the same region. The DNAnexus Platform does not support transferring files or projects across regions. For example, you cannot clone a file in one region to a project of a different region.
* Users and organizations have a set of **allowed regions** that they can use. To create a project in a particular region, the region must be among the allowed regions of the project's `billTo`.

{% hint style="info" %}
To get access to additional regions, [contact DNAnexus Sales](mailto:sales@dnanexus.com).
{% endhint %}

* Users and organizations have a **default region**, which may be set by the user, or an organization administrator, to any value among the allowed regions. This is the default region that is used when a new project is created and a region is not otherwise specified.

The following API methods consume or return regions:

* [`/user-xxxx/describe`](/developer/api/users.md#api-method-user-xxxx-describe) and [`/org-xxxx/describe`](/developer/api/organizations.md#api-method-org-xxxx-describe) provide access to the allowed regions of a profile, which the API returns in the `permittedRegions` field, and to the default region, which the API returns in `defaultRegion`. If you have permission to see the pricing models of the profile, those are also keyed by region, reflecting possibly different price sheets and instance types available in each region.
* [`/user-xxxx/update`](/developer/api/users.md#api-method-user-xxxx-update) and [`/org-xxxx/update`](/developer/api/organizations.md#api-method-org-xxxx-update) allow updates to the `defaultRegion` field of a profile.
* [`/project/new`](/developer/api/data-containers/projects.md#api-method-project-new) allows setting the region for the newly created project.
* [`/project-xxxx/describe`](/developer/api/data-containers/projects.md#api-method-project-xxxx-describe) and [`/container-xxxx/describe`](/developer/api/running-analyses/containers-for-execution.md#api-method-container-xxxx-describe) show the region with which the project or container is associated.

Region has implications for, among others, the following operations:

* When using [`/project-xxxx/clone`](/developer/api/data-containers/cloning.md#api-method-class-xxxx-clone) or [`/container-xxxx/clone`](/developer/api/data-containers/cloning.md#api-method-class-xxxx-clone), data objects can only be cloned from one container to another if the two containers share the same region.
* As a special case of the above, if an app or applet is to be run in a project, the `bundledDepends` associated with the executable, the inputs to the executable, and the project itself must share the same region.
* Changing the `billTo` of a project via [`/project-xxxx/update`](/developer/api/data-containers/projects.md#api-method-project-xxxx-update) or [`/project-xxxx/acceptTransfer`](/developer/api/data-containers/project-permissions-and-sharing.md#api-method-project-xxxx-accepttransfer) is allowed only if the region of the project is among the `permittedRegions` of the destination `billTo`.

## Available Regions

| Provider                    | Code                 | Name                      |
| --------------------------- | -------------------- | ------------------------- |
| AWS                         | `aws:us-east-1`      | AWS US (East)             |
| AWS                         | `aws:eu-central-1`   | AWS Europe (Frankfurt)    |
| AWS                         | `aws:eu-west-2`      | AWS UKB-RAP (London)      |
| AWS                         | `aws:eu-west-2-g`    | AWS Europe (London)       |
| AWS                         | `aws:me-south-1`     | AWS Middle East (Bahrain) |
| AWS                         | `aws:ap-southeast-2` | AWS Asia Pacific (Sydney) |
| Azure                       | `azure:westus`       | Azure West US             |
| Azure                       | `azure:westeurope`   | Azure West Europe         |
| Azure                       | `azure:uksouth-ofh`  | Azure OFH-TRE (London)    |
| Oracle Cloud Infrastructure | `oci:us-ashburn-1`   | OCI US (East)             |


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://documentation.dnanexus.com/developer/api/regions.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
