ReqFly.Volumes (req_fly v1.0.0)
View SourceFunctions for interacting with Fly.io Volumes API.
The Volumes API provides operations for managing persistent storage volumes including creation, retrieval, updates, deletion, extension, and snapshot management.
Examples
req = Req.new() |> ReqFly.attach(token: "fly_token")
# List all volumes for an app
{:ok, volumes} = ReqFly.Volumes.list(req, app_name: "my-app")
# Create a new volume
{:ok, volume} = ReqFly.Volumes.create(req,
app_name: "my-app",
name: "data_volume",
region: "sjc",
size_gb: 10
)
# Get volume details
{:ok, volume} = ReqFly.Volumes.get(req,
app_name: "my-app",
volume_id: "vol_1234567890"
)
# Update a volume
{:ok, volume} = ReqFly.Volumes.update(req,
app_name: "my-app",
volume_id: "vol_1234567890",
snapshot_retention: 5
)
# Extend volume size
{:ok, volume} = ReqFly.Volumes.extend(req,
app_name: "my-app",
volume_id: "vol_1234567890",
size_gb: 20
)
# List snapshots
{:ok, snapshots} = ReqFly.Volumes.list_snapshots(req,
app_name: "my-app",
volume_id: "vol_1234567890"
)
# Create a snapshot
{:ok, snapshot} = ReqFly.Volumes.create_snapshot(req,
app_name: "my-app",
volume_id: "vol_1234567890"
)
# Delete a volume
{:ok, _} = ReqFly.Volumes.delete(req,
app_name: "my-app",
volume_id: "vol_1234567890"
)
Summary
Functions
Creates a new volume for an app.
Creates a snapshot of a volume.
Deletes a volume.
Extends the size of a volume.
Gets details for a specific volume.
Lists all volumes for an app.
Lists all snapshots for a volume.
Updates a volume's configuration.
Functions
@spec create( Req.Request.t(), keyword() ) :: {:ok, map()} | {:error, ReqFly.Error.t()}
Creates a new volume for an app.
Parameters
req- A Req.Request with ReqFly attachedopts- Options keyword list:app_name- Name of the app (required):name- Volume name (required):region- Region code (e.g., "sjc", "iad") (required):size_gb- Size in gigabytes (required, must be positive integer)- Additional optional parameters can be passed and will be included in the request
Returns
{:ok, volume}- Created volume details{:error, %ReqFly.Error{}}- Error details
Examples
req = Req.new() |> ReqFly.attach(token: "fly_token")
{:ok, volume} = ReqFly.Volumes.create(req,
app_name: "my-app",
name: "data_volume",
region: "sjc",
size_gb: 10
)
@spec create_snapshot( Req.Request.t(), keyword() ) :: {:ok, map()} | {:error, ReqFly.Error.t()}
Creates a snapshot of a volume.
Parameters
req- A Req.Request with ReqFly attachedopts- Options keyword list:app_name- Name of the app (required):volume_id- ID of the volume (required)
Returns
{:ok, snapshot}- Created snapshot details{:error, %ReqFly.Error{}}- Error details
Examples
req = Req.new() |> ReqFly.attach(token: "fly_token")
{:ok, snapshot} = ReqFly.Volumes.create_snapshot(req,
app_name: "my-app",
volume_id: "vol_1234567890"
)
@spec delete( Req.Request.t(), keyword() ) :: {:ok, term()} | {:error, ReqFly.Error.t()}
Deletes a volume.
Parameters
req- A Req.Request with ReqFly attachedopts- Options keyword list:app_name- Name of the app (required):volume_id- ID of the volume to delete (required)
Returns
{:ok, response}- Deletion confirmation{:error, %ReqFly.Error{}}- Error details
Examples
req = Req.new() |> ReqFly.attach(token: "fly_token")
{:ok, _} = ReqFly.Volumes.delete(req,
app_name: "my-app",
volume_id: "vol_1234567890"
)
@spec extend( Req.Request.t(), keyword() ) :: {:ok, map()} | {:error, ReqFly.Error.t()}
Extends the size of a volume.
Parameters
req- A Req.Request with ReqFly attachedopts- Options keyword list:app_name- Name of the app (required):volume_id- ID of the volume (required):size_gb- New size in gigabytes (required, must be positive integer)
Returns
{:ok, volume}- Extended volume details{:error, %ReqFly.Error{}}- Error details
Examples
req = Req.new() |> ReqFly.attach(token: "fly_token")
{:ok, volume} = ReqFly.Volumes.extend(req,
app_name: "my-app",
volume_id: "vol_1234567890",
size_gb: 20
)
@spec get( Req.Request.t(), keyword() ) :: {:ok, map()} | {:error, ReqFly.Error.t()}
Gets details for a specific volume.
Parameters
req- A Req.Request with ReqFly attachedopts- Options keyword list:app_name- Name of the app (required):volume_id- ID of the volume (required)
Returns
{:ok, volume}- Volume details{:error, %ReqFly.Error{}}- Error details
Examples
req = Req.new() |> ReqFly.attach(token: "fly_token")
{:ok, volume} = ReqFly.Volumes.get(req,
app_name: "my-app",
volume_id: "vol_1234567890"
)
@spec list( Req.Request.t(), keyword() ) :: {:ok, [map()]} | {:error, ReqFly.Error.t()}
Lists all volumes for an app.
Parameters
req- A Req.Request with ReqFly attachedopts- Options keyword list:app_name- Name of the app (required)
Returns
{:ok, volumes}- List of volume maps{:error, %ReqFly.Error{}}- Error details
Examples
req = Req.new() |> ReqFly.attach(token: "fly_token")
{:ok, volumes} = ReqFly.Volumes.list(req, app_name: "my-app")
@spec list_snapshots( Req.Request.t(), keyword() ) :: {:ok, [map()]} | {:error, ReqFly.Error.t()}
Lists all snapshots for a volume.
Parameters
req- A Req.Request with ReqFly attachedopts- Options keyword list:app_name- Name of the app (required):volume_id- ID of the volume (required)
Returns
{:ok, snapshots}- List of snapshot maps{:error, %ReqFly.Error{}}- Error details
Examples
req = Req.new() |> ReqFly.attach(token: "fly_token")
{:ok, snapshots} = ReqFly.Volumes.list_snapshots(req,
app_name: "my-app",
volume_id: "vol_1234567890"
)
@spec update( Req.Request.t(), keyword() ) :: {:ok, map()} | {:error, ReqFly.Error.t()}
Updates a volume's configuration.
Parameters
req- A Req.Request with ReqFly attachedopts- Options keyword list:app_name- Name of the app (required):volume_id- ID of the volume (required)- Additional parameters to update (e.g.,
:snapshot_retention)
Returns
{:ok, volume}- Updated volume details{:error, %ReqFly.Error{}}- Error details
Examples
req = Req.new() |> ReqFly.attach(token: "fly_token")
{:ok, volume} = ReqFly.Volumes.update(req,
app_name: "my-app",
volume_id: "vol_1234567890",
snapshot_retention: 5
)