BackblazeRegions
A simple Elixir library providing a list of all Backblaze B2 regions with their names, geography, and continent data.
Installation
Add backblaze_regions to your list of dependencies in mix.exs:
def deps do
[
{:backblaze_regions, "~> 0.1.0"}
]
endFunctions
| Function | Description | Return Type |
|---|---|---|
BackblazeRegions.list(opts) | Returns all 2 Backblaze B2 regions | [%{code, name, geography, continent}] |
BackblazeRegions.codes() | Returns all region codes | ["us-west-002", "eu-central-003"] |
BackblazeRegions.names() | Returns all region names (English) | ["US West (Sacramento)", ...] |
BackblazeRegions.get(code, opts) | Looks up a region by code | {:ok, region} or :error |
BackblazeRegions.count() | Returns the total number of regions | 2 |
BackblazeRegions.continents() | Returns all continent groupings | ["Europe", "North America"] |
BackblazeRegions.by_continent(name, opts) | Returns all regions in a continent | [%{code, name, geography, continent}] |
BackblazeRegions.group_by_continent(opts) | Returns all regions grouped by continent | [{"Europe", [regions]}, ...] |
BackblazeRegions.supported_languages() | Returns all supported language codes | ["ar", "de", "en", ...] |
Functions that accept opts support lang: "xx" for translated output. Unsupported languages return {:error, :unsupported_language}.
Region Data Structure
Each region is a map with the following keys:
%{
code: "us-west-002",
name: "US West (Sacramento)",
geography: "United States of America",
continent: "North America"
}Usage Examples
# List all regions
BackblazeRegions.list()
# => [%{code: "us-west-002", name: "US West (Sacramento)", geography: "United States of America", continent: "North America"}, ...]
# Get all region codes
BackblazeRegions.codes()
# => ["us-west-002", "eu-central-003"]
# Get all region names
BackblazeRegions.names()
# => ["US West (Sacramento)", "EU Central (Amsterdam)"]
# Look up a specific region
BackblazeRegions.get("eu-central-003")
# => {:ok, %{code: "eu-central-003", name: "EU Central (Amsterdam)", geography: "Netherlands", continent: "Europe"}}
BackblazeRegions.get("invalid")
# => :error
# Filter by continent
BackblazeRegions.by_continent("Europe")
# => [%{code: "eu-central-003", name: "EU Central (Amsterdam)", geography: "Netherlands", continent: "Europe"}]
# List all continents
BackblazeRegions.continents()
# => ["Europe", "North America"]
# Group all regions by continent
BackblazeRegions.group_by_continent()
# => [
# {"Europe", [%{code: "eu-central-003", ...}]},
# {"North America", [%{code: "us-west-002", ...}]}
# ]
# Get region count
BackblazeRegions.count()
# => 2Translation Support
By default all functions return English data. Pass lang: "xx" to get translated region names and geography. Region codes and continent keys always stay in English.
| Code | Language |
|---|---|
en | English (default) |
ar | Arabic |
de | German |
es | Spanish |
et | Estonian |
fr | French |
hi | Hindi |
ja | Japanese |
pt | Portuguese |
ru | Russian |
zh | Chinese |
# Check supported languages
BackblazeRegions.supported_languages()
# => ["ar", "de", "en", "es", "et", "fr", "hi", "ja", "pt", "ru", "zh"]
# List regions in Japanese
BackblazeRegions.list(lang: "ja")
# => [%{code: "us-west-002", name: "米国西部(サクラメント)", geography: "アメリカ合衆国", continent: "North America"}, ...]
# Look up a region in French
BackblazeRegions.get("eu-central-003", lang: "fr")
# => {:ok, %{code: "eu-central-003", name: "UE Central (Amsterdam)", geography: "Pays-Bas", continent: "Europe"}}
# Filter by continent in Spanish
BackblazeRegions.by_continent("Europe", lang: "es")
# => [%{code: "eu-central-003", name: "UE Central (Ámsterdam)", geography: "Países Bajos", continent: "Europe"}]
# Group by continent in German
BackblazeRegions.group_by_continent(lang: "de")
# => [{"Europe", [%{code: "eu-central-003", name: "EU Zentral (Amsterdam)", ...}]}, ...]
# Unsupported language
BackblazeRegions.list(lang: "xx")
# => {:error, :unsupported_language}Documentation
Full docs are available at HexDocs.