NAV

# Regions

## Region

> Example

    {
        "availability_zones": [],
        "available": true,
        "label": "Amsterdam 2",
        "name": "ams2",
        "node_types": [
            "/api/infra/v1/nodetype/digitalocean/1gb/",
            "/api/infra/v1/nodetype/digitalocean/2gb/",
            "/api/infra/v1/nodetype/digitalocean/4gb/",
            "/api/infra/v1/nodetype/digitalocean/8gb/",
            "/api/infra/v1/nodetype/digitalocean/16gb/",
            "/api/infra/v1/nodetype/digitalocean/32gb/",
            "/api/infra/v1/nodetype/digitalocean/48gb/",
            "/api/infra/v1/nodetype/digitalocean/64gb/"
        ],
        "provider": "/api/infra/v1/provider/digitalocean/",
        "resource_uri": "/api/infra/v1/region/digitalocean/ams2/"
    }

A region is a representation of an entire or a subset of a data center of a cloud provider. It can contain availability zones (depending on the provider) and one or more node types.

### Attributes

Attribute | Description
--- | ---
resource_uri | A unique API endpoint that represents the region
name | An identifier for the region
label | A user-friendly name for the region
node_types | A list of resource URIs of the node types available in the region
availability_zones | A list of resource URIs of the availability zones available in the region
provider | The resource URI of the provider of the region
available | Whether the region is currently available for new node deployments

## List all regions

    import dockercloud

    regions = dockercloud.Region.list()

    GET /api/infra/v1/region/ HTTP/1.1
    Host: cloud.docker.com
    Authorization: Basic dXNlcm5hbWU6YXBpa2V5
    Accept: application/json

    import "github.com/docker/go-dockercloud/dockercloud"

    regionList, err := dockercloud.ListRegions()

    if err != nil {
      log.Println(err)
    }

    log.Println(regionList)

    docker-cloud nodecluster region

Lists all regions of all supported cloud providers. Returns a list of `Region` objects.

### Endpoint Type

Available in Docker Cloud’s REST API

### HTTP Request

`GET /api/infra/v1/region/`

### Query Parameters

Parameter | Description
--- | ---
name | Filter by region name
provider | Filter by resource URI of the target provider

## Get an individual region

    import dockercloud

    region = dockercloud.Region.fetch("digitalocean/lon1")

    import "github.com/docker/go-dockercloud/dockercloud"

    region, err := dockercloud.GetRegion("digitalocean","lon1")

    if err != nil {
      log.Println(err)
    }

    log.Println(region)

    GET /api/infra/v1/region/digitalocean/lon1/ HTTP/1.1
    Host: cloud.docker.com
    Authorization: Basic dXNlcm5hbWU6YXBpa2V5
    Accept: application/json

Get all the details of a specific region

### Endpoint Type

Available in Docker Cloud’s REST API

### HTTP Request

`GET /api/infra/v1/region/(provider.name)/(name)/`

### Path Parameters

Parameter | Description
--- | ---
name | The name of the region to retrieve
provider.name | The name of the provider of the region